diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..fa48f72fea676f0047cb4024aec14f5bd53e1146 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json @@ -0,0 +1,235 @@ +{ +"basePath": "", +"baseUrl": "https://acceleratedmobilepageurl.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Acceleratedmobilepageurl", +"description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s). ", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/amp/cache/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "acceleratedmobilepageurl:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://acceleratedmobilepageurl.mtls.googleapis.com/", +"name": "acceleratedmobilepageurl", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"ampUrls": { +"methods": { +"batchGet": { +"description": "Returns AMP URL(s) and equivalent [AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).", +"flatPath": "v1/ampUrls:batchGet", +"httpMethod": "POST", +"id": "acceleratedmobilepageurl.ampUrls.batchGet", +"parameterOrder": [], +"parameters": {}, +"path": "v1/ampUrls:batchGet", +"request": { +"$ref": "BatchGetAmpUrlsRequest" +}, +"response": { +"$ref": "BatchGetAmpUrlsResponse" +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", +"schemas": { +"AmpUrl": { +"description": "AMP URL response for a requested URL.", +"id": "AmpUrl", +"properties": { +"ampUrl": { +"description": "The AMP URL pointing to the publisher's web server.", +"type": "string" +}, +"cdnAmpUrl": { +"description": "The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to the cached document in the Google AMP Cache.", +"type": "string" +}, +"originalUrl": { +"description": "The original non-AMP URL.", +"type": "string" +} +}, +"type": "object" +}, +"AmpUrlError": { +"description": "AMP URL Error resource for a requested URL that couldn't be found.", +"id": "AmpUrlError", +"properties": { +"errorCode": { +"description": "The error code of an API call.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"INPUT_URL_NOT_FOUND", +"NO_AMP_URL", +"APPLICATION_ERROR", +"URL_IS_VALID_AMP", +"URL_IS_INVALID_AMP" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +false +], +"enumDescriptions": [ +"Not specified error.", +"Indicates the requested URL is not found in the index, possibly because it's unable to be found, not able to be accessed by Googlebot, or some other error.", +"Indicates no AMP URL has been found that corresponds to the requested URL.", +"Indicates some kind of application error occurred at the server. Client advised to retry.", +"DEPRECATED: Indicates the requested URL is a valid AMP URL. This is a non-error state, should not be relied upon as a sign of success or failure. It will be removed in future versions of the API.", +"Indicates that an AMP URL has been found that corresponds to the request URL, but it is not valid AMP HTML." +], +"type": "string" +}, +"errorMessage": { +"description": "An optional descriptive error message.", +"type": "string" +}, +"originalUrl": { +"description": "The original non-AMP URL.", +"type": "string" +} +}, +"type": "object" +}, +"BatchGetAmpUrlsRequest": { +"description": "AMP URL request for a batch of URLs.", +"id": "BatchGetAmpUrlsRequest", +"properties": { +"lookupStrategy": { +"description": "The lookup_strategy being requested.", +"enum": [ +"FETCH_LIVE_DOC", +"IN_INDEX_DOC" +], +"enumDescriptions": [ +"FETCH_LIVE_DOC strategy involves live document fetch of URLs not found in the index. Any request URL not found in the index is crawled in realtime to validate if there is a corresponding AMP URL. This strategy has higher coverage but with extra latency introduced by realtime crawling. This is the default strategy. Applications using this strategy should set higher HTTP timeouts of the API calls.", +"IN_INDEX_DOC strategy skips fetching live documents of URL(s) not found in index. For applications which need low latency use of IN_INDEX_DOC strategy is recommended." +], +"type": "string" +}, +"urls": { +"description": "List of URLs to look up for the paired AMP URLs. The URLs are case-sensitive. Up to 50 URLs per lookup (see [Usage Limits](/amp/cache/reference/limits)).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchGetAmpUrlsResponse": { +"description": "Batch AMP URL response.", +"id": "BatchGetAmpUrlsResponse", +"properties": { +"ampUrls": { +"description": "For each URL in BatchAmpUrlsRequest, the URL response. The response might not be in the same order as URLs in the batch request. If BatchAmpUrlsRequest contains duplicate URLs, AmpUrl is generated only once.", +"items": { +"$ref": "AmpUrl" +}, +"type": "array" +}, +"urlErrors": { +"description": "The errors for requested URLs that have no AMP URL.", +"items": { +"$ref": "AmpUrlError" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Accelerated Mobile Pages (AMP) URL API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..c72f1a9dd0563b90077d82d4afeeb0b04d89ad5f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json @@ -0,0 +1,2708 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://accesscontextmanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Access Context Manager", +"description": "An API for setting attribute based access control to requests to Google Cloud services. *Warning:* Do not mix *v1alpha* and *v1* API usage in the same access policy. The v1alpha API supports new Access Context Manager features, which may have different attributes or behaviors that are not supported by v1. The practice of mixed API usage within a policy may result in the inability to update that policy, including any access levels or service perimeters belonging to it. It is not recommended to use both v1 and v1alpha for modifying policies with critical service perimeters. Modifications using v1alpha should be limited to policies with non-production/non-critical service perimeters.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/access-context-manager/docs/reference/rest/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "accesscontextmanager:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://accesscontextmanager.mtls.googleapis.com/", +"name": "accesscontextmanager", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accessPolicies": { +"methods": { +"create": { +"description": "Creates an access policy. This method fails if the organization already has an access policy. The long-running operation has a successful status after the access policy propagates to long-lasting storage. Syntactic and basic semantic errors are returned in `metadata` as a BadRequest proto.", +"flatPath": "v1/accessPolicies", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accessPolicies", +"request": { +"$ref": "AccessPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an access policy based on the resource name. The long-running operation has a successful status after the access policy is removed from long-lasting storage.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}", +"httpMethod": "DELETE", +"id": "accesscontextmanager.accessPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the access policy to delete. Format `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns an access policy based on the name.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the access policy to get. Format `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "AccessPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy for the specified Access Context Manager access policy.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}:getIamPolicy", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all access policies in an organization.", +"flatPath": "v1/accessPolicies", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Number of AccessPolicy instances to include in the list. Default 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Next page token for the next batch of AccessPolicy instances. Defaults to the first page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name for the container to list AccessPolicy instances from. Format: `organizations/{org_id}`", +"location": "query", +"type": "string" +} +}, +"path": "v1/accessPolicies", +"response": { +"$ref": "ListAccessPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an access policy. The long-running operation from this RPC has a successful status after the changes to the access policy propagate to long-lasting storage.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}", +"httpMethod": "PATCH", +"id": "accesscontextmanager.accessPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. Resource name of the `AccessPolicy`. Format: `accessPolicies/{access_policy}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask to control which fields get updated. Must be non-empty.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "AccessPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM policy for the specified Access Context Manager access policy. This method replaces the existing IAM policy on the access policy. The IAM policy controls the set of users who can perform specific operations on the Access Context Manager access policy.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}:setIamPolicy", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the IAM permissions that the caller has on the specified Access Context Manager resource. The resource can be an AccessPolicy, AccessLevel, or ServicePerimeter. This method does not support other resources.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}:testIamPermissions", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"accessLevels": { +"methods": { +"create": { +"description": "Creates an access level. The long-running operation from this RPC has a successful status after the access level propagates to long-lasting storage. If access levels contain errors, an error response is returned for the first error encountered.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.accessLevels.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name for the access policy which owns this Access Level. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/accessLevels", +"request": { +"$ref": "AccessLevel" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an access level based on the resource name. The long-running operation from this RPC has a successful status after the access level has been removed from long-lasting storage.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels/{accessLevelsId}", +"httpMethod": "DELETE", +"id": "accesscontextmanager.accessPolicies.accessLevels.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the Access Level. Format: `accessPolicies/{policy_id}/accessLevels/{access_level_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+/accessLevels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an access level based on the resource name.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels/{accessLevelsId}", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.accessLevels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"accessLevelFormat": { +"description": "Whether to return `BasicLevels` in the Cloud Common Expression Language rather than as `BasicLevels`. Defaults to AS_DEFINED, where Access Levels are returned as `BasicLevels` or `CustomLevels` based on how they were created. If set to CEL, all Access Levels are returned as `CustomLevels`. In the CEL case, `BasicLevels` are translated to equivalent `CustomLevels`.", +"enum": [ +"LEVEL_FORMAT_UNSPECIFIED", +"AS_DEFINED", +"CEL" +], +"enumDescriptions": [ +"The format was not specified.", +"Uses the format the resource was defined in. BasicLevels are returned as BasicLevels, CustomLevels are returned as CustomLevels.", +"Use Cloud Common Expression Language when returning the resource. Both BasicLevels and CustomLevels are returned as CustomLevels." +], +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for the Access Level. Format: `accessPolicies/{policy_id}/accessLevels/{access_level_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+/accessLevels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "AccessLevel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all access levels for an access policy.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.accessLevels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"accessLevelFormat": { +"description": "Whether to return `BasicLevels` in the Cloud Common Expression language, as `CustomLevels`, rather than as `BasicLevels`. Defaults to returning `AccessLevels` in the format they were defined.", +"enum": [ +"LEVEL_FORMAT_UNSPECIFIED", +"AS_DEFINED", +"CEL" +], +"enumDescriptions": [ +"The format was not specified.", +"Uses the format the resource was defined in. BasicLevels are returned as BasicLevels, CustomLevels are returned as CustomLevels.", +"Use Cloud Common Expression Language when returning the resource. Both BasicLevels and CustomLevels are returned as CustomLevels." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of Access Levels to include in the list. Default 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Next page token for the next batch of Access Level instances. Defaults to the first page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name for the access policy to list Access Levels from. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/accessLevels", +"response": { +"$ref": "ListAccessLevelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an access level. The long-running operation from this RPC has a successful status after the changes to the access level propagate to long-lasting storage. If access levels contain errors, an error response is returned for the first error encountered.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels/{accessLevelsId}", +"httpMethod": "PATCH", +"id": "accesscontextmanager.accessPolicies.accessLevels.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", +"location": "path", +"pattern": "^accessPolicies/[^/]+/accessLevels/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask to control which fields get updated. Must be non-empty.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "AccessLevel" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceAll": { +"description": "Replaces all existing access levels in an access policy with the access levels provided. This is done atomically. The long-running operation from this RPC has a successful status after all replacements propagate to long-lasting storage. If the replacement contains errors, an error response is returned for the first error encountered. Upon error, the replacement is cancelled, and existing access levels are not affected. The Operation.response field contains ReplaceAccessLevelsResponse. Removing access levels contained in existing service perimeters result in an error.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels:replaceAll", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.accessLevels.replaceAll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name for the access policy which owns these Access Levels. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/accessLevels:replaceAll", +"request": { +"$ref": "ReplaceAccessLevelsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the IAM permissions that the caller has on the specified Access Context Manager resource. The resource can be an AccessPolicy, AccessLevel, or ServicePerimeter. This method does not support other resources.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/accessLevels/{accessLevelsId}:testIamPermissions", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.accessLevels.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^accessPolicies/[^/]+/accessLevels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"authorizedOrgsDescs": { +"methods": { +"create": { +"description": "Creates an authorized orgs desc. The long-running operation from this RPC has a successful status after the authorized orgs desc propagates to long-lasting storage. If a authorized orgs desc contains errors, an error response is returned for the first error encountered. The name of this `AuthorizedOrgsDesc` will be assigned during creation.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name for the access policy which owns this Authorized Orgs Desc. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/authorizedOrgsDescs", +"request": { +"$ref": "AuthorizedOrgsDesc" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an authorized orgs desc based on the resource name. The long-running operation from this RPC has a successful status after the authorized orgs desc is removed from long-lasting storage.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", +"httpMethod": "DELETE", +"id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the Authorized Orgs Desc. Format: `accessPolicies/{policy_id}/authorizedOrgsDesc/{authorized_orgs_desc_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an authorized orgs desc based on the resource name.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the Authorized Orgs Desc. Format: `accessPolicies/{policy_id}/authorizedOrgsDescs/{authorized_orgs_descs_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "AuthorizedOrgsDesc" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all authorized orgs descs for an access policy.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Number of Authorized Orgs Descs to include in the list. Default 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Next page token for the next batch of Authorized Orgs Desc instances. Defaults to the first page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name for the access policy to list Authorized Orgs Desc from. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/authorizedOrgsDescs", +"response": { +"$ref": "ListAuthorizedOrgsDescsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an authorized orgs desc. The long-running operation from this RPC has a successful status after the authorized orgs desc propagates to long-lasting storage. If a authorized orgs desc contains errors, an error response is returned for the first error encountered. Only the organization list in `AuthorizedOrgsDesc` can be updated. The name, authorization_type, asset_type and authorization_direction cannot be updated.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", +"httpMethod": "PATCH", +"id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name for the `AuthorizedOrgsDesc`. Format: `accessPolicies/{access_policy}/authorizedOrgsDescs/{authorized_orgs_desc}`. The `authorized_orgs_desc` component must begin with a letter, followed by alphanumeric characters or `_`. After you create an `AuthorizedOrgsDesc`, you cannot change its `name`.", +"location": "path", +"pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask to control which fields get updated. Must be non-empty.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "AuthorizedOrgsDesc" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"servicePerimeters": { +"methods": { +"commit": { +"description": "Commits the dry-run specification for all the service perimeters in an access policy. A commit operation on a service perimeter involves copying its `spec` field to the `status` field of the service perimeter. Only service perimeters with `use_explicit_dry_run_spec` field set to true are affected by a commit operation. The long-running operation from this RPC has a successful status after the dry-run specifications for all the service perimeters have been committed. If a commit fails, it causes the long-running operation to return an error response and the entire commit operation is cancelled. When successful, the Operation.response field contains CommitServicePerimetersResponse. The `dry_run` and the `spec` fields are cleared after a successful commit operation.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters:commit", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.commit", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name for the parent Access Policy which owns all Service Perimeters in scope for the commit operation. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/servicePerimeters:commit", +"request": { +"$ref": "CommitServicePerimetersRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a service perimeter. The long-running operation from this RPC has a successful status after the service perimeter propagates to long-lasting storage. If a service perimeter contains errors, an error response is returned for the first error encountered.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name for the access policy which owns this Service Perimeter. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/servicePerimeters", +"request": { +"$ref": "ServicePerimeter" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a service perimeter based on the resource name. The long-running operation from this RPC has a successful status after the service perimeter is removed from long-lasting storage.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters/{servicePerimetersId}", +"httpMethod": "DELETE", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the Service Perimeter. Format: `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a service perimeter based on the resource name.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters/{servicePerimetersId}", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the Service Perimeter. Format: `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ServicePerimeter" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all service perimeters for an access policy.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters", +"httpMethod": "GET", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Number of Service Perimeters to include in the list. Default 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Next page token for the next batch of Service Perimeter instances. Defaults to the first page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name for the access policy to list Service Perimeters from. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/servicePerimeters", +"response": { +"$ref": "ListServicePerimetersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a service perimeter. The long-running operation from this RPC has a successful status after the service perimeter propagates to long-lasting storage. If a service perimeter contains errors, an error response is returned for the first error encountered.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters/{servicePerimetersId}", +"httpMethod": "PATCH", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", +"location": "path", +"pattern": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask to control which fields get updated. Must be non-empty.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ServicePerimeter" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceAll": { +"description": "Replace all existing service perimeters in an access policy with the service perimeters provided. This is done atomically. The long-running operation from this RPC has a successful status after all replacements propagate to long-lasting storage. Replacements containing errors result in an error response for the first error encountered. Upon an error, replacement are cancelled and existing service perimeters are not affected. The Operation.response field contains ReplaceServicePerimetersResponse.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters:replaceAll", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.replaceAll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name for the access policy which owns these Service Perimeters. Format: `accessPolicies/{policy_id}`", +"location": "path", +"pattern": "^accessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/servicePerimeters:replaceAll", +"request": { +"$ref": "ReplaceServicePerimetersRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the IAM permissions that the caller has on the specified Access Context Manager resource. The resource can be an AccessPolicy, AccessLevel, or ServicePerimeter. This method does not support other resources.", +"flatPath": "v1/accessPolicies/{accessPoliciesId}/servicePerimeters/{servicePerimetersId}:testIamPermissions", +"httpMethod": "POST", +"id": "accesscontextmanager.accessPolicies.servicePerimeters.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "accesscontextmanager.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "accesscontextmanager.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "accesscontextmanager.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/operations", +"httpMethod": "GET", +"id": "accesscontextmanager.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"organizations": { +"resources": { +"gcpUserAccessBindings": { +"methods": { +"create": { +"description": "Creates a GcpUserAccessBinding. If the client specifies a name, the server ignores it. Fails if a resource already exists with the same group_key. Completion of this long-running operation does not necessarily signify that the new binding is deployed onto all affected users, which may take more time.", +"flatPath": "v1/organizations/{organizationsId}/gcpUserAccessBindings", +"httpMethod": "POST", +"id": "accesscontextmanager.organizations.gcpUserAccessBindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Example: \"organizations/256\"", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/gcpUserAccessBindings", +"request": { +"$ref": "GcpUserAccessBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a GcpUserAccessBinding. Completion of this long-running operation does not necessarily signify that the binding deletion is deployed onto all affected users, which may take more time.", +"flatPath": "v1/organizations/{organizationsId}/gcpUserAccessBindings/{gcpUserAccessBindingsId}", +"httpMethod": "DELETE", +"id": "accesscontextmanager.organizations.gcpUserAccessBindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Example: \"organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N\"", +"location": "path", +"pattern": "^organizations/[^/]+/gcpUserAccessBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the GcpUserAccessBinding with the given name.", +"flatPath": "v1/organizations/{organizationsId}/gcpUserAccessBindings/{gcpUserAccessBindingsId}", +"httpMethod": "GET", +"id": "accesscontextmanager.organizations.gcpUserAccessBindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Example: \"organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N\"", +"location": "path", +"pattern": "^organizations/[^/]+/gcpUserAccessBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GcpUserAccessBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all GcpUserAccessBindings for a Google Cloud organization.", +"flatPath": "v1/organizations/{organizationsId}/gcpUserAccessBindings", +"httpMethod": "GET", +"id": "accesscontextmanager.organizations.gcpUserAccessBindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of items to return. The server may return fewer items. If left blank, the server may return any number of items.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If left blank, returns the first page. To enumerate all items, use the next_page_token from your previous list operation.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Example: \"organizations/256\"", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/gcpUserAccessBindings", +"response": { +"$ref": "ListGcpUserAccessBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a GcpUserAccessBinding. Completion of this long-running operation does not necessarily signify that the changed binding is deployed onto all affected users, which may take more time.", +"flatPath": "v1/organizations/{organizationsId}/gcpUserAccessBindings/{gcpUserAccessBindingsId}", +"httpMethod": "PATCH", +"id": "accesscontextmanager.organizations.gcpUserAccessBindings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"append": { +"description": "Optional. This field controls whether or not certain repeated settings in the update request overwrite or append to existing settings on the binding. If true, then append. Otherwise overwrite. So far, only scoped_access_settings with reauth_settings supports appending. Global access_levels, access_levels in scoped_access_settings, dry_run_access_levels, reauth_settings, and session_settings are not compatible with append functionality, and the request will return an error if append=true when these settings are in the update_mask. The request will also return an error if append=true when \"scoped_access_settings\" is not set in the update_mask.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Immutable. Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)). Should not be specified by the client during creation. Example: \"organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N\"", +"location": "path", +"pattern": "^organizations/[^/]+/gcpUserAccessBindings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Only the fields specified in this mask are updated. Because name and group_key cannot be changed, update_mask is required and may only contain the following fields: `access_levels`, `dry_run_access_levels`, `reauth_settings` `session_settings`, `scoped_access_settings`. update_mask { paths: \"access_levels\" }", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GcpUserAccessBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"services": { +"methods": { +"get": { +"description": "Returns a VPC-SC supported service based on the service name.", +"flatPath": "v1/services/{name}", +"httpMethod": "GET", +"id": "accesscontextmanager.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the service to get information about. The names must be in the same format as used in defining a service perimeter, for example, `storage.googleapis.com`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/services/{name}", +"response": { +"$ref": "SupportedService" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all VPC-SC supported services.", +"flatPath": "v1/services", +"httpMethod": "GET", +"id": "accesscontextmanager.services.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "This flag specifies the maximum number of services to return per page. Default is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to start on a later page. Default is the first page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/services", +"response": { +"$ref": "ListSupportedServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241216", +"rootUrl": "https://accesscontextmanager.googleapis.com/", +"schemas": { +"AccessContextManagerOperationMetadata": { +"description": "Metadata of Access Context Manager's Long Running Operations.", +"id": "AccessContextManagerOperationMetadata", +"properties": {}, +"type": "object" +}, +"AccessLevel": { +"description": "An `AccessLevel` is a label that can be applied to requests to Google Cloud services, along with a list of requirements necessary for the label to be applied.", +"id": "AccessLevel", +"properties": { +"basic": { +"$ref": "BasicLevel", +"description": "A `BasicLevel` composed of `Conditions`." +}, +"custom": { +"$ref": "CustomLevel", +"description": "A `CustomLevel` written in the Common Expression Language." +}, +"description": { +"description": "Description of the `AccessLevel` and its use. Does not affect behavior.", +"type": "string" +}, +"name": { +"description": "Identifier. Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", +"type": "string" +}, +"title": { +"description": "Human readable title. Must be unique within the Policy.", +"type": "string" +} +}, +"type": "object" +}, +"AccessPolicy": { +"description": "`AccessPolicy` is a container for `AccessLevels` (which define the necessary attributes to use Google Cloud services) and `ServicePerimeters` (which define regions of services able to freely pass data within a perimeter). An access policy is globally visible within an organization, and the restrictions it specifies apply to all projects within an organization.", +"id": "AccessPolicy", +"properties": { +"etag": { +"description": "Output only. An opaque identifier for the current version of the `AccessPolicy`. This will always be a strongly validated etag, meaning that two Access Policies will be identical if and only if their etags are identical. Clients should not expect this to be in any specific format.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Identifier. Resource name of the `AccessPolicy`. Format: `accessPolicies/{access_policy}`", +"type": "string" +}, +"parent": { +"description": "Required. The parent of this `AccessPolicy` in the Cloud Resource Hierarchy. Currently immutable once created. Format: `organizations/{organization_id}`", +"type": "string" +}, +"scopes": { +"description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Required. Human readable title. Does not affect behavior.", +"type": "string" +} +}, +"type": "object" +}, +"AccessScope": { +"description": "Access scope represents the client scope, etc. to which the settings will be applied to.", +"id": "AccessScope", +"properties": { +"clientScope": { +"$ref": "ClientScope", +"description": "Optional. Client scope for this access scope." +} +}, +"type": "object" +}, +"AccessSettings": { +"description": "Access settings represent the set of conditions that must be met for access to be granted. At least one of the fields must be set.", +"id": "AccessSettings", +"properties": { +"accessLevels": { +"description": "Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"sessionSettings": { +"$ref": "SessionSettings", +"description": "Optional. Session settings applied to user access on a given AccessScope." +} +}, +"type": "object" +}, +"ApiOperation": { +"description": "Identification for an API Operation.", +"id": "ApiOperation", +"properties": { +"methodSelectors": { +"description": "API methods or permissions to allow. Method or permission must belong to the service specified by `service_name` field. A single MethodSelector entry with `*` specified for the `method` field will allow all methods AND permissions for the service specified in `service_name`.", +"items": { +"$ref": "MethodSelector" +}, +"type": "array" +}, +"serviceName": { +"description": "The name of the API whose methods or permissions the IngressPolicy or EgressPolicy want to allow. A single ApiOperation with `service_name` field set to `*` will allow all methods AND permissions for all services.", +"type": "string" +} +}, +"type": "object" +}, +"Application": { +"description": "An application that accesses Google Cloud APIs.", +"id": "Application", +"properties": { +"clientId": { +"description": "The OAuth client ID of the application.", +"type": "string" +}, +"name": { +"description": "The name of the application. Example: \"Cloud Console\"", +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedOrgsDesc": { +"description": "`AuthorizedOrgsDesc` contains data for an organization's authorization policy.", +"id": "AuthorizedOrgsDesc", +"properties": { +"assetType": { +"description": "The asset type of this authorized orgs desc. Valid values are `ASSET_TYPE_DEVICE`, and `ASSET_TYPE_CREDENTIAL_STRENGTH`.", +"enum": [ +"ASSET_TYPE_UNSPECIFIED", +"ASSET_TYPE_DEVICE", +"ASSET_TYPE_CREDENTIAL_STRENGTH" +], +"enumDescriptions": [ +"No asset type specified.", +"Device asset type.", +"Credential strength asset type." +], +"type": "string" +}, +"authorizationDirection": { +"description": "The direction of the authorization relationship between this organization and the organizations listed in the `orgs` field. The valid values for this field include the following: `AUTHORIZATION_DIRECTION_FROM`: Allows this organization to evaluate traffic in the organizations listed in the `orgs` field. `AUTHORIZATION_DIRECTION_TO`: Allows the organizations listed in the `orgs` field to evaluate the traffic in this organization. For the authorization relationship to take effect, all of the organizations must authorize and specify the appropriate relationship direction. For example, if organization A authorized organization B and C to evaluate its traffic, by specifying `AUTHORIZATION_DIRECTION_TO` as the authorization direction, organizations B and C must specify `AUTHORIZATION_DIRECTION_FROM` as the authorization direction in their `AuthorizedOrgsDesc` resource.", +"enum": [ +"AUTHORIZATION_DIRECTION_UNSPECIFIED", +"AUTHORIZATION_DIRECTION_TO", +"AUTHORIZATION_DIRECTION_FROM" +], +"enumDescriptions": [ +"No direction specified.", +"The specified organizations are authorized to evaluate traffic in this organization.", +"The traffic of the specified organizations can be evaluated by this organization." +], +"type": "string" +}, +"authorizationType": { +"description": "A granular control type for authorization levels. Valid value is `AUTHORIZATION_TYPE_TRUST`.", +"enum": [ +"AUTHORIZATION_TYPE_UNSPECIFIED", +"AUTHORIZATION_TYPE_TRUST" +], +"enumDescriptions": [ +"No authorization type specified.", +"This authorization relationship is \"trust\"." +], +"type": "string" +}, +"name": { +"description": "Identifier. Resource name for the `AuthorizedOrgsDesc`. Format: `accessPolicies/{access_policy}/authorizedOrgsDescs/{authorized_orgs_desc}`. The `authorized_orgs_desc` component must begin with a letter, followed by alphanumeric characters or `_`. After you create an `AuthorizedOrgsDesc`, you cannot change its `name`.", +"type": "string" +}, +"orgs": { +"description": "The list of organization ids in this AuthorizedOrgsDesc. Format: `organizations/` Example: `organizations/123456`", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BasicLevel": { +"description": "`BasicLevel` is an `AccessLevel` using a set of recommended features.", +"id": "BasicLevel", +"properties": { +"combiningFunction": { +"description": "How the `conditions` list should be combined to determine if a request is granted this `AccessLevel`. If AND is used, each `Condition` in `conditions` must be satisfied for the `AccessLevel` to be applied. If OR is used, at least one `Condition` in `conditions` must be satisfied for the `AccessLevel` to be applied. Default behavior is AND.", +"enum": [ +"AND", +"OR" +], +"enumDescriptions": [ +"All `Conditions` must be true for the `BasicLevel` to be true.", +"If at least one `Condition` is true, then the `BasicLevel` is true." +], +"type": "string" +}, +"conditions": { +"description": "Required. A list of requirements for the `AccessLevel` to be granted.", +"items": { +"$ref": "Condition" +}, +"type": "array" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ClientScope": { +"description": "Client scope represents the application, etc. subject to this binding's restrictions.", +"id": "ClientScope", +"properties": { +"restrictedClientApplication": { +"$ref": "Application", +"description": "Optional. The application that is subject to this binding's scope." +} +}, +"type": "object" +}, +"CommitServicePerimetersRequest": { +"description": "A request to commit dry-run specs in all Service Perimeters belonging to an Access Policy.", +"id": "CommitServicePerimetersRequest", +"properties": { +"etag": { +"description": "Optional. The etag for the version of the Access Policy that this commit operation is to be performed on. If, at the time of commit, the etag for the Access Policy stored in Access Context Manager is different from the specified etag, then the commit operation will not be performed and the call will fail. This field is not required. If etag is not provided, the operation will be performed as if a valid etag is provided.", +"type": "string" +} +}, +"type": "object" +}, +"CommitServicePerimetersResponse": { +"description": "A response to CommitServicePerimetersRequest. This will be put inside of Operation.response field.", +"id": "CommitServicePerimetersResponse", +"properties": { +"servicePerimeters": { +"description": "List of all the Service Perimeter instances in the Access Policy.", +"items": { +"$ref": "ServicePerimeter" +}, +"type": "array" +} +}, +"type": "object" +}, +"Condition": { +"description": "A condition necessary for an `AccessLevel` to be granted. The Condition is an AND over its fields. So a Condition is true if: 1) the request IP is from one of the listed subnetworks AND 2) the originating device complies with the listed device policy AND 3) all listed access levels are granted AND 4) the request was sent at a time allowed by the DateTimeRestriction.", +"id": "Condition", +"properties": { +"devicePolicy": { +"$ref": "DevicePolicy", +"description": "Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed." +}, +"ipSubnetworks": { +"description": "CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly, for IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"members": { +"description": "The request must be made by one of the provided user or service accounts. Groups are not supported. Syntax: `user:{emailid}` `serviceAccount:{emailid}` If not specified, a request may come from any user.", +"items": { +"type": "string" +}, +"type": "array" +}, +"negate": { +"description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", +"type": "boolean" +}, +"regions": { +"description": "The request must originate from one of the provided countries/regions. Must be valid ISO 3166-1 alpha-2 codes.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredAccessLevels": { +"description": "A list of other access levels defined in the same `Policy`, referenced by resource name. Referencing an `AccessLevel` which does not exist is an error. All access levels listed must be granted for the Condition to be true. Example: \"`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME\"`", +"items": { +"type": "string" +}, +"type": "array" +}, +"vpcNetworkSources": { +"description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", +"items": { +"$ref": "VpcNetworkSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomLevel": { +"description": "`CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. See CEL spec at: https://github.com/google/cel-spec", +"id": "CustomLevel", +"properties": { +"expr": { +"$ref": "Expr", +"description": "Required. A Cloud CEL expression evaluating to a boolean." +} +}, +"type": "object" +}, +"DevicePolicy": { +"description": "`DevicePolicy` specifies device specific restrictions necessary to acquire a given access level. A `DevicePolicy` specifies requirements for requests from devices to be granted access levels, it does not do any enforcement on the device. `DevicePolicy` acts as an AND over all specified fields, and each repeated field is an OR over its elements. Any unset fields are ignored. For example, if the proto is { os_type : DESKTOP_WINDOWS, os_type : DESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy will be true for requests originating from encrypted Linux desktops and encrypted Windows desktops.", +"id": "DevicePolicy", +"properties": { +"allowedDeviceManagementLevels": { +"description": "Allowed device management levels, an empty list allows all management levels.", +"items": { +"enum": [ +"MANAGEMENT_UNSPECIFIED", +"NONE", +"BASIC", +"COMPLETE" +], +"enumDescriptions": [ +"The device's management level is not specified or not known.", +"The device is not managed.", +"Basic management is enabled, which is generally limited to monitoring and wiping the corporate account.", +"Complete device management. This includes more thorough monitoring and the ability to directly manage the device (such as remote wiping). This can be enabled through the Android Enterprise Platform." +], +"type": "string" +}, +"type": "array" +}, +"allowedEncryptionStatuses": { +"description": "Allowed encryptions statuses, an empty list allows all statuses.", +"items": { +"enum": [ +"ENCRYPTION_UNSPECIFIED", +"ENCRYPTION_UNSUPPORTED", +"UNENCRYPTED", +"ENCRYPTED" +], +"enumDescriptions": [ +"The encryption status of the device is not specified or not known.", +"The device does not support encryption.", +"The device supports encryption, but is currently unencrypted.", +"The device is encrypted." +], +"type": "string" +}, +"type": "array" +}, +"osConstraints": { +"description": "Allowed OS versions, an empty list allows all types and all versions.", +"items": { +"$ref": "OsConstraint" +}, +"type": "array" +}, +"requireAdminApproval": { +"description": "Whether the device needs to be approved by the customer admin.", +"type": "boolean" +}, +"requireCorpOwned": { +"description": "Whether the device needs to be corp owned.", +"type": "boolean" +}, +"requireScreenlock": { +"description": "Whether or not screenlock is required for the DevicePolicy to be true. Defaults to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"EgressFrom": { +"description": "Defines the conditions under which an EgressPolicy matches a request. Conditions based on information about the source of the request. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed.", +"id": "EgressFrom", +"properties": { +"identities": { +"description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For third-party identity, only single identities are supported and other identity types are not supported. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, and `principal` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"identityType": { +"description": "Specifies the type of identities that are allowed access to outside the perimeter. If left unspecified, then members of `identities` field will be allowed access.", +"enum": [ +"IDENTITY_TYPE_UNSPECIFIED", +"ANY_IDENTITY", +"ANY_USER_ACCOUNT", +"ANY_SERVICE_ACCOUNT" +], +"enumDescriptions": [ +"No blanket identity group specified.", +"Authorize access from all identities outside the perimeter.", +"Authorize access from all human users outside the perimeter.", +"Authorize access from all service accounts outside the perimeter." +], +"type": "string" +}, +"sourceRestriction": { +"description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", +"enum": [ +"SOURCE_RESTRICTION_UNSPECIFIED", +"SOURCE_RESTRICTION_ENABLED", +"SOURCE_RESTRICTION_DISABLED" +], +"enumDescriptions": [ +"Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", +"Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", +"Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." +], +"type": "string" +}, +"sources": { +"description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", +"items": { +"$ref": "EgressSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"EgressPolicy": { +"description": "Policy for egress from perimeter. EgressPolicies match requests based on `egress_from` and `egress_to` stanzas. For an EgressPolicy to match, both `egress_from` and `egress_to` stanzas must be matched. If an EgressPolicy matches a request, the request is allowed to span the ServicePerimeter boundary. For example, an EgressPolicy can be used to allow VMs on networks within the ServicePerimeter to access a defined set of projects outside the perimeter in certain contexts (e.g. to read data from a Cloud Storage bucket or query against a BigQuery dataset). EgressPolicies are concerned with the *resources* that a request relates as well as the API services and API actions being used. They do not related to the direction of data movement. More detailed documentation for this concept can be found in the descriptions of EgressFrom and EgressTo.", +"id": "EgressPolicy", +"properties": { +"egressFrom": { +"$ref": "EgressFrom", +"description": "Defines conditions on the source of a request causing this EgressPolicy to apply." +}, +"egressTo": { +"$ref": "EgressTo", +"description": "Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply." +}, +"title": { +"description": "Optional. Human-readable title for the egress rule. The title must be unique within the perimeter and can not exceed 100 characters. Within the access policy, the combined length of all rule titles must not exceed 240,000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"EgressSource": { +"description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", +"id": "EgressSource", +"properties": { +"accessLevel": { +"description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", +"type": "string" +} +}, +"type": "object" +}, +"EgressTo": { +"description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", +"id": "EgressTo", +"properties": { +"externalResources": { +"description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"operations": { +"description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", +"items": { +"$ref": "ApiOperation" +}, +"type": "array" +}, +"resources": { +"description": "A list of resources, currently only projects in the form `projects/`, that are allowed to be accessed by sources defined in the corresponding EgressFrom. A request matches if it contains a resource in this list. If `*` is specified for `resources`, then this EgressTo rule will authorize access to all resources outside the perimeter.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GcpUserAccessBinding": { +"description": "Restricts access to Cloud Console and Google Cloud APIs for a set of users using Context-Aware Access.", +"id": "GcpUserAccessBinding", +"properties": { +"accessLevels": { +"description": "Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"dryRunAccessLevels": { +"description": "Optional. Dry run access level that will be evaluated but will not be enforced. The access denial based on dry run policy will be logged. Only one access level is supported, not multiple. This list must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"groupKey": { +"description": "Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See \"id\" in the [G Suite Directory API's Groups resource] (https://developers.google.com/admin-sdk/directory/v1/reference/groups#resource). If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: \"01d520gv4vjcrht\"", +"type": "string" +}, +"name": { +"description": "Immutable. Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)). Should not be specified by the client during creation. Example: \"organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N\"", +"type": "string" +}, +"restrictedClientApplications": { +"description": "Optional. A list of applications that are subject to this binding's restrictions. If the list is empty, the binding restrictions will universally apply to all applications.", +"items": { +"$ref": "Application" +}, +"type": "array" +}, +"scopedAccessSettings": { +"description": "Optional. A list of scoped access settings that set this binding's restrictions on a subset of applications. This field cannot be set if restricted_client_applications is set.", +"items": { +"$ref": "ScopedAccessSettings" +}, +"type": "array" +}, +"sessionSettings": { +"$ref": "SessionSettings", +"description": "Optional. The Google Cloud session length (GCSL) policy for the group key." +} +}, +"type": "object" +}, +"GcpUserAccessBindingOperationMetadata": { +"description": "Metadata of Google Cloud Access Binding Long Running Operations.", +"id": "GcpUserAccessBindingOperationMetadata", +"properties": {}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"IngressFrom": { +"description": "Defines the conditions under which an IngressPolicy matches a request. Conditions are based on information about the source of the request. The request must satisfy what is defined in `sources` AND identity related fields in order to match.", +"id": "IngressFrom", +"properties": { +"identities": { +"description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For third-party identity, only single identities are supported and other identity types are not supported. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, and `principal` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"identityType": { +"description": "Specifies the type of identities that are allowed access from outside the perimeter. If left unspecified, then members of `identities` field will be allowed access.", +"enum": [ +"IDENTITY_TYPE_UNSPECIFIED", +"ANY_IDENTITY", +"ANY_USER_ACCOUNT", +"ANY_SERVICE_ACCOUNT" +], +"enumDescriptions": [ +"No blanket identity group specified.", +"Authorize access from all identities outside the perimeter.", +"Authorize access from all human users outside the perimeter.", +"Authorize access from all service accounts outside the perimeter." +], +"type": "string" +}, +"sources": { +"description": "Sources that this IngressPolicy authorizes access from.", +"items": { +"$ref": "IngressSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"IngressPolicy": { +"description": "Policy for ingress into ServicePerimeter. IngressPolicies match requests based on `ingress_from` and `ingress_to` stanzas. For an ingress policy to match, both the `ingress_from` and `ingress_to` stanzas must be matched. If an IngressPolicy matches a request, the request is allowed through the perimeter boundary from outside the perimeter. For example, access from the internet can be allowed either based on an AccessLevel or, for traffic hosted on Google Cloud, the project of the source network. For access from private networks, using the project of the hosting network is required. Individual ingress policies can be limited by restricting which services and/or actions they match using the `ingress_to` field.", +"id": "IngressPolicy", +"properties": { +"ingressFrom": { +"$ref": "IngressFrom", +"description": "Defines the conditions on the source of a request causing this IngressPolicy to apply." +}, +"ingressTo": { +"$ref": "IngressTo", +"description": "Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply." +}, +"title": { +"description": "Optional. Human-readable title for the ingress rule. The title must be unique within the perimeter and can not exceed 100 characters. Within the access policy, the combined length of all rule titles must not exceed 240,000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"IngressSource": { +"description": "The source that IngressPolicy authorizes access from.", +"id": "IngressSource", +"properties": { +"accessLevel": { +"description": "An AccessLevel resource name that allow resources within the ServicePerimeters to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all IngressSources will be allowed.", +"type": "string" +}, +"resource": { +"description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", +"type": "string" +} +}, +"type": "object" +}, +"IngressTo": { +"description": "Defines the conditions under which an IngressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the target resource of the request. The request must satisfy what is defined in `operations` AND `resources` in order to match.", +"id": "IngressTo", +"properties": { +"operations": { +"description": "A list of ApiOperations allowed to be performed by the sources specified in corresponding IngressFrom in this ServicePerimeter.", +"items": { +"$ref": "ApiOperation" +}, +"type": "array" +}, +"resources": { +"description": "A list of resources, currently only projects in the form `projects/`, protected by this ServicePerimeter that are allowed to be accessed by sources defined in the corresponding IngressFrom. If a single `*` is specified, then access to all resources inside the perimeter are allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListAccessLevelsResponse": { +"description": "A response to `ListAccessLevelsRequest`.", +"id": "ListAccessLevelsResponse", +"properties": { +"accessLevels": { +"description": "List of the Access Level instances.", +"items": { +"$ref": "AccessLevel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +} +}, +"type": "object" +}, +"ListAccessPoliciesResponse": { +"description": "A response to `ListAccessPoliciesRequest`.", +"id": "ListAccessPoliciesResponse", +"properties": { +"accessPolicies": { +"description": "List of the AccessPolicy instances.", +"items": { +"$ref": "AccessPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +} +}, +"type": "object" +}, +"ListAuthorizedOrgsDescsResponse": { +"description": "A response to `ListAuthorizedOrgsDescsRequest`.", +"id": "ListAuthorizedOrgsDescsResponse", +"properties": { +"authorizedOrgsDescs": { +"description": "List of all the Authorized Orgs Desc instances.", +"items": { +"$ref": "AuthorizedOrgsDesc" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +} +}, +"type": "object" +}, +"ListGcpUserAccessBindingsResponse": { +"description": "Response of ListGcpUserAccessBindings.", +"id": "ListGcpUserAccessBindingsResponse", +"properties": { +"gcpUserAccessBindings": { +"description": "GcpUserAccessBinding", +"items": { +"$ref": "GcpUserAccessBinding" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to get the next page of items. If blank, there are no more items.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServicePerimetersResponse": { +"description": "A response to `ListServicePerimetersRequest`.", +"id": "ListServicePerimetersResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +}, +"servicePerimeters": { +"description": "List of the Service Perimeter instances.", +"items": { +"$ref": "ServicePerimeter" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSupportedServicesResponse": { +"description": "A response to `ListSupportedServicesRequest`.", +"id": "ListSupportedServicesResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +}, +"supportedServices": { +"description": "List of services supported by VPC Service Controls instances.", +"items": { +"$ref": "SupportedService" +}, +"type": "array" +} +}, +"type": "object" +}, +"MethodSelector": { +"description": "An allowed method or permission of a service specified in ApiOperation.", +"id": "MethodSelector", +"properties": { +"method": { +"description": "A valid method name for the corresponding `service_name` in ApiOperation. If `*` is used as the value for the `method`, then ALL methods and permissions are allowed.", +"type": "string" +}, +"permission": { +"description": "A valid Cloud IAM permission for the corresponding `service_name` in ApiOperation.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OsConstraint": { +"description": "A restriction on the OS type and version of devices making requests.", +"id": "OsConstraint", +"properties": { +"minimumVersion": { +"description": "The minimum allowed OS version. If not set, any version of this OS satisfies the constraint. Format: `\"major.minor.patch\"`. Examples: `\"10.5.301\"`, `\"9.2.1\"`.", +"type": "string" +}, +"osType": { +"description": "Required. The allowed OS type.", +"enum": [ +"OS_UNSPECIFIED", +"DESKTOP_MAC", +"DESKTOP_WINDOWS", +"DESKTOP_LINUX", +"DESKTOP_CHROME_OS", +"ANDROID", +"IOS" +], +"enumDescriptions": [ +"The operating system of the device is not specified or not known.", +"A desktop Mac operating system.", +"A desktop Windows operating system.", +"A desktop Linux operating system.", +"A desktop ChromeOS operating system.", +"An Android operating system.", +"An iOS operating system." +], +"type": "string" +}, +"requireVerifiedChromeOs": { +"description": "Only allows requests from devices with a verified Chrome OS. Verifications includes requirements that the device is enterprise-managed, conformant to domain policies, and the caller has permission to call the API targeted by the request.", +"type": "boolean" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ReplaceAccessLevelsRequest": { +"description": "A request to replace all existing Access Levels in an Access Policy with the Access Levels provided. This is done atomically.", +"id": "ReplaceAccessLevelsRequest", +"properties": { +"accessLevels": { +"description": "Required. The desired Access Levels that should replace all existing Access Levels in the Access Policy.", +"items": { +"$ref": "AccessLevel" +}, +"type": "array" +}, +"etag": { +"description": "Optional. The etag for the version of the Access Policy that this replace operation is to be performed on. If, at the time of replace, the etag for the Access Policy stored in Access Context Manager is different from the specified etag, then the replace operation will not be performed and the call will fail. This field is not required. If etag is not provided, the operation will be performed as if a valid etag is provided.", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceAccessLevelsResponse": { +"description": "A response to ReplaceAccessLevelsRequest. This will be put inside of Operation.response field.", +"id": "ReplaceAccessLevelsResponse", +"properties": { +"accessLevels": { +"description": "List of the Access Level instances.", +"items": { +"$ref": "AccessLevel" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReplaceServicePerimetersRequest": { +"description": "A request to replace all existing Service Perimeters in an Access Policy with the Service Perimeters provided. This is done atomically.", +"id": "ReplaceServicePerimetersRequest", +"properties": { +"etag": { +"description": "Optional. The etag for the version of the Access Policy that this replace operation is to be performed on. If, at the time of replace, the etag for the Access Policy stored in Access Context Manager is different from the specified etag, then the replace operation will not be performed and the call will fail. This field is not required. If etag is not provided, the operation will be performed as if a valid etag is provided.", +"type": "string" +}, +"servicePerimeters": { +"description": "Required. The desired Service Perimeters that should replace all existing Service Perimeters in the Access Policy.", +"items": { +"$ref": "ServicePerimeter" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReplaceServicePerimetersResponse": { +"description": "A response to ReplaceServicePerimetersRequest. This will be put inside of Operation.response field.", +"id": "ReplaceServicePerimetersResponse", +"properties": { +"servicePerimeters": { +"description": "List of the Service Perimeter instances.", +"items": { +"$ref": "ServicePerimeter" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScopedAccessSettings": { +"description": "A relationship between access settings and its scope.", +"id": "ScopedAccessSettings", +"properties": { +"activeSettings": { +"$ref": "AccessSettings", +"description": "Optional. Access settings for this scoped access settings. This field may be empty if dry_run_settings is set." +}, +"dryRunSettings": { +"$ref": "AccessSettings", +"description": "Optional. Dry-run access settings for this scoped access settings. This field may be empty if active_settings is set." +}, +"scope": { +"$ref": "AccessScope", +"description": "Optional. Application, etc. to which the access settings will be applied to. Implicitly, this is the scoped access settings key; as such, it must be unique and non-empty." +} +}, +"type": "object" +}, +"ServicePerimeter": { +"description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", +"id": "ServicePerimeter", +"properties": { +"description": { +"description": "Description of the `ServicePerimeter` and its use. Does not affect behavior.", +"type": "string" +}, +"etag": { +"description": "Optional. An opaque identifier for the current version of the `ServicePerimeter`. This identifier does not follow any specific format. If an etag is not provided, the operation will be performed as if a valid etag is provided.", +"type": "string" +}, +"name": { +"description": "Identifier. Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", +"type": "string" +}, +"perimeterType": { +"description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", +"enum": [ +"PERIMETER_TYPE_REGULAR", +"PERIMETER_TYPE_BRIDGE" +], +"enumDescriptions": [ +"Regular Perimeter. When no value is specified, the perimeter uses this type.", +"Perimeter Bridge." +], +"type": "string" +}, +"spec": { +"$ref": "ServicePerimeterConfig", +"description": "Proposed (or dry run) ServicePerimeter configuration. This configuration allows to specify and test ServicePerimeter configuration without enforcing actual access restrictions. Only allowed to be set when the \"use_explicit_dry_run_spec\" flag is set." +}, +"status": { +"$ref": "ServicePerimeterConfig", +"description": "Current ServicePerimeter configuration. Specifies sets of resources, restricted services and access levels that determine perimeter content and boundaries." +}, +"title": { +"description": "Human readable title. Must be unique within the Policy.", +"type": "string" +}, +"useExplicitDryRunSpec": { +"description": "Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists for all Service Perimeters, and that spec is identical to the status for those Service Perimeters. When this flag is set, it inhibits the generation of the implicit spec, thereby allowing the user to explicitly provide a configuration (\"spec\") to use in a dry-run version of the Service Perimeter. This allows the user to test changes to the enforced config (\"status\") without actually enforcing them. This testing is done through analyzing the differences between currently enforced and suggested restrictions. use_explicit_dry_run_spec must bet set to True if any of the fields in the spec are set to non-default values.", +"type": "boolean" +} +}, +"type": "object" +}, +"ServicePerimeterConfig": { +"description": "`ServicePerimeterConfig` specifies a set of Google Cloud resources that describe specific Service Perimeter configuration.", +"id": "ServicePerimeterConfig", +"properties": { +"accessLevels": { +"description": "A list of `AccessLevel` resource names that allow resources within the `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are listed, resources within the perimeter can only be accessed via Google Cloud calls with request origins within the perimeter. Example: `\"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL\"`. For Service Perimeter Bridge, must be empty.", +"items": { +"type": "string" +}, +"type": "array" +}, +"egressPolicies": { +"description": "List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge.", +"items": { +"$ref": "EgressPolicy" +}, +"type": "array" +}, +"ingressPolicies": { +"description": "List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge.", +"items": { +"$ref": "IngressPolicy" +}, +"type": "array" +}, +"resources": { +"description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"restrictedServices": { +"description": "Google Cloud services that are subject to the Service Perimeter restrictions. For example, if `storage.googleapis.com` is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"vpcAccessibleServices": { +"$ref": "VpcAccessibleServices", +"description": "Configuration for APIs allowed within Perimeter." +} +}, +"type": "object" +}, +"SessionSettings": { +"description": "Stores settings related to Google Cloud Session Length including session duration, the type of challenge (i.e. method) they should face when their session expires, and other related settings.", +"id": "SessionSettings", +"properties": { +"maxInactivity": { +"description": "Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.", +"format": "google-duration", +"type": "string" +}, +"sessionLength": { +"description": "Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If use_oidc_max_age is true, for OIDC apps, the session length will be the minimum of this field and OIDC max_age param.", +"format": "google-duration", +"type": "string" +}, +"sessionLengthEnabled": { +"description": "Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.", +"type": "boolean" +}, +"sessionReauthMethod": { +"description": "Optional. Session method when user's Google Cloud session is up.", +"enum": [ +"SESSION_REAUTH_METHOD_UNSPECIFIED", +"LOGIN", +"SECURITY_KEY", +"PASSWORD" +], +"enumDescriptions": [ +"If method is undefined in the API, LOGIN will be used by default.", +"The user will be prompted to perform regular login. Users who are enrolled for two-step verification and haven't chosen \"Remember this computer\" will be prompted for their second factor.", +"The user will be prompted to authenticate using their security key. If no security key has been configured, then authentication will fallback to LOGIN.", +"The user will be prompted for their password." +], +"type": "string" +}, +"useOidcMaxAge": { +"description": "Optional. Only useful for OIDC apps. When false, the OIDC max_age param, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the session_length field and the max_age OIDC param.", +"type": "boolean" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SupportedService": { +"description": "`SupportedService` specifies the VPC Service Controls and its properties.", +"id": "SupportedService", +"properties": { +"availableOnRestrictedVip": { +"description": "True if the service is available on the restricted VIP. Services on the restricted VIP typically either support VPC Service Controls or are core infrastructure services required for the functioning of Google Cloud.", +"type": "boolean" +}, +"knownLimitations": { +"description": "True if the service is supported with some limitations. Check [documentation](https://cloud.google.com/vpc-service-controls/docs/supported-products) for details.", +"type": "boolean" +}, +"name": { +"description": "The service name or address of the supported service, such as `service.googleapis.com`.", +"type": "string" +}, +"serviceSupportStage": { +"description": "The support stage of the service.", +"enum": [ +"SERVICE_SUPPORT_STAGE_UNSPECIFIED", +"GA", +"PREVIEW", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"PREVIEW indicates a pre-release stage where the product is functionally complete but undergoing real-world testing.", +"Deprecated features are scheduled to be shut down and removed." +], +"type": "string" +}, +"supportStage": { +"description": "The support stage of the service.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"supportedMethods": { +"description": "The list of the supported methods. This field exists only in response to GetSupportedService", +"items": { +"$ref": "MethodSelector" +}, +"type": "array" +}, +"title": { +"description": "The name of the supported product, such as 'Cloud Product API'.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VpcAccessibleServices": { +"description": "Specifies how APIs are allowed to communicate within the Service Perimeter.", +"id": "VpcAccessibleServices", +"properties": { +"allowedServices": { +"description": "The list of APIs usable within the Service Perimeter. Must be empty unless 'enable_restriction' is True. You can specify a list of individual services, as well as include the 'RESTRICTED-SERVICES' value, which automatically includes all of the services protected by the perimeter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"enableRestriction": { +"description": "Whether to restrict API calls within the Service Perimeter to the list of APIs specified in 'allowed_services'.", +"type": "boolean" +} +}, +"type": "object" +}, +"VpcNetworkSource": { +"description": "The originating network source in Google Cloud.", +"id": "VpcNetworkSource", +"properties": { +"vpcSubnetwork": { +"$ref": "VpcSubNetwork", +"description": "Sub-segment ranges of a VPC network." +} +}, +"type": "object" +}, +"VpcSubNetwork": { +"description": "Sub-segment ranges inside of a VPC Network.", +"id": "VpcSubNetwork", +"properties": { +"network": { +"description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", +"type": "string" +}, +"vpcIpSubnetworks": { +"description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Access Context Manager API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/acmedns.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/acmedns.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..4fa5bf8f829009994e83d09cdaa1d0d7cb5d1ddd --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/acmedns.v1.json @@ -0,0 +1,222 @@ +{ +"basePath": "", +"baseUrl": "https://acmedns.googleapis.com/", +"batchPath": "batch", +"canonicalName": "ACME DNS", +"description": "Google Domains ACME DNS API that allows users to complete ACME DNS-01 challenges for a domain.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/domains/acme-dns/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "acmedns:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://acmedns.mtls.googleapis.com/", +"name": "acmedns", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"acmeChallengeSets": { +"methods": { +"get": { +"description": "Gets the ACME challenge set for a given domain name. Domain names must be provided in Punycode.", +"flatPath": "v1/acmeChallengeSets/{rootDomain}", +"httpMethod": "GET", +"id": "acmedns.acmeChallengeSets.get", +"parameterOrder": [ +"rootDomain" +], +"parameters": { +"rootDomain": { +"description": "Required. SLD + TLD domain name to list challenges. For example, this would be \"google.com\" for any FQDN under \"google.com\". That includes challenges for \"subdomain.google.com\". This MAY be Unicode or Punycode.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/acmeChallengeSets/{rootDomain}", +"response": { +"$ref": "AcmeChallengeSet" +} +}, +"rotateChallenges": { +"description": "Rotate the ACME challenges for a given domain name. By default, removes any challenges that are older than 30 days. Domain names must be provided in Punycode.", +"flatPath": "v1/acmeChallengeSets/{rootDomain}:rotateChallenges", +"httpMethod": "POST", +"id": "acmedns.acmeChallengeSets.rotateChallenges", +"parameterOrder": [ +"rootDomain" +], +"parameters": { +"rootDomain": { +"description": "Required. SLD + TLD domain name to update records for. For example, this would be \"google.com\" for any FQDN under \"google.com\". That includes challenges for \"subdomain.google.com\". This MAY be Unicode or Punycode.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/acmeChallengeSets/{rootDomain}:rotateChallenges", +"request": { +"$ref": "RotateChallengesRequest" +}, +"response": { +"$ref": "AcmeChallengeSet" +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://acmedns.googleapis.com/", +"schemas": { +"AcmeChallengeSet": { +"description": "The up-to-date ACME challenge set on a domain for an RPC. This contains all of the ACME TXT records that exist on the domain.", +"id": "AcmeChallengeSet", +"properties": { +"record": { +"description": "The ACME challenges on the requested domain represented as individual TXT records.", +"items": { +"$ref": "AcmeTxtRecord" +}, +"type": "array" +} +}, +"type": "object" +}, +"AcmeTxtRecord": { +"description": "The TXT record message that represents an ACME DNS-01 challenge.", +"id": "AcmeTxtRecord", +"properties": { +"digest": { +"description": "Holds the ACME challenge data put in the TXT record. This will be checked to be a valid TXT record data entry.", +"type": "string" +}, +"fqdn": { +"description": "The domain/subdomain for the record. In a request, this MAY be Unicode or Punycode. In a response, this will be in Unicode. The fqdn MUST contain the root_domain field on the request.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when this record was last updated. This will be in UTC time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RotateChallengesRequest": { +"description": "The request message for the RotateChallenges RPC. Requires an access token, a root domain, and either records_to_add or records_to_remove to be populated. Records may be set for multiple subdomains at once to support SAN requests for multiple subdomains in a single domain. By default, ACME TXT record challenges that are older than 30 days will be removed. Set `keep_expired_records` to false if this behavior is undesired. There is a record maximum of 100 records per domain including expired records. Any request sent that would exceed this maximum will result in a FAILED_PRECONDITION error. NEXT ID: 6", +"id": "RotateChallengesRequest", +"properties": { +"accessToken": { +"description": "Required. ACME DNS access token. This is a base64 token secret that is procured from the Google Domains website. It authorizes ACME TXT record updates for a domain.", +"format": "byte", +"type": "string" +}, +"keepExpiredRecords": { +"description": "Keep records older than 30 days that were used for previous requests.", +"type": "boolean" +}, +"recordsToAdd": { +"description": "ACME TXT record challenges to add. Supports multiple challenges on the same FQDN.", +"items": { +"$ref": "AcmeTxtRecord" +}, +"type": "array" +}, +"recordsToRemove": { +"description": "ACME TXT record challenges to remove.", +"items": { +"$ref": "AcmeTxtRecord" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "ACME DNS API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json new file mode 100644 index 0000000000000000000000000000000000000000..49e78d181c5e785491a5f3d427c1fc73aae700fa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json @@ -0,0 +1,596 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.buyer": { + "description": "Manage your Ad Exchange buyer account configuration" + } + } + } + }, + "basePath": "/adexchangebuyer/v1.2/", + "baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.2/", + "batchPath": "batch/adexchangebuyer/v1.2", + "canonicalName": "Ad Exchange Buyer", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/5zRjPUGv2mBJ1B5Pi974NW_Asxk\"", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "id": "adexchangebuyer:v1.2", + "kind": "discovery#restDescription", + "name": "adexchangebuyer", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "alt": { + "default": "json", + "description": "Data format for the response.", + "enum": [ + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json" + ], + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "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.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.", + "location": "query", + "type": "string" + }, + "userIp": { + "description": "Deprecated. Please use quotaUser instead.", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "accounts": { + "methods": { + "get": { + "description": "Gets one account by ID.", + "httpMethod": "GET", + "id": "adexchangebuyer.accounts.get", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The account id", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "accounts/{id}", + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves the authenticated user's list of accounts.", + "httpMethod": "GET", + "id": "adexchangebuyer.accounts.list", + "path": "accounts", + "response": { + "$ref": "AccountsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "description": "Updates an existing account. This method supports patch semantics.", + "httpMethod": "PATCH", + "id": "adexchangebuyer.accounts.patch", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The account id", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "accounts/{id}", + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "description": "Updates an existing account.", + "httpMethod": "PUT", + "id": "adexchangebuyer.accounts.update", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The account id", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "accounts/{id}", + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "creatives": { + "methods": { + "get": { + "description": "Gets the status for a single creative. A creative will be available 30-40 minutes after submission.", + "httpMethod": "GET", + "id": "adexchangebuyer.creatives.get", + "parameterOrder": [ + "accountId", + "buyerCreativeId" + ], + "parameters": { + "accountId": { + "description": "The id for the account that will serve this creative.", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + }, + "buyerCreativeId": { + "description": "The buyer-specific id for this creative.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "creatives/{accountId}/{buyerCreativeId}", + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "description": "Submit a new creative.", + "httpMethod": "POST", + "id": "adexchangebuyer.creatives.insert", + "path": "creatives", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.", + "httpMethod": "GET", + "id": "adexchangebuyer.creatives.list", + "parameters": { + "maxResults": { + "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.", + "format": "uint32", + "location": "query", + "maximum": "1000", + "minimum": "1", + "type": "integer" + }, + "pageToken": { + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.", + "location": "query", + "type": "string" + }, + "statusFilter": { + "description": "When specified, only creatives having the given status are returned.", + "enum": [ + "approved", + "disapproved", + "not_checked" + ], + "enumDescriptions": [ + "Creatives which have been approved.", + "Creatives which have been disapproved.", + "Creatives whose status is not yet checked." + ], + "location": "query", + "type": "string" + } + }, + "path": "creatives", + "response": { + "$ref": "CreativesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + } + }, + "revision": "20210815", + "rootUrl": "https://www.googleapis.com/", + "schemas": { + "Account": { + "description": "Configuration data for an Ad Exchange buyer account.", + "id": "Account", + "properties": { + "bidderLocation": { + "description": "Your bidder locations that have distinct URLs.", + "items": { + "properties": { + "maximumQps": { + "description": "The maximum queries per second the Ad Exchange will send.", + "format": "int32", + "type": "integer" + }, + "region": { + "description": "The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values: \n- ASIA \n- EUROPE \n- US_EAST \n- US_WEST", + "type": "string" + }, + "url": { + "description": "The URL to which the Ad Exchange will send bid requests.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cookieMatchingNid": { + "description": "The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.", + "type": "string" + }, + "cookieMatchingUrl": { + "description": "The base URL used in cookie match requests.", + "type": "string" + }, + "id": { + "description": "Account id.", + "format": "int32", + "type": "integer" + }, + "kind": { + "default": "adexchangebuyer#account", + "description": "Resource type.", + "type": "string" + }, + "maximumActiveCreatives": { + "description": "The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.", + "format": "int32", + "type": "integer" + }, + "maximumTotalQps": { + "description": "The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.", + "format": "int32", + "type": "integer" + }, + "numberActiveCreatives": { + "description": "The number of creatives that this account inserted or bid with in the last 30 days.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AccountsList": { + "description": "An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.", + "id": "AccountsList", + "properties": { + "items": { + "description": "A list of accounts.", + "items": { + "$ref": "Account" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#accountsList", + "description": "Resource type.", + "type": "string" + } + }, + "type": "object" + }, + "Creative": { + "description": "A creative and its classification data.", + "id": "Creative", + "properties": { + "HTMLSnippet": { + "description": "The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.", + "type": "string" + }, + "accountId": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Account id.", + "format": "int32", + "type": "integer" + }, + "advertiserId": { + "description": "Detected advertiser id, if any. Read-only. This field should not be set in requests.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "advertiserName": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "The name of the company being advertised in the creative.", + "type": "string" + }, + "agencyId": { + "description": "The agency id for this creative.", + "format": "int64", + "type": "string" + }, + "apiUploadTimestamp": { + "description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).", + "format": "date-time", + "type": "string" + }, + "attribute": { + "description": "All attributes for the ads that may be shown from this snippet.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "buyerCreativeId": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "A buyer-specific id identifying the creative in this ad.", + "type": "string" + }, + "clickThroughUrl": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "The set of destination urls for the snippet.", + "items": { + "type": "string" + }, + "type": "array" + }, + "corrections": { + "description": "Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.", + "items": { + "properties": { + "details": { + "description": "Additional details about the correction.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "description": "The type of correction that was applied to the creative.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "disapprovalReasons": { + "description": "The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.", + "items": { + "properties": { + "details": { + "description": "Additional details about the reason for disapproval.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "description": "The categorized reason for disapproval.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filteringReasons": { + "description": "The filtering reasons for the creative. Read-only. This field should not be set in requests.", + "properties": { + "date": { + "description": "The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.", + "type": "string" + }, + "reasons": { + "description": "The filtering reasons.", + "items": { + "properties": { + "filteringCount": { + "description": "The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.", + "format": "int64", + "type": "string" + }, + "filteringStatus": { + "description": "The filtering status code. Please refer to the creative-status-codes.txt file for different statuses.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "height": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Ad height.", + "format": "int32", + "type": "integer" + }, + "impressionTrackingUrl": { + "description": "The set of urls to be called to record an impression.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#creative", + "description": "Resource type.", + "type": "string" + }, + "productCategories": { + "description": "Detected product categories, if any. Read-only. This field should not be set in requests.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "restrictedCategories": { + "description": "All restricted categories for the ads that may be shown from this snippet.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "sensitiveCategories": { + "description": "Detected sensitive categories, if any. Read-only. This field should not be set in requests.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "status": { + "description": "Creative serving status. Read-only. This field should not be set in requests.", + "type": "string" + }, + "vendorType": { + "description": "All vendor types for the ads that may be shown from this snippet.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "version": { + "description": "The version for this creative. Read-only. This field should not be set in requests.", + "format": "int32", + "type": "integer" + }, + "videoURL": { + "description": "The url to fetch a video ad. If set, HTMLSnippet should not be set.", + "type": "string" + }, + "width": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Ad width.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CreativesList": { + "description": "The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.", + "id": "CreativesList", + "properties": { + "items": { + "description": "A list of creatives.", + "items": { + "$ref": "Creative" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#creativesList", + "description": "Resource type.", + "type": "string" + }, + "nextPageToken": { + "description": "Continuation token used to page through creatives. To retrieve the next page of results, set the next request's \"pageToken\" value to this.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "adexchangebuyer/v1.2/", + "title": "Ad Exchange Buyer API", + "version": "v1.2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admin.reportsv1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admin.reportsv1.json new file mode 100644 index 0000000000000000000000000000000000000000..d19fec1ccc734978349e6522206ef7323c8fcec5 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admin.reportsv1.json @@ -0,0 +1,1079 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/admin.reports.audit.readonly": { +"description": "View audit reports for your G Suite domain" +}, +"https://www.googleapis.com/auth/admin.reports.usage.readonly": { +"description": "View usage reports for your G Suite domain" +} +} +} +}, +"basePath": "", +"baseUrl": "https://admin.googleapis.com/", +"batchPath": "batch", +"canonicalName": "reports", +"description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/admin-sdk/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "admin:reports_v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://admin.mtls.googleapis.com/", +"name": "admin", +"ownerDomain": "google.com", +"ownerName": "Google", +"packagePath": "admin", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"activities": { +"methods": { +"list": { +"description": "Retrieves a list of activities for a specific customer's account and application such as the Admin console application or the Google Drive application. For more information, see the guides for administrator and Google Drive activity reports. For more information about the activity report's parameters, see the activity parameters reference guides. ", +"flatPath": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}", +"httpMethod": "GET", +"id": "reports.activities.list", +"parameterOrder": [ +"userKey", +"applicationName" +], +"parameters": { +"actorIpAddress": { +"description": "The Internet Protocol (IP) Address of host where the event was performed. This is an additional way to filter a report's summary using the IP address of the user whose activity is being reported. This IP address may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. This parameter supports both IPv4 and IPv6 address versions.", +"location": "query", +"type": "string" +}, +"applicationName": { +"description": "Application name for which the events are to be retrieved.", +"enum": [ +"access_transparency", +"admin", +"calendar", +"chat", +"drive", +"gcp", +"gplus", +"groups", +"groups_enterprise", +"jamboard", +"login", +"meet", +"mobile", +"rules", +"saml", +"token", +"user_accounts", +"context_aware_access", +"chrome", +"data_studio", +"keep", +"vault" +], +"enumDescriptions": [ +"The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.", +"The Admin console application's activity reports return account information about different types of administrator activity events.", +"The Google Calendar application's activity reports return information about various Calendar activity events.", +"The Chat activity reports return information about various Chat activity events.", +"The Google Drive application's activity reports return information about various Google Drive activity events. The Drive activity report is only available for Google Workspace Business and Enterprise customers.", +"The Google Cloud Platform application's activity reports return information about various GCP activity events.", +"The Google+ application's activity reports return information about various Google+ activity events.", +"The Google Groups application's activity reports return information about various Groups activity events.", +"The Enterprise Groups activity reports return information about various Enterprise group activity events.", +"The Jamboard activity reports return information about various Jamboard activity events.", +"The Login application's activity reports return account information about different types of Login activity events.", +"The Meet Audit activity report returns information about different types of Meet Audit activity events.", +"The Device Audit activity report returns information about different types of Device Audit activity events.", +"The Rules activity report returns information about different types of Rules activity events.", +"The SAML activity report returns information about different types of SAML activity events.", +"The Token application's activity reports return account information about different types of Token activity events.", +"The User Accounts application's activity reports return account information about different types of User Accounts activity events.", +"The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.", +"The Chrome activity reports return information about Chrome browser and Chrome OS events.", +"The Data Studio activity reports return information about various types of Data Studio activity events.", +"The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers.", +"The Vault activity reports return information about various types of Vault activity events." +], +"location": "path", +"pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)|(vault)", +"required": true, +"type": "string" +}, +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"endTime": { +"description": "Sets the end of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The default value is the approximate time of the API request. An API report has three basic time concepts: - *Date of the API's request for a report*: When the API created and retrieved the report. - *Report's start time*: The beginning of the timespan shown in the report. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. - *Report's end time*: The end of the timespan shown in the report. For example, the timespan of events summarized in a report can start in April and end in May. The report itself can be requested in August. If the `endTime` is not specified, the report returns all activities from the `startTime` until the current time or the most recent 180 days if the `startTime` is more than 180 days in the past.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"eventName": { +"description": "The name of the event being queried by the API. Each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. An example is the Google Calendar events in the Admin console application's reports. The Calendar Settings `type` structure has all of the Calendar `eventName` activities reported by the API. When an administrator changes a Calendar setting, the API reports this activity in the Calendar Settings `type` and `eventName` parameters. For more information about `eventName` query strings and parameters, see the list of event names for various applications above in `applicationName`.", +"location": "query", +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.", +"location": "query", +"pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)", +"type": "string" +}, +"groupIdFilter": { +"description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"", +"location": "query", +"pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional in the request. The default value is 1000.", +"format": "int32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"orgUnitID": { +"default": "", +"description": "ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", +"location": "query", +"pattern": "(id:[a-z0-9]+)", +"type": "string" +}, +"pageToken": { +"description": "The token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "Sets the beginning of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The report returns all activities from `startTime` until `endTime`. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"userKey": { +"description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}", +"response": { +"$ref": "Activities" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.audit.readonly" +] +}, +"watch": { +"description": "Start receiving notifications for account activities. For more information, see Receiving Push Notifications.", +"flatPath": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch", +"httpMethod": "POST", +"id": "reports.activities.watch", +"parameterOrder": [ +"userKey", +"applicationName" +], +"parameters": { +"actorIpAddress": { +"description": "The Internet Protocol (IP) Address of host where the event was performed. This is an additional way to filter a report's summary using the IP address of the user whose activity is being reported. This IP address may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. This parameter supports both IPv4 and IPv6 address versions.", +"location": "query", +"type": "string" +}, +"applicationName": { +"description": "Application name for which the events are to be retrieved.", +"enum": [ +"access_transparency", +"admin", +"calendar", +"chat", +"drive", +"gcp", +"gplus", +"groups", +"groups_enterprise", +"jamboard", +"login", +"meet", +"mobile", +"rules", +"saml", +"token", +"user_accounts", +"context_aware_access", +"chrome", +"data_studio", +"keep" +], +"enumDescriptions": [ +"The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.", +"The Admin console application's activity reports return account information about different types of administrator activity events.", +"The Google Calendar application's activity reports return information about various Calendar activity events.", +"The Chat activity reports return information about various Chat activity events.", +"The Google Drive application's activity reports return information about various Google Drive activity events. The Drive activity report is only available for Google Workspace Business and Google Workspace Enterprise customers.", +"The Google Cloud Platform application's activity reports return information about various GCP activity events.", +"The Google+ application's activity reports return information about various Google+ activity events.", +"The Google Groups application's activity reports return information about various Groups activity events.", +"The Enterprise Groups activity reports return information about various Enterprise group activity events.", +"The Jamboard activity reports return information about various Jamboard activity events.", +"The Login application's activity reports return account information about different types of Login activity events.", +"The Meet Audit activity report returns information about different types of Meet Audit activity events.", +"The Device Audit activity report returns information about different types of Device Audit activity events.", +"The Rules activity report returns information about different types of Rules activity events.", +"The SAML activity report returns information about different types of SAML activity events.", +"The Token application's activity reports return account information about different types of Token activity events.", +"The User Accounts application's activity reports return account information about different types of User Accounts activity events.", +"The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.", +"The Chrome activity reports return information about Chrome browser and Chrome OS events.", +"The Data Studio activity reports return information about various types of Data Studio activity events.", +"The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers." +], +"location": "path", +"pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)", +"required": true, +"type": "string" +}, +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"endTime": { +"description": "Sets the end of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The default value is the approximate time of the API request. An API report has three basic time concepts: - *Date of the API's request for a report*: When the API created and retrieved the report. - *Report's start time*: The beginning of the timespan shown in the report. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. - *Report's end time*: The end of the timespan shown in the report. For example, the timespan of events summarized in a report can start in April and end in May. The report itself can be requested in August. If the `endTime` is not specified, the report returns all activities from the `startTime` until the current time or the most recent 180 days if the `startTime` is more than 180 days in the past.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"eventName": { +"description": "The name of the event being queried by the API. Each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. An example is the Google Calendar events in the Admin console application's reports. The Calendar Settings `type` structure has all of the Calendar `eventName` activities reported by the API. When an administrator changes a Calendar setting, the API reports this activity in the Calendar Settings `type` and `eventName` parameters. For more information about `eventName` query strings and parameters, see the list of event names for various applications above in `applicationName`.", +"location": "query", +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.", +"location": "query", +"pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)", +"type": "string" +}, +"groupIdFilter": { +"description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"", +"location": "query", +"pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional in the request. The default value is 1000.", +"format": "int32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"orgUnitID": { +"default": "", +"deprecated": true, +"description": "`Deprecated`. This field is deprecated and is no longer supported. ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", +"location": "query", +"pattern": "(id:[a-z0-9]+)", +"type": "string" +}, +"pageToken": { +"description": "The token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "Sets the beginning of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The report returns all activities from `startTime` until `endTime`. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"userKey": { +"description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.audit.readonly" +] +} +} +}, +"channels": { +"methods": { +"stop": { +"description": "Stop watching resources through this channel.", +"flatPath": "admin/reports_v1/channels/stop", +"httpMethod": "POST", +"id": "admin.channels.stop", +"parameterOrder": [], +"parameters": {}, +"path": "admin/reports_v1/channels/stop", +"request": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.audit.readonly" +] +} +} +}, +"customerUsageReports": { +"methods": { +"get": { +"description": "Retrieves a report which is a collection of properties and statistics for a specific customer's account. For more information, see the Customers Usage Report guide. For more information about the customer report's parameters, see the Customers Usage parameters reference guides. ", +"flatPath": "admin/reports/v1/usage/dates/{date}", +"httpMethod": "GET", +"id": "reports.customerUsageReports.get", +"parameterOrder": [ +"date" +], +"parameters": { +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"date": { +"description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", +"location": "path", +"pattern": "(\\d){4}-(\\d){2}-(\\d){2}", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. For your follow-on requests getting all of the report's pages, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"parameters": { +"description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Customers usage report include `accounts`, `app_maker`, `apps_scripts`, `calendar`, `classroom`, `cros`, `docs`, `gmail`, `gplus`, `device_management`, `meet`, and `sites`. A `parameters` query string is in the CSV form of `app_name1:param_name1, app_name2:param_name2`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ", +"location": "query", +"pattern": "(((accounts)|(app_maker)|(apps_scripts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+,)*(((accounts)|(app_maker)|(apps_scripts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+)", +"type": "string" +} +}, +"path": "admin/reports/v1/usage/dates/{date}", +"response": { +"$ref": "UsageReports" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.usage.readonly" +] +} +} +}, +"entityUsageReports": { +"methods": { +"get": { +"description": "Retrieves a report which is a collection of properties and statistics for entities used by users within the account. For more information, see the Entities Usage Report guide. For more information about the entities report's parameters, see the Entities Usage parameters reference guides.", +"flatPath": "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}", +"httpMethod": "GET", +"id": "reports.entityUsageReports.get", +"parameterOrder": [ +"entityType", +"entityKey", +"date" +], +"parameters": { +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"date": { +"description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", +"location": "path", +"pattern": "(\\d){4}-(\\d){2}-(\\d){2}", +"required": true, +"type": "string" +}, +"entityKey": { +"description": "Represents the key of the object to filter the data with. It is a string which can take the value `all` to get activity events for all users, or any other value for an app-specific entity. For details on how to obtain the `entityKey` for a particular `entityType`, see the Entities Usage parameters reference guides.", +"location": "path", +"required": true, +"type": "string" +}, +"entityType": { +"description": "Represents the type of entity for the report.", +"enum": [ +"gplus_communities" +], +"enumDescriptions": [ +"Returns a report on Google+ communities." +], +"location": "path", +"pattern": "(gplus_communities)", +"required": true, +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list of an application's event parameters where the parameter's value is manipulated by a relational operator. The `filters` query string includes the name of the application whose usage is returned in the report. The application values for the Entities usage report include `accounts`, `docs`, and `gmail`. Filters are in the form `[application name]:parameter name[parameter value],...`. In this example, the `<>` 'not equal to' operator is URL-encoded in the request's query string (%3C%3E): GET https://www.googleapis.com/admin/reports/v1/usage/gplus_communities/all/dates/2017-12-01 ?parameters=gplus:community_name,gplus:num_total_members &filters=gplus:num_total_members%3C%3E0 The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). Filters can only be applied to numeric parameters.", +"location": "query", +"pattern": "(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page.", +"format": "uint32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"parameters": { +"description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Entities usage report are only `gplus`. A `parameter` query string is in the CSV form of `[app_name1:param_name1], [app_name2:param_name2]...`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ", +"location": "query", +"pattern": "(((gplus)):[^,]+,)*(((gplus)):[^,]+)", +"type": "string" +} +}, +"path": "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}", +"response": { +"$ref": "UsageReports" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.usage.readonly" +] +} +} +}, +"userUsageReport": { +"methods": { +"get": { +"description": "Retrieves a report which is a collection of properties and statistics for a set of users with the account. For more information, see the User Usage Report guide. For more information about the user report's parameters, see the Users Usage parameters reference guides.", +"flatPath": "admin/reports/v1/usage/users/{userKey}/dates/{date}", +"httpMethod": "GET", +"id": "reports.userUsageReport.get", +"parameterOrder": [ +"userKey", +"date" +], +"parameters": { +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"date": { +"description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", +"location": "path", +"pattern": "(\\d){4}-(\\d){2}-(\\d){2}", +"required": true, +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list of an application's event parameters where the parameter's value is manipulated by a relational operator. The `filters` query string includes the name of the application whose usage is returned in the report. The application values for the Users Usage Report include `accounts`, `docs`, and `gmail`. Filters are in the form `[application name]:parameter name[parameter value],...`. In this example, the `<>` 'not equal to' operator is URL-encoded in the request's query string (%3C%3E): GET https://www.googleapis.com/admin/reports/v1/usage/users/all/dates/2013-03-03 ?parameters=accounts:last_login_time &filters=accounts:last_login_time%3C%3E2010-10-28T10:26:35.000Z The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). ", +"location": "query", +"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)", +"type": "string" +}, +"groupIdFilter": { +"description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"", +"location": "query", +"pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional.", +"format": "uint32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"orgUnitID": { +"default": "", +"description": "ID of the organizational unit to report on. User activity will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", +"location": "query", +"pattern": "(id:[a-z0-9]+)", +"type": "string" +}, +"pageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"parameters": { +"description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Customers Usage report include `accounts`, `app_maker`, `apps_scripts`, `calendar`, `classroom`, `cros`, `docs`, `gmail`, `gplus`, `device_management`, `meet`, and `sites`. A `parameters` query string is in the CSV form of `app_name1:param_name1, app_name2:param_name2`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ", +"location": "query", +"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+)", +"type": "string" +}, +"userKey": { +"description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "admin/reports/v1/usage/users/{userKey}/dates/{date}", +"response": { +"$ref": "UsageReports" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.usage.readonly" +] +} +} +} +}, +"revision": "20240618", +"rootUrl": "https://admin.googleapis.com/", +"schemas": { +"Activities": { +"description": "JSON template for a collection of activities.", +"id": "Activities", +"properties": { +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"items": { +"description": "Each activity record in the response.", +"items": { +"$ref": "Activity" +}, +"type": "array" +}, +"kind": { +"default": "admin#reports#activities", +"description": "The type of API resource. For an activity report, the value is `reports#activities`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token for retrieving the follow-on next page of the report. The `nextPageToken` value is used in the request's `pageToken` query string.", +"type": "string" +} +}, +"type": "object" +}, +"Activity": { +"description": "JSON template for the activity resource.", +"id": "Activity", +"properties": { +"actor": { +"description": "User doing the action.", +"properties": { +"callerType": { +"description": "The type of actor.", +"type": "string" +}, +"email": { +"description": "The primary email address of the actor. May be absent if there is no email address associated with the actor.", +"type": "string" +}, +"key": { +"description": "Only present when `callerType` is `KEY`. Can be the `consumer_key` of the requestor for OAuth 2LO API requests or an identifier for robot accounts.", +"type": "string" +}, +"profileId": { +"description": "The unique Google Workspace profile ID of the actor. This value might be absent if the actor is not a Google Workspace user, or may be the number 105250506097979753968 which acts as a placeholder ID.", +"type": "string" +} +}, +"type": "object" +}, +"etag": { +"description": "ETag of the entry.", +"type": "string" +}, +"events": { +"description": "Activity events in the report.", +"items": { +"properties": { +"name": { +"description": "Name of the event. This is the specific name of the activity reported by the API. And each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. For `eventName` request parameters in general: - If no `eventName` is given, the report returns all possible instances of an `eventName`. - When you request an `eventName`, the API's response returns all activities which contain that `eventName`. For more information about `eventName` properties, see the list of event names for various applications above in `applicationName`.", +"type": "string" +}, +"parameters": { +"description": "Parameter value pairs for various applications. For more information about `eventName` parameters, see the list of event names for various applications above in `applicationName`.", +"items": { +"properties": { +"boolValue": { +"description": "Boolean value of the parameter.", +"type": "boolean" +}, +"intValue": { +"description": "Integer value of the parameter.", +"format": "int64", +"type": "string" +}, +"messageValue": { +"description": "Nested parameter value pairs associated with this parameter. Complex value type for a parameter are returned as a list of parameter values. For example, the address parameter may have a value as `[{parameter: [{name: city, value: abc}]}]`", +"properties": { +"parameter": { +"description": "Parameter values", +"items": { +"$ref": "NestedParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"multiIntValue": { +"description": "Integer values of the parameter.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"multiMessageValue": { +"description": "List of `messageValue` objects.", +"items": { +"properties": { +"parameter": { +"description": "Parameter values", +"items": { +"$ref": "NestedParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"type": "array" +}, +"multiValue": { +"description": "String values of the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the parameter.", +"type": "string" +}, +"value": { +"description": "String value of the parameter.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"type": { +"description": "Type of event. The Google Workspace service or feature that an administrator changes is identified in the `type` property which identifies an event using the `eventName` property. For a full list of the API's `type` categories, see the list of event names for various applications above in `applicationName`.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"id": { +"description": "Unique identifier for each activity record.", +"properties": { +"applicationName": { +"description": "Application name to which the event belongs. For possible values see the list of applications above in `applicationName`.", +"type": "string" +}, +"customerId": { +"description": "The unique identifier for a Google Workspace account.", +"type": "string" +}, +"time": { +"description": "Time of occurrence of the activity. This is in UNIX epoch time in seconds.", +"format": "date-time", +"type": "string" +}, +"uniqueQualifier": { +"description": "Unique qualifier if multiple events have the same time.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ipAddress": { +"description": "IP address of the user doing the action. This is the Internet Protocol (IP) address of the user when logging into Google Workspace, which may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. The API supports IPv4 and IPv6.", +"type": "string" +}, +"kind": { +"default": "admin#reports#activity", +"description": "The type of API resource. For an activity report, the value is `audit#activity`.", +"type": "string" +}, +"ownerDomain": { +"description": "This is the domain that is affected by the report's event. For example domain of Admin console or the Drive application's document owner.", +"type": "string" +} +}, +"type": "object" +}, +"Channel": { +"description": "A notification channel used to watch for resource changes.", +"id": "Channel", +"properties": { +"address": { +"description": "The address where notifications are delivered for this channel.", +"type": "string" +}, +"expiration": { +"description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "A UUID or similar unique string that identifies this channel.", +"type": "string" +}, +"kind": { +"default": "api#channel", +"description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"`api#channel`\".", +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional parameters controlling delivery channel behavior. Optional.", +"type": "object" +}, +"payload": { +"description": "A Boolean value to indicate whether payload is wanted. A payload is data that is sent in the body of an HTTP POST, PUT, or PATCH message and contains important information about the request. Optional.", +"type": "boolean" +}, +"resourceId": { +"description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.", +"type": "string" +}, +"resourceUri": { +"description": "A version-specific identifier for the watched resource.", +"type": "string" +}, +"token": { +"description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.", +"type": "string" +}, +"type": { +"description": "The type of delivery mechanism used for this channel. The value should be set to `\"web_hook\"`.", +"type": "string" +} +}, +"type": "object" +}, +"NestedParameter": { +"description": "JSON template for a parameter used in various reports.", +"id": "NestedParameter", +"properties": { +"boolValue": { +"description": "Boolean value of the parameter.", +"type": "boolean" +}, +"intValue": { +"description": "Integer value of the parameter.", +"format": "int64", +"type": "string" +}, +"multiBoolValue": { +"description": "Multiple boolean values of the parameter.", +"items": { +"type": "boolean" +}, +"type": "array" +}, +"multiIntValue": { +"description": "Multiple integer values of the parameter.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"multiValue": { +"description": "Multiple string values of the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the parameter.", +"type": "string" +}, +"value": { +"description": "String value of the parameter.", +"type": "string" +} +}, +"type": "object" +}, +"UsageReport": { +"description": "JSON template for a usage report.", +"id": "UsageReport", +"properties": { +"date": { +"description": "Output only. The date of the report request.", +"readOnly": true, +"type": "string" +}, +"entity": { +"description": "Output only. Information about the type of the item.", +"properties": { +"customerId": { +"description": "Output only. The unique identifier of the customer's account.", +"readOnly": true, +"type": "string" +}, +"entityId": { +"description": "Output only. Object key. Only relevant if entity.type = \"OBJECT\" Note: external-facing name of report is \"Entities\" rather than \"Objects\".", +"readOnly": true, +"type": "string" +}, +"profileId": { +"description": "Output only. The user's immutable Google Workspace profile identifier.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of item. The value is `user`.", +"readOnly": true, +"type": "string" +}, +"userEmail": { +"description": "Output only. The user's email address. Only relevant if entity.type = \"USER\"", +"readOnly": true, +"type": "string" +} +}, +"readOnly": true, +"type": "object" +}, +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"kind": { +"default": "admin#reports#usageReport", +"description": "The type of API resource. For a usage report, the value is `admin#reports#usageReport`.", +"type": "string" +}, +"parameters": { +"description": "Output only. Parameter value pairs for various applications. For the Entity Usage Report parameters and values, see [the Entity Usage parameters reference](/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities).", +"items": { +"properties": { +"boolValue": { +"description": "Output only. Boolean value of the parameter.", +"readOnly": true, +"type": "boolean" +}, +"datetimeValue": { +"description": "The RFC 3339 formatted value of the parameter, for example 2010-10-28T10:26:35.000Z.", +"format": "date-time", +"readOnly": true, +"type": "string" +}, +"intValue": { +"description": "Output only. Integer value of the parameter.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"msgValue": { +"description": "Output only. Nested message value of the parameter.", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "The name of the parameter. For the User Usage Report parameter names, see the User Usage parameters reference.", +"type": "string" +}, +"stringValue": { +"description": "Output only. String value of the parameter.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"UsageReports": { +"id": "UsageReports", +"properties": { +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"kind": { +"default": "admin#reports#usageReports", +"description": "The type of API resource. For a usage report, the value is `admin#reports#usageReports`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. For your follow-on requests getting all of the report's pages, enter the `nextPageToken` value in the `pageToken` query string.", +"type": "string" +}, +"usageReports": { +"description": "Various application parameter records.", +"items": { +"$ref": "UsageReport" +}, +"type": "array" +}, +"warnings": { +"description": "Warnings, if any.", +"items": { +"properties": { +"code": { +"description": "Machine readable code or warning type. The warning code value is `200`.", +"type": "string" +}, +"data": { +"description": "Key-value pairs to give detailed information on the warning.", +"items": { +"properties": { +"key": { +"description": "Key associated with a key-value pair to give detailed information on the warning.", +"type": "string" +}, +"value": { +"description": "Value associated with a key-value pair to give detailed information on the warning.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "The human readable messages for a warning are: - Data is not available warning - Sorry, data for date yyyy-mm-dd for application \"`application name`\" is not available. - Partial data is available warning - Data for date yyyy-mm-dd for application \"`application name`\" is not available right now, please try again after a few hours. ", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Admin SDK API", +"version": "reports_v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admob.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admob.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..83426ae473dba596c26fac3677acdb8a6c34d402 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admob.v1beta.json @@ -0,0 +1,2389 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/admob.readonly": { +"description": "See your AdMob data" +}, +"https://www.googleapis.com/auth/admob.report": { +"description": "See your AdMob data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://admob.googleapis.com/", +"batchPath": "batch", +"canonicalName": "AdMob", +"description": "The AdMob API allows publishers to programmatically get information about their AdMob account. ", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/admob/api/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "admob:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://admob.mtls.googleapis.com/", +"name": "admob", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"methods": { +"get": { +"description": "Gets information about the specified AdMob publisher account.", +"flatPath": "v1beta/accounts/{accountsId}", +"httpMethod": "GET", +"id": "admob.accounts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name of the publisher account to retrieve. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "PublisherAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly", +"https://www.googleapis.com/auth/admob.report" +], +"streamingType": "NONE" +}, +"list": { +"description": "Lists the AdMob publisher account that was most recently signed in to from the AdMob UI. For more information, see https://support.google.com/admob/answer/10243672.", +"flatPath": "v1beta/accounts", +"httpMethod": "GET", +"id": "admob.accounts.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Maximum number of accounts to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListPublisherAccountsResponse`; indicates that this is a continuation of a prior `ListPublisherAccounts` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/accounts", +"response": { +"$ref": "ListPublisherAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly", +"https://www.googleapis.com/auth/admob.report" +], +"streamingType": "NONE" +} +}, +"resources": { +"adSources": { +"methods": { +"list": { +"description": "List the ad sources.", +"flatPath": "v1beta/accounts/{accountsId}/adSources", +"httpMethod": "GET", +"id": "admob.accounts.adSources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ad sources to return. If unspecified or 0, at most 10,000 ad sources will be returned. The maximum value is 20,000; values above 10,000 will be coerced to 20,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAdSources` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of ad sources. Format: accounts/{publisher_id}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adSources", +"response": { +"$ref": "ListAdSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly", +"https://www.googleapis.com/auth/admob.report" +], +"streamingType": "NONE" +} +}, +"resources": { +"adapters": { +"methods": { +"list": { +"description": "List the adapters of the ad source.", +"flatPath": "v1beta/accounts/{accountsId}/adSources/{adSourcesId}/adapters", +"httpMethod": "GET", +"id": "admob.accounts.adSources.adapters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of adapters to return. If unspecified or 0, at most 10,000 adapters will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAdapters` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of adapters. Format: accounts/{publisher_id}/adSources/{ad_source_id}", +"location": "path", +"pattern": "^accounts/[^/]+/adSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adapters", +"response": { +"$ref": "ListAdaptersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly" +], +"streamingType": "NONE" +} +} +} +} +}, +"adUnitMappings": { +"methods": { +"batchCreate": { +"description": "Batch create the ad unit mappings under the specific AdMob account. The maximum allowed batch size is 100. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/adUnitMappings:batchCreate", +"httpMethod": "POST", +"id": "admob.accounts.adUnitMappings.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The AdMob account which owns this collection of ad unit mappings. Format: accounts/{publisher_id} See https://support.google.com/admob/answer/2784578 for instructions on how to find your AdMob publisher ID.", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adUnitMappings:batchCreate", +"request": { +"$ref": "BatchCreateAdUnitMappingsRequest" +}, +"response": { +"$ref": "BatchCreateAdUnitMappingsResponse" +}, +"streamingType": "NONE" +} +} +}, +"adUnits": { +"methods": { +"create": { +"description": "Creates an ad unit under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/adUnits", +"httpMethod": "POST", +"id": "admob.accounts.adUnits.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the account to create the specified ad unit for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adUnits", +"request": { +"$ref": "AdUnit" +}, +"response": { +"$ref": "AdUnit" +}, +"streamingType": "NONE" +}, +"list": { +"description": "List the ad units under the specified AdMob account.", +"flatPath": "v1beta/accounts/{accountsId}/adUnits", +"httpMethod": "GET", +"id": "admob.accounts.adUnits.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ad units to return. If unspecified or 0, at most 10,000 ad units will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAdUnitsResponse`; indicates that this is a continuation of a prior `ListAdUnits` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the account to list ad units for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adUnits", +"response": { +"$ref": "ListAdUnitsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly" +], +"streamingType": "NONE" +} +}, +"resources": { +"adUnitMappings": { +"methods": { +"create": { +"description": "Create an ad unit mapping under the specific AdMob account and ad unit. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/adUnits/{adUnitsId}/adUnitMappings", +"httpMethod": "POST", +"id": "admob.accounts.adUnits.adUnitMappings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent which owns the ad unit mapping. Format: accounts/{publisher_id}/adUnits/{ad_unit_id}", +"location": "path", +"pattern": "^accounts/[^/]+/adUnits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adUnitMappings", +"request": { +"$ref": "AdUnitMapping" +}, +"response": { +"$ref": "AdUnitMapping" +}, +"streamingType": "NONE" +}, +"list": { +"description": "List ad unit mappings under the specified AdMob account and ad unit. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/adUnits/{adUnitsId}/adUnitMappings", +"httpMethod": "GET", +"id": "admob.accounts.adUnits.adUnitMappings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter string that uses [EBNF grammar syntax](https://google.aip.dev/assets/misc/ebnf-filtering.txt). Possible field to filter by is: - \"DISPLAY_NAME\" Possible filter function is: - `IN`: Used to filter fields that represent a singleton including \"DISPLAY_NAME\". The filter functions can be added together using `AND`. `OR` functionality is not supported. Example: filter: IN(DISPLAY_NAME, \"Test Ad Unit Mapping 1\", \"Test Ad Unit Mapping 2\")", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of ad unit mappings to return. If unspecified or 0, at most 10,000 ad unit mappings will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAdUnitMappings` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of ad unit mappings. Format: accounts/{publisher_id}/adUnits/{ad_unit_id}", +"location": "path", +"pattern": "^accounts/[^/]+/adUnits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/adUnitMappings", +"response": { +"$ref": "ListAdUnitMappingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly" +], +"streamingType": "NONE" +} +} +} +} +}, +"apps": { +"methods": { +"create": { +"description": "Creates an app under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/apps", +"httpMethod": "POST", +"id": "admob.accounts.apps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the account for which the app is being created. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/apps", +"request": { +"$ref": "App" +}, +"response": { +"$ref": "App" +}, +"streamingType": "NONE" +}, +"list": { +"description": "List the apps under the specified AdMob account.", +"flatPath": "v1beta/accounts/{accountsId}/apps", +"httpMethod": "GET", +"id": "admob.accounts.apps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of apps to return. If unspecified or 0, at most 10,000 apps will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAppsResponse`; indicates that this is a continuation of a prior `ListApps` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the account to list apps for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/apps", +"response": { +"$ref": "ListAppsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly" +], +"streamingType": "NONE" +} +} +}, +"campaignReport": { +"methods": { +"generate": { +"description": "Generates Campaign Report based on provided specifications.", +"flatPath": "v1beta/accounts/{accountsId}/campaignReport:generate", +"httpMethod": "POST", +"id": "admob.accounts.campaignReport.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Resource name of the account to generate the report for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/campaignReport:generate", +"request": { +"$ref": "GenerateCampaignReportRequest" +}, +"response": { +"$ref": "GenerateCampaignReportResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly", +"https://www.googleapis.com/auth/admob.report" +], +"streamingType": "NONE" +} +} +}, +"mediationGroups": { +"methods": { +"create": { +"description": "Create a mediation group under the specific AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/mediationGroups", +"httpMethod": "POST", +"id": "admob.accounts.mediationGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent which owns the mediation group. Format: accounts/{publisher_id}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/mediationGroups", +"request": { +"$ref": "MediationGroup" +}, +"response": { +"$ref": "MediationGroup" +}, +"streamingType": "NONE" +}, +"list": { +"description": "List mediation groups under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/mediationGroups", +"httpMethod": "GET", +"id": "admob.accounts.mediationGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter string that uses [EBNF grammar syntax](https://google.aip.dev/assets/misc/ebnf-filtering.txt). Possible fields to filter by are: - \"AD_SOURCE_IDS\" - \"AD_UNIT_IDS\" - \"APP_IDS\" - \"DISPLAY_NAME\" - \"FORMAT\" - \"MEDIATION_GROUP_ID\" - \"PLATFORM\" - \"STATE\" - \"TARGETED_REGION_CODES\" Possible filter functions are: - `IN`: Used to filter fields that represent a singleton including \"MEDIATION_GROUP_ID\", \"DISPLAY_NAME\", \"STATE\", \"PLATFORM\", and \"FORMAT\". - `CONTAINS_ANY`: Used to filter fields that represent a collection including \"AD_SOURCE_IDS\", \"AD_UNIT_IDS\", \"APP_IDS\", and \"TARGETED_REGION_CODES\". The filter functions can be added together using `AND`. `OR` functionality is not supported. Example: filter: IN(DISPLAY_NAME, \"Test Group 1\", \"Test Group 2\") AND IN(PLATFORM, \"ANDROID\") AND CONTAINS_ANY(AD_SOURCE_IDS, \"5450213213286189855\")", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of mediation groups to return. If unspecified or 0, at most 10,000 mediation groups will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListMediationGroupsResponse`; indicates that this is a continuation of a prior `ListMediationGroups` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the account to list mediation groups for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/mediationGroups", +"response": { +"$ref": "ListMediationGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly" +], +"streamingType": "NONE" +}, +"patch": { +"description": "Update the specified mediation group under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/mediationGroups/{mediationGroupsId}", +"httpMethod": "PATCH", +"id": "admob.accounts.mediationGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for this mediation group. Format is: accounts/{publisher_id}/mediationGroups/{mediation_group_id} Example: accounts/pub-9876543210987654/mediationGroups/0123456789", +"location": "path", +"pattern": "^accounts/[^/]+/mediationGroups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of mediation group fields to be updated. Updates to repeated fields such as items in a list will fully replace the existing value(s) with the new value(s). Updates to individual values in a map can be done by indexing by the key. The following field masks are supported for mediation group updates: - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"]\" clang-format off - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].ad_unit_mappings[\\\"{ad_unit_id}\\\"]\" clang-format on - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].cpm_micros\" - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].cpm_mode\" - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].state\" - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].display_name\" - \"targeting.ad_unit_ids\" To update a mediation group with a new mediation group line, use a distinct negative number for the \"mediation_group_line_id\". For Example: update_mask { paths: \"mediation_group_lines[\\\"123456789012345\\\"].cpm_micros\" }", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "MediationGroup" +}, +"response": { +"$ref": "MediationGroup" +}, +"streamingType": "NONE" +} +}, +"resources": { +"mediationAbExperiments": { +"methods": { +"create": { +"description": "Create an A/B testing experiment for a specified AdMob account and a mediation group. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/mediationGroups/{mediationGroupsId}/mediationAbExperiments", +"httpMethod": "POST", +"id": "admob.accounts.mediationGroups.mediationAbExperiments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent which owns the mediation group. Format: accounts/{publisher_id}/mediationGroups/{mediation_group_id}", +"location": "path", +"pattern": "^accounts/[^/]+/mediationGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/mediationAbExperiments", +"request": { +"$ref": "MediationAbExperiment" +}, +"response": { +"$ref": "MediationAbExperiment" +}, +"streamingType": "NONE" +}, +"stop": { +"description": "Stop the mediation A/B experiment and choose a variant. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", +"flatPath": "v1beta/accounts/{accountsId}/mediationGroups/{mediationGroupsId}/mediationAbExperiments:stop", +"httpMethod": "POST", +"id": "admob.accounts.mediationGroups.mediationAbExperiments.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the mediation group, the experiment for which to choose a variant for. Example: accounts/pub-9876543210987654/mediationGroups/0123456789/ mediationAbExperiments", +"location": "path", +"pattern": "^accounts/[^/]+/mediationGroups/[^/]+/mediationAbExperiments$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}:stop", +"request": { +"$ref": "StopMediationAbExperimentRequest" +}, +"response": { +"$ref": "MediationAbExperiment" +}, +"streamingType": "NONE" +} +} +} +} +}, +"mediationReport": { +"methods": { +"generate": { +"description": "Generates an AdMob Mediation report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.", +"flatPath": "v1beta/accounts/{accountsId}/mediationReport:generate", +"httpMethod": "POST", +"id": "admob.accounts.mediationReport.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Resource name of the account to generate the report for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/mediationReport:generate", +"request": { +"$ref": "GenerateMediationReportRequest" +}, +"response": { +"$ref": "GenerateMediationReportResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly", +"https://www.googleapis.com/auth/admob.report" +], +"streamingType": "SERVER_SIDE" +} +} +}, +"networkReport": { +"methods": { +"generate": { +"description": "Generates an AdMob Network report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.", +"flatPath": "v1beta/accounts/{accountsId}/networkReport:generate", +"httpMethod": "POST", +"id": "admob.accounts.networkReport.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Resource name of the account to generate the report for. Example: accounts/pub-9876543210987654", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/networkReport:generate", +"request": { +"$ref": "GenerateNetworkReportRequest" +}, +"response": { +"$ref": "GenerateNetworkReportResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/admob.readonly", +"https://www.googleapis.com/auth/admob.report" +], +"streamingType": "SERVER_SIDE" +} +} +} +} +} +}, +"revision": "20240708", +"rootUrl": "https://admob.googleapis.com/", +"schemas": { +"AdSource": { +"description": "Definition of a mediation ad source.", +"id": "AdSource", +"properties": { +"adSourceId": { +"description": "ID of this ad source.", +"type": "string" +}, +"name": { +"description": "Resource name of this ad source. Format is: accounts/{publisher_id}/adSources/{ad_source_id}", +"type": "string" +}, +"title": { +"description": "Display name of this ad source.", +"type": "string" +} +}, +"type": "object" +}, +"AdUnit": { +"description": "Describes an AdMob ad unit.", +"id": "AdUnit", +"properties": { +"adFormat": { +"description": "AdFormat of the ad unit. Possible values are as follows: \"APP_OPEN\" - App Open ad format. \"BANNER\" - Banner ad format. \"BANNER_INTERSTITIAL\" - Legacy format that can be used as either banner or interstitial. This format can no longer be created but can be targeted by mediation groups. \"INTERSTITIAL\" - A full screen ad. Supported ad types are \"RICH_MEDIA\" and \"VIDEO\". \"NATIVE\" - Native ad format. \"REWARDED\" - An ad that, once viewed, gets a callback verifying the view so that a reward can be given to the user. Supported ad types are \"RICH_MEDIA\" (interactive) and video where video can not be excluded. \"REWARDED_INTERSTITIAL\" - Rewarded Interstitial ad format. Only supports video ad type. See https://support.google.com/admob/answer/9884467.", +"type": "string" +}, +"adTypes": { +"description": "Ad media type supported by this ad unit. Possible values as follows: \"RICH_MEDIA\" - Text, image, and other non-video media. \"VIDEO\" - Video media.", +"items": { +"type": "string" +}, +"type": "array" +}, +"adUnitId": { +"description": "The externally visible ID of the ad unit which can be used to integrate with the AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654/0123456789", +"type": "string" +}, +"appId": { +"description": "The externally visible ID of the app this ad unit is associated with. Example: ca-app-pub-9876543210987654~0123456789", +"type": "string" +}, +"displayName": { +"description": "The display name of the ad unit as shown in the AdMob UI, which is provided by the user. The maximum length allowed is 80 characters.", +"type": "string" +}, +"name": { +"description": "Resource name for this ad unit. Format is accounts/{publisher_id}/adUnits/{ad_unit_id_fragment} Example: accounts/pub-9876543210987654/adUnits/0123456789", +"type": "string" +}, +"rewardSettings": { +"$ref": "AdUnitRewardSettings", +"description": "Optional. Settings for a rewarded ad unit. This can be set or unset only when the ad_format is \"REWARDED\"." +} +}, +"type": "object" +}, +"AdUnitMapping": { +"description": "Settings to map an AdMob ad unit to a 3rd party ad unit.", +"id": "AdUnitMapping", +"properties": { +"adUnitConfigurations": { +"additionalProperties": { +"type": "string" +}, +"description": "Settings for the specified ad unit to make an ad request to 3rd party ad network. Key-value pairs with values set by the user for the keys requested by the ad network. Please see https://support.google.com/admob/answer/3245073 for details on how to configure the network settings.", +"type": "object" +}, +"adapterId": { +"description": "The ID of mediation ad source adapter used by this ad unit mapping. The adapter determines the information needed in the ad_network_settings.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Optional. The display name of this ad unit mapping instance.", +"type": "string" +}, +"name": { +"description": "Resource name of this ad unit mapping. Format is: accounts/{publisher_id}/adUnits/{ad_unit_id_fragment}/adUnitMappings/{ad_unit_mapping_id} Example: accounts/pub-1234567890123456/adUnits/0123456789/adUnitMappings/987654321", +"type": "string" +}, +"state": { +"description": "Output only. The status of this ad unit mapping.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED" +], +"enumDescriptions": [ +"The default value.", +"The ad unit mapping is active and used to serve ads or collecting stats." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdUnitRewardSettings": { +"description": "Settings for a rewarded ad unit.", +"id": "AdUnitRewardSettings", +"properties": { +"unitAmount": { +"description": "Reward amount for this ad unit.", +"format": "int64", +"type": "string" +}, +"unitType": { +"description": "Reward item for this ad unit.", +"type": "string" +} +}, +"type": "object" +}, +"Adapter": { +"description": "Describes adapters supported by each mediation ad source. Adapters correspond to a specific SDK implementation of the ad source, and are each associated with a single platform and a list of supported ad unit formats. Adapters may also require setting some configurations to perform ad requests. Configurations can be specified in the AdUnitMapping by setting the [ad_unit_configurations](#AdUnitMapping.ad_unit_configurations) key/value pairs. For example, the ad_unit_configurations can be used to pass various IDs to the adapter's third-party SDK.", +"id": "Adapter", +"properties": { +"adapterConfigMetadata": { +"description": "Output only. Configuration metadata associated with this adapter.", +"items": { +"$ref": "AdapterAdapterConfigMetadata" +}, +"readOnly": true, +"type": "array" +}, +"adapterId": { +"description": "Output only. ID of this adapter. It is used to set [adapter_id](#AdUnitMapping.adapter_id).", +"readOnly": true, +"type": "string" +}, +"formats": { +"description": "Output only. Indicates the formats of the ad units supported by this adapter.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. Resource name of the adapter. Format is: accounts/{publisher_id}/adSources/{ad_source_id}/adapters/{adapter_id}.", +"readOnly": true, +"type": "string" +}, +"platform": { +"description": "Output only. Mobile application platform supported by this adapter. Supported values are: IOS, ANDROID, WINDOWS_PHONE", +"readOnly": true, +"type": "string" +}, +"title": { +"description": "Output only. The display name of this adapter.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdapterAdapterConfigMetadata": { +"description": "Configuration metadata associated with this adapter. They are used to define the ad_unit_configurations associated with AdUnitMappings for the this adapter.", +"id": "AdapterAdapterConfigMetadata", +"properties": { +"adapterConfigMetadataId": { +"description": "This is used to fill the key of the [ad_unit_configurations](#AdUnitMapping.ad_unit_configurations).", +"type": "string" +}, +"adapterConfigMetadataLabel": { +"description": "Name of the adapter configuration metadata.", +"type": "string" +}, +"isRequired": { +"description": "Whether this metadata is required for configuring the AdUnitMappings.", +"type": "boolean" +} +}, +"type": "object" +}, +"App": { +"description": "Describes an AdMob app for a specific platform (For example: Android or iOS).", +"id": "App", +"properties": { +"appApprovalState": { +"description": "Output only. The approval state for the app. The field is read-only.", +"enum": [ +"APP_APPROVAL_STATE_UNSPECIFIED", +"ACTION_REQUIRED", +"IN_REVIEW", +"APPROVED" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The app requires additional user action to be approved. Please refer to https://support.google.com/admob/answer/10564477 for details and next steps.", +"The app is pending review.", +"The app is approved and can serve ads." +], +"readOnly": true, +"type": "string" +}, +"appId": { +"description": "The externally visible ID of the app which can be used to integrate with the AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654~0123456789", +"type": "string" +}, +"linkedAppInfo": { +"$ref": "AppLinkedAppInfo", +"description": "Immutable. The information for an app that is linked to an app store. This field is present if and only if the app is linked to an app store." +}, +"manualAppInfo": { +"$ref": "AppManualAppInfo", +"description": "The information for an app that is not linked to any app store. After an app is linked, this information is still retrivable. If no name is provided for the app upon creation, a placeholder name will be used." +}, +"name": { +"description": "Resource name for this app. Format is accounts/{publisher_id}/apps/{app_id_fragment} Example: accounts/pub-9876543210987654/apps/0123456789", +"type": "string" +}, +"platform": { +"description": "Describes the platform of the app. Limited to \"IOS\" and \"ANDROID\".", +"type": "string" +} +}, +"type": "object" +}, +"AppLinkedAppInfo": { +"description": "Information from the app store if the app is linked to an app store.", +"id": "AppLinkedAppInfo", +"properties": { +"androidAppStores": { +"description": "Optional. The app store information for published Android apps. This field is only used for apps on the Android platform and will be ignored if the PLATFORM is set to iOS. The default value is the Google Play App store. This field can be updated after app is created. If the app is not published, this field will not be included in the response.", +"items": { +"enum": [ +"ANDROID_APP_STORE_UNSPECIFIED", +"GOOGLE_PLAY_APP_STORE", +"AMAZON_APP_STORE", +"OPPO_APP_STORE", +"SAMSUNG_APP_STORE", +"VIVO_APP_STORE", +"XIAOMI_APP_STORE" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"Google Play Store.", +"Amazon Appstore.", +"Oppo App Market.", +"Samsung Galaxy Store.", +"VIVO App Store.", +"Xiaomi GetApps." +], +"type": "string" +}, +"type": "array" +}, +"appStoreId": { +"description": "The app store ID of the app; present if and only if the app is linked to an app store. If the app is added to the Google Play store, it will be the application ID of the app. For example: \"com.example.myapp\". See https://developer.android.com/studio/build/application-id. If the app is added to the Apple App Store, it will be app store ID. For example \"105169111\". Note that setting the app store id is considered an irreversible action. Once an app is linked, it cannot be unlinked.", +"type": "string" +}, +"displayName": { +"description": "Output only. Display name of the app as it appears in the app store. This is an output-only field, and may be empty if the app cannot be found in the store.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AppManualAppInfo": { +"description": "Information provided for manual apps which are not linked to an application store (Example: Google Play, App Store).", +"id": "AppManualAppInfo", +"properties": { +"displayName": { +"description": "The display name of the app as shown in the AdMob UI, which is provided by the user. The maximum length allowed is 80 characters.", +"type": "string" +} +}, +"type": "object" +}, +"BatchCreateAdUnitMappingsRequest": { +"description": "Request to create a batch of ad unit mappings under the specific AdMob account.", +"id": "BatchCreateAdUnitMappingsRequest", +"properties": { +"requests": { +"description": "Required. The request message specifying the ad unit mappings to create. A maximum of 100 ad unit mappings can be created in a batch. If the number of ad unit mappings in the batch request exceed 100, the entire request will be rejected and no ad unit mappings will be created.", +"items": { +"$ref": "CreateAdUnitMappingRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateAdUnitMappingsResponse": { +"description": "Response containing a batch of created ad unit mappings.", +"id": "BatchCreateAdUnitMappingsResponse", +"properties": { +"adUnitMappings": { +"description": "The Ad units mappings created under the requested account.", +"items": { +"$ref": "AdUnitMapping" +}, +"type": "array" +} +}, +"type": "object" +}, +"CampaignReportSpec": { +"description": "The specification for generating a Campaign report. For example, the specification to get IMPRESSIONS and CLICKS sliced by CAMPAIGN_ID can look like the following example: { \"date_range\": { \"start_date\": {\"year\": 2021, \"month\": 12, \"day\": 1}, \"end_date\": {\"year\": 2021, \"month\": 12, \"day\": 30} }, \"dimensions\": [\"CAMPAIGN_ID\"], \"metrics\": [\"IMPRESSIONS\", \"CLICKS\"], }", +"id": "CampaignReportSpec", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "The date range for which the report is generated. The max range is 30 days." +}, +"dimensions": { +"description": "List of dimensions of the report. The value combination of these dimensions determines the row of the report. If no dimensions are specified, the report returns a single row of requested metrics for the entire account.", +"items": { +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"CAMPAIGN_ID", +"CAMPAIGN_NAME", +"AD_ID", +"AD_NAME", +"PLACEMENT_ID", +"PLACEMENT_NAME", +"PLACEMENT_PLATFORM", +"COUNTRY", +"FORMAT" +], +"enumDescriptions": [ +"Default value of an unspecified dimension. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\").", +"The unique ID of the campaign, for example \"123456789\", which is consistent with the campaign id from campaign list api.", +"The name of the campaign.", +"The unique ID of the ad, for example \"123456789\".", +"The name of the ad, which may not be unique.", +"The vendor-specific unique ID of the app where the ad is placed. For example, com.goog.bar for Android and 123456789 for iOS apps.", +"The name of the app where the ad is placed.", +"The platform of the app where the ad is placed.", +"The name of the targeted country.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension." +], +"type": "string" +}, +"type": "array" +}, +"languageCode": { +"description": "Language used for any localized text, such as certain applicable dimension values. The language tag is defined in the IETF BCP47. Defaults to 'en-US' if unspecified or invalid.", +"type": "string" +}, +"metrics": { +"description": "List of metrics of the report. A report must specify at least one metric.", +"items": { +"enum": [ +"METRIC_UNSPECIFIED", +"IMPRESSIONS", +"CLICKS", +"CLICK_THROUGH_RATE", +"INSTALLS", +"ESTIMATED_COST", +"AVERAGE_CPI", +"INTERACTIONS" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The number of times an ad is shown to the user.", +"The number of times a user clicks an ad.", +"The number of clicks an ad receives divided by the number of times the ad is shown.", +"The number of times apps were downloaded to devices.", +"The estimated cost of serving a campaign ad instead of an ad that earns revenue. The currency is the reporting currency for campaigns.", +"The average cost per install. This means the average amount that was spent to acquire a new user. The currency is the reporting currency for campaigns.", +"The number of times a user interacts with an ad. This consists of clicks and engagements." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CreateAdUnitMappingRequest": { +"description": "Request to create an ad unit mapping under the specific AdMob account and ad unit.", +"id": "CreateAdUnitMappingRequest", +"properties": { +"adUnitMapping": { +"$ref": "AdUnitMapping", +"description": "Required. The ad unit mapping to create." +}, +"parent": { +"description": "Required. The parent which owns the ad unit mapping. Format: accounts/{publisher_id}/adUnits/{ad_unit_id}", +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DateRange": { +"description": "Specification of a single date range. Both dates are inclusive.", +"id": "DateRange", +"properties": { +"endDate": { +"$ref": "Date", +"description": "End date of the date range, inclusive. Must be greater than or equal to the start date." +}, +"startDate": { +"$ref": "Date", +"description": "Start date of the date range, inclusive. Must be less than or equal to the end date." +} +}, +"type": "object" +}, +"GenerateCampaignReportRequest": { +"description": "Request to generate campaign report.", +"id": "GenerateCampaignReportRequest", +"properties": { +"reportSpec": { +"$ref": "CampaignReportSpec", +"description": "Campaign report specification." +} +}, +"type": "object" +}, +"GenerateCampaignReportResponse": { +"description": "Campaign Report API response.", +"id": "GenerateCampaignReportResponse", +"properties": { +"rows": { +"description": "The campaign report data from the specified publisher. At most 100000 rows will be returned from the API.", +"items": { +"$ref": "ReportRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GenerateMediationReportRequest": { +"description": "Request to generate an AdMob Mediation report.", +"id": "GenerateMediationReportRequest", +"properties": { +"reportSpec": { +"$ref": "MediationReportSpec", +"description": "Network report specification." +} +}, +"type": "object" +}, +"GenerateMediationReportResponse": { +"description": "The streaming response for the AdMob Mediation report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"date_range\": { \"start_date\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } }, { \"row\": { \"dimension_values\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", \"display_label\": \"My app name!\" } }, \"metric_values\": { \"ESTIMATED_EARNINGS\": {\"decimal_value\": \"1324746\"} } } }, { \"footer\": {\"matching_row_count\": 1} }]", +"id": "GenerateMediationReportResponse", +"properties": { +"footer": { +"$ref": "ReportFooter", +"description": "Additional information about the generated report, such as warnings about the data." +}, +"header": { +"$ref": "ReportHeader", +"description": "Report generation settings that describes the report contents, such as the report date range and localization settings." +}, +"row": { +"$ref": "ReportRow", +"description": "Actual report data." +} +}, +"type": "object" +}, +"GenerateNetworkReportRequest": { +"description": "Request to generate an AdMob Network report.", +"id": "GenerateNetworkReportRequest", +"properties": { +"reportSpec": { +"$ref": "NetworkReportSpec", +"description": "Network report specification." +} +}, +"type": "object" +}, +"GenerateNetworkReportResponse": { +"description": "The streaming response for the AdMob Network report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"dateRange\": { \"startDate\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"endDate\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localizationSettings\": { \"currencyCode\": \"USD\", \"languageCode\": \"en-US\" } } }, { \"row\": { \"dimensionValues\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", displayLabel: \"My app name!\" } }, \"metricValues\": { \"ESTIMATED_EARNINGS\": {\"microsValue\": 6500000} } } }, { \"footer\": {\"matchingRowCount\": 1} }]", +"id": "GenerateNetworkReportResponse", +"properties": { +"footer": { +"$ref": "ReportFooter", +"description": "Additional information about the generated report, such as warnings about the data." +}, +"header": { +"$ref": "ReportHeader", +"description": "Report generation settings that describes the report contents, such as the report date range and localization settings." +}, +"row": { +"$ref": "ReportRow", +"description": "Actual report data." +} +}, +"type": "object" +}, +"ListAdSourcesResponse": { +"description": "Response for the ListAdSourcesRequest.", +"id": "ListAdSourcesResponse", +"properties": { +"adSources": { +"description": "The ad sources.", +"items": { +"$ref": "AdSource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Used to set the `page_token` in the `ListAdSourcesRequest` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdUnitMappingsResponse": { +"description": "Response for the ListAdUnitMappingsRequest.", +"id": "ListAdUnitMappingsResponse", +"properties": { +"adUnitMappings": { +"description": "The ad unit mappings from the specified account and ad unit.", +"items": { +"$ref": "AdUnitMapping" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Used to set the `page_token` in the `ListAdUnitMappingsRequest` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdUnitsResponse": { +"description": "Response for the ad units list request.", +"id": "ListAdUnitsResponse", +"properties": { +"adUnits": { +"description": "The resulting ad units for the requested account.", +"items": { +"$ref": "AdUnit" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If not empty, indicates that there may be more ad units for the request; this value should be passed in a new `ListAdUnitsRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdaptersResponse": { +"description": "Response for the ListAdaptersRequest.", +"id": "ListAdaptersResponse", +"properties": { +"adapters": { +"description": "The adapter.", +"items": { +"$ref": "Adapter" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Used to set the `page_token` in the `ListAdapterRequest` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListAppsResponse": { +"description": "Response for the apps list request.", +"id": "ListAppsResponse", +"properties": { +"apps": { +"description": "The resulting apps for the requested account.", +"items": { +"$ref": "App" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If not empty, indicates that there may be more apps for the request; this value should be passed in a new `ListAppsRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"ListMediationGroupsResponse": { +"description": "Response for the mediation groups list request.", +"id": "ListMediationGroupsResponse", +"properties": { +"mediationGroups": { +"description": "The resulting mediation groups for the requested account.", +"items": { +"$ref": "MediationGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If not empty, indicates that there may be more mediation groups for the request; this value should be passed in a new `ListMediationGroupsRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"ListPublisherAccountsResponse": { +"description": "Response for the publisher account list request.", +"id": "ListPublisherAccountsResponse", +"properties": { +"account": { +"description": "Publisher that the client credentials can access.", +"items": { +"$ref": "PublisherAccount" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If not empty, indicates that there might be more accounts for the request; you must pass this value in a new `ListPublisherAccountsRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"LocalizationSettings": { +"description": "Localization settings for reports, such as currency and language. It affects how metrics are calculated.", +"id": "LocalizationSettings", +"properties": { +"currencyCode": { +"description": "Currency code of the earning related metrics, which is the 3-letter code defined in ISO 4217. The daily average rate is used for the currency conversion. Defaults to the account currency code if unspecified.", +"type": "string" +}, +"languageCode": { +"description": "Language used for any localized text, such as some dimension value display labels. The language tag defined in the IETF BCP47. Defaults to 'en-US' if unspecified.", +"type": "string" +} +}, +"type": "object" +}, +"MediationAbExperiment": { +"description": "The mediation A/B experiment.", +"id": "MediationAbExperiment", +"properties": { +"controlMediationLines": { +"description": "Output only. The experiment mediation lines for control. They are inherited from the parent mediation group. It is an output only field.", +"items": { +"$ref": "MediationAbExperimentExperimentMediationLine" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "The display name for the mediation A/B experiment.", +"type": "string" +}, +"endTime": { +"description": "Output only. The time at which the experiment was ended or target to end (in UTC).", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"experimentId": { +"description": "Output only. Unique identifier for the mediation A/B experiment. It is an output only property.", +"readOnly": true, +"type": "string" +}, +"mediationGroupId": { +"description": "Output only. The mediation group id this experiment belongs to. This can be used for filtering the experiments in the list experiments API.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Resource name for this experiment. The format is accounts/{publisher_id}/ mediationGroups/{mediation_group_id}/mediationAbExperiment/ {mediation_group_experiment_id}. For example: accounts/pub-9876543210987654/mediationGroups/0123456789/ mediationAbExperiment/12345", +"type": "string" +}, +"startTime": { +"description": "Output only. The time at which the experiment was started (in UTC).", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the experiment. It is an output only field.", +"enum": [ +"EXPERIMENT_STATE_UNSPECIFIED", +"EXPIRED", +"RUNNING", +"ENDED" +], +"enumDescriptions": [ +"Default for an unset field. Do not use.", +"The experiment has expired.", +"The experiment is running and thus used in serving.", +"The experiment is ended, but not yet expired. Serving continues in the original configurations while the experiment is ready to call an action." +], +"readOnly": true, +"type": "string" +}, +"treatmentMediationLines": { +"description": "The experiment mediation lines created for the treatment. They will be used for serving when the experiment status is RUNNING.", +"items": { +"$ref": "MediationAbExperimentExperimentMediationLine" +}, +"type": "array" +}, +"treatmentTrafficPercentage": { +"description": "The percentage of the mediation A/B experiment traffic that will be send to the treatment (variant B). The remainder is sent to the control (variant A). The percentage is expressed as an integer in the inclusive range of [1,99]. See https://support.google.com/admob/answer/9572326 for details.", +"format": "int64", +"type": "string" +}, +"variantLeader": { +"description": "Output only. The variant leader for the experiment according to some key metrics.", +"enum": [ +"VARIANT_LEADER_UNSPECIFIED", +"CONTROL", +"TREATMENT", +"INSUFFICIENT_DATA", +"TOO_EARLY_TO_CALL", +"NO_VARIANT_LEADER" +], +"enumDescriptions": [ +"Default value of the enum. Do not use.", +"The control leading the experiment.", +"The treatment leading the experiment.", +"Collected data (impressions) are insufficient to determine a leader.", +"Experiment hasn't run long enough to determine a leader.", +"Neither variant is a decisive winner in the observed data." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MediationAbExperimentExperimentMediationLine": { +"description": "The mediation group line for the experiment. It will be used for serving during the run of the experiment.", +"id": "MediationAbExperimentExperimentMediationLine", +"properties": { +"mediationGroupLine": { +"$ref": "MediationGroupMediationGroupLine", +"description": "The mediation group line used by the experiment." +} +}, +"type": "object" +}, +"MediationGroup": { +"description": "Describes an AdMob Mediation group.", +"id": "MediationGroup", +"properties": { +"displayName": { +"description": "User provided name for the mediation group. The maximum length allowed is 120 characters.", +"type": "string" +}, +"mediationAbExperimentState": { +"description": "Output only. The state of the mediation a/b experiment that belongs to this mediation group.", +"enum": [ +"EXPERIMENT_STATE_UNSPECIFIED", +"RUNNING", +"NOT_RUNNING" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The mediation group has an experiment in the RUNNING state.", +"There is no experiment in the RUNNING state in the mediation group." +], +"readOnly": true, +"type": "string" +}, +"mediationGroupId": { +"description": "The ID of the mediation group. Example: \"0123456789\". This is a read only property.", +"type": "string" +}, +"mediationGroupLines": { +"additionalProperties": { +"$ref": "MediationGroupMediationGroupLine" +}, +"description": "The mediation lines used for serving for this mediation group. Key is the ID of the mediation group line. For creation, use distinct negative values as placeholder.", +"type": "object" +}, +"name": { +"description": "Resource name for this mediation group. Format is: accounts/{publisher_id}/mediationGroups/{mediation_group_id} Example: accounts/pub-9876543210987654/mediationGroups/0123456789", +"type": "string" +}, +"state": { +"description": "The status of the mediation group. Only enabled mediation groups will be served.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The mediation group is active and used to serve ads or to collect stats.", +"The mediation group has been disabled and is no longer serving ads or collecting stats. Disabled mediation groups can be re-enabled." +], +"type": "string" +}, +"targeting": { +"$ref": "MediationGroupTargeting", +"description": "Set of criteria targeted by this mediation group, such as ad units and geo locations." +} +}, +"type": "object" +}, +"MediationGroupMediationGroupLine": { +"description": "Settings for an ad network used by a mediation group.", +"id": "MediationGroupMediationGroupLine", +"properties": { +"adSourceId": { +"description": "The ID of the ad source this mediation line is associated with.", +"type": "string" +}, +"adUnitMappings": { +"additionalProperties": { +"type": "string" +}, +"description": "References of the ad unit mappings for each ad unit associated with this mediation line. Key is the ad unit ID, value is resource name of the ad unit mapping. For mediation lines where the ad source id is the AdMob Network, ad unit mappings will be ignored.", +"type": "object" +}, +"cpmMicros": { +"description": "The CPM for this allocation line. $0.01 is the minimum allowed amount. For LIVE CPM modes, the default amount is $0.01. This value is ignored if `cpm_mode` is `LIVE`. **Warning:** \"USD\" is the only supported currency at the moment. The unit is in micros.", +"format": "int64", +"type": "string" +}, +"cpmMode": { +"description": "Indicates how the CPM for this mediation line is provided. Note that `MANUAL` and `LIVE` are the only fully-supported mode at the moment. Please use the AdMob UI (https://admob.google.com) if you wish to create or update to other cpm modes.", +"enum": [ +"CPM_MODE_UNSPECIFIED", +"LIVE", +"MANUAL", +"ANO" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"CPM is calculated per ad request based on the ad auction.", +"CPM is set by the user manually.", +"CPM is retrieved from the ad network using the publisher specified credentials. Output only." +], +"type": "string" +}, +"displayName": { +"description": "User-provided label for this mediation line. The maximum length allowed is 255 characters.", +"type": "string" +}, +"experimentVariant": { +"description": "Output only. The Mediation A/B experiment variant to which the mediation group line belongs to.", +"enum": [ +"VARIANT_UNSPECIFIED", +"VARIANT_A", +"VARIANT_B", +"ORIGINAL" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The mediation group line belongs to the variant A.", +"The mediation group line belongs to the variant B.", +"The mediation group line isn't a part of an experiment." +], +"readOnly": true, +"type": "string" +}, +"id": { +"description": "The 16 digit ID for this mediation line e.g. 0123456789012345. When creating a new mediation group line, use a distinct negative integer as the ID place holder.", +"type": "string" +}, +"state": { +"description": "The status of the mediation group line. Only enabled mediation group lines will be served.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"REMOVED" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The mediation group line is active and used to serve ads.", +"The mediation group line has been disabled and is no longer served. Disabled mediation group lines can be re-enabled.", +"The mediation group line will be removed and no longer served. Removed mediation group lines can not be re-enabled and will no longer be visible. This is an input only field." +], +"type": "string" +} +}, +"type": "object" +}, +"MediationGroupTargeting": { +"description": "Set of criteria targeted by this mediation group. For example, a mediation group can target specific ad unit IDs, platform, format and geo location.", +"id": "MediationGroupTargeting", +"properties": { +"adUnitIds": { +"description": "Ad units targeted by this mediation group. Example: \"ca-app-pub-1234/8790\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"excludedRegionCodes": { +"description": "The Unicode country/region code (CLDR) of a location, such as \"US\". Unset if this mediation group does not exclude any region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"format": { +"description": "Ad format targeted by this mediation group. Examples: \"banner\", \"native\".", +"type": "string" +}, +"idfaTargeting": { +"description": "The parameter can be used to target ad requests based on the availability of the IDFA. If set to ALL, the mediation group applies to all ad requests (with or without IDFA). If set to AVAILABLE, the mediation group applies to ad requests with IDFA. If set to NOT_AVAILABLE, the mediation group applies to ad requests without IDFA. Doesn't need to be specified for an ANDROID device.", +"enum": [ +"IDFA_TARGETING_UNSPECIFIED", +"ALL", +"AVAILABLE", +"NOT_AVAILABLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"All the devices are targeted, regardless of IDFA availability.", +"Only the devices with IDFA availability are targeted.", +"Only the devices without IDFA availability are targeted." +], +"type": "string" +}, +"platform": { +"description": "Describes the platform of the app. Examples: \"IOS\", \"Android\".", +"type": "string" +}, +"targetedRegionCodes": { +"description": "The Unicode country/region code (CLDR) of a location, such as \"US\". Unset if this mediation group targets all available regions. For more information, see http://www.unicode.org/reports/tr35/#unicode_region_subtag.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"MediationReportSpec": { +"description": "The specification for generating an AdMob Mediation report. For example, the specification to get observed ECPM sliced by ad source and app for the 'US' and 'CN' countries can look like the following example: { \"date_range\": { \"start_date\": {\"year\": 2021, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2021, \"month\": 9, \"day\": 30} }, \"dimensions\": [\"AD_SOURCE\", \"APP\", \"COUNTRY\"], \"metrics\": [\"OBSERVED_ECPM\"], \"dimension_filters\": [ { \"dimension\": \"COUNTRY\", \"matches_any\": {\"values\": [{\"value\": \"US\", \"value\": \"CN\"}]} } ], \"sort_conditions\": [ {\"dimension\":\"APP\", order: \"ASCENDING\"} ], \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } For a better understanding, you can treat the preceding specification like the following pseudo SQL: SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM FROM MEDIATION_REPORT WHERE DATE >= '2021-09-01' AND DATE <= '2021-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY AD_SOURCE, APP, COUNTRY ORDER BY APP ASC;", +"id": "MediationReportSpec", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "The date range for which the report is generated." +}, +"dimensionFilters": { +"description": "Describes which report rows to match based on their dimension values.", +"items": { +"$ref": "MediationReportSpecDimensionFilter" +}, +"type": "array" +}, +"dimensions": { +"description": "List of dimensions of the report. The value combination of these dimensions determines the row of the report. If no dimensions are specified, the report returns a single row of requested metrics for the entire account.", +"items": { +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"MONTH", +"WEEK", +"AD_SOURCE", +"AD_SOURCE_INSTANCE", +"AD_UNIT", +"APP", +"MEDIATION_GROUP", +"COUNTRY", +"FORMAT", +"PLATFORM", +"MOBILE_OS_VERSION", +"GMA_SDK_VERSION", +"APP_VERSION_NAME", +"SERVING_RESTRICTION" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.", +"The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"The [unique ID of the ad source](/admob/api/v1/ad_sources) (for example, \"5450213213286189855\" and \"AdMob Network\" as label value).", +"The unique ID of the ad source instance (for example, \"ca-app-pub-1234:asi:5678\" and \"AdMob (default)\" as label value).", +"The unique ID of the ad unit (for example, \"ca-app-pub-1234/8790\"). If AD_UNIT dimension is specified, then APP is included automatically.", +"The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").", +"The unique ID of the mediation group (for example, \"ca-app-pub-1234:mg:1234\" and \"AdMob (default)\" as label value).", +"CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", +"Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", +"Mobile operating system version, e.g. \"iOS 13.5.1\".", +"GMA SDK version, e.g. \"iOS 7.62.0\".", +"For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", +"Restriction mode for ads serving (e.g. \"Non-personalized ads\")." +], +"type": "string" +}, +"type": "array" +}, +"localizationSettings": { +"$ref": "LocalizationSettings", +"description": "Localization settings of the report." +}, +"maxReportRows": { +"description": "Maximum number of report data rows to return. If the value is not set, the API returns as many rows as possible, up to 100000. Acceptable values are 1-100000, inclusive. Values larger than 100000 return an error.", +"format": "int32", +"type": "integer" +}, +"metrics": { +"description": "List of metrics of the report. A report must specify at least one metric.", +"items": { +"enum": [ +"METRIC_UNSPECIFIED", +"AD_REQUESTS", +"CLICKS", +"ESTIMATED_EARNINGS", +"IMPRESSIONS", +"IMPRESSION_CTR", +"MATCHED_REQUESTS", +"MATCH_RATE", +"OBSERVED_ECPM" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The number of requests. The value is an integer.", +"The number of times a user clicks an ad. The value is an integer.", +"The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000. Estimated earnings per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated earnings will show 0 for dates prior to October 20, 2019.", +"The total number of ads shown to users. The value is an integer.", +"The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.", +"The number of times ads are returned in response to a request. The value is an integer.", +"The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value.", +"The third-party ad network's estimated average eCPM. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $2.30 would be represented as 2300000. The estimated average eCPM per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated average eCPM will show 0 for dates prior to October 20, 2019." +], +"type": "string" +}, +"type": "array" +}, +"sortConditions": { +"description": "Describes the sorting of report rows. The order of the condition in the list defines its precedence; the earlier the condition, the higher its precedence. If no sort conditions are specified, the row ordering is undefined.", +"items": { +"$ref": "MediationReportSpecSortCondition" +}, +"type": "array" +}, +"timeZone": { +"description": "A report time zone. Accepts an IANA TZ name values, such as \"America/Los_Angeles.\" If no time zone is defined, the account default takes effect. Check default value by the get account action. **Warning:** The \"America/Los_Angeles\" is the only supported value at the moment.", +"type": "string" +} +}, +"type": "object" +}, +"MediationReportSpecDimensionFilter": { +"description": "Describes which report rows to match based on their dimension values.", +"id": "MediationReportSpecDimensionFilter", +"properties": { +"dimension": { +"description": "Applies the filter criterion to the specified dimension.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"MONTH", +"WEEK", +"AD_SOURCE", +"AD_SOURCE_INSTANCE", +"AD_UNIT", +"APP", +"MEDIATION_GROUP", +"COUNTRY", +"FORMAT", +"PLATFORM", +"MOBILE_OS_VERSION", +"GMA_SDK_VERSION", +"APP_VERSION_NAME", +"SERVING_RESTRICTION" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.", +"The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"The [unique ID of the ad source](/admob/api/v1/ad_sources) (for example, \"5450213213286189855\" and \"AdMob Network\" as label value).", +"The unique ID of the ad source instance (for example, \"ca-app-pub-1234:asi:5678\" and \"AdMob (default)\" as label value).", +"The unique ID of the ad unit (for example, \"ca-app-pub-1234/8790\"). If AD_UNIT dimension is specified, then APP is included automatically.", +"The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").", +"The unique ID of the mediation group (for example, \"ca-app-pub-1234:mg:1234\" and \"AdMob (default)\" as label value).", +"CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", +"Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", +"Mobile operating system version, e.g. \"iOS 13.5.1\".", +"GMA SDK version, e.g. \"iOS 7.62.0\".", +"For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", +"Restriction mode for ads serving (e.g. \"Non-personalized ads\")." +], +"type": "string" +}, +"matchesAny": { +"$ref": "StringList", +"description": "Matches a row if its value for the specified dimension is in one of the values specified in this condition." +} +}, +"type": "object" +}, +"MediationReportSpecSortCondition": { +"description": "Sorting direction to be applied on a dimension or a metric.", +"id": "MediationReportSpecSortCondition", +"properties": { +"dimension": { +"description": "Sort by the specified dimension.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"MONTH", +"WEEK", +"AD_SOURCE", +"AD_SOURCE_INSTANCE", +"AD_UNIT", +"APP", +"MEDIATION_GROUP", +"COUNTRY", +"FORMAT", +"PLATFORM", +"MOBILE_OS_VERSION", +"GMA_SDK_VERSION", +"APP_VERSION_NAME", +"SERVING_RESTRICTION" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.", +"The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"The [unique ID of the ad source](/admob/api/v1/ad_sources) (for example, \"5450213213286189855\" and \"AdMob Network\" as label value).", +"The unique ID of the ad source instance (for example, \"ca-app-pub-1234:asi:5678\" and \"AdMob (default)\" as label value).", +"The unique ID of the ad unit (for example, \"ca-app-pub-1234/8790\"). If AD_UNIT dimension is specified, then APP is included automatically.", +"The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").", +"The unique ID of the mediation group (for example, \"ca-app-pub-1234:mg:1234\" and \"AdMob (default)\" as label value).", +"CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", +"Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", +"Mobile operating system version, e.g. \"iOS 13.5.1\".", +"GMA SDK version, e.g. \"iOS 7.62.0\".", +"For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", +"Restriction mode for ads serving (e.g. \"Non-personalized ads\")." +], +"type": "string" +}, +"metric": { +"description": "Sort by the specified metric.", +"enum": [ +"METRIC_UNSPECIFIED", +"AD_REQUESTS", +"CLICKS", +"ESTIMATED_EARNINGS", +"IMPRESSIONS", +"IMPRESSION_CTR", +"MATCHED_REQUESTS", +"MATCH_RATE", +"OBSERVED_ECPM" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The number of requests. The value is an integer.", +"The number of times a user clicks an ad. The value is an integer.", +"The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000. Estimated earnings per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated earnings will show 0 for dates prior to October 20, 2019.", +"The total number of ads shown to users. The value is an integer.", +"The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.", +"The number of times ads are returned in response to a request. The value is an integer.", +"The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value.", +"The third-party ad network's estimated average eCPM. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $2.30 would be represented as 2300000. The estimated average eCPM per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated average eCPM will show 0 for dates prior to October 20, 2019." +], +"type": "string" +}, +"order": { +"description": "Sorting order of the dimension or metric.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"Sort dimension value or metric value in ascending order.", +"Sort dimension value or metric value in descending order." +], +"type": "string" +} +}, +"type": "object" +}, +"NetworkReportSpec": { +"description": "The specification for generating an AdMob Network report. For example, the specification to get clicks and estimated earnings for only the 'US' and 'CN' countries can look like the following example: { 'date_range': { 'start_date': {'year': 2021, 'month': 9, 'day': 1}, 'end_date': {'year': 2021, 'month': 9, 'day': 30} }, 'dimensions': ['DATE', 'APP', 'COUNTRY'], 'metrics': ['CLICKS', 'ESTIMATED_EARNINGS'], 'dimension_filters': [ { 'dimension': 'COUNTRY', 'matches_any': {'values': [{'value': 'US', 'value': 'CN'}]} } ], 'sort_conditions': [ {'dimension':'APP', order: 'ASCENDING'}, {'metric':'CLICKS', order: 'DESCENDING'} ], 'localization_settings': { 'currency_code': 'USD', 'language_code': 'en-US' } } For a better understanding, you can treat the preceding specification like the following pseudo SQL: SELECT DATE, APP, COUNTRY, CLICKS, ESTIMATED_EARNINGS FROM NETWORK_REPORT WHERE DATE >= '2021-09-01' AND DATE <= '2021-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY DATE, APP, COUNTRY ORDER BY APP ASC, CLICKS DESC;", +"id": "NetworkReportSpec", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "The date range for which the report is generated." +}, +"dimensionFilters": { +"description": "Describes which report rows to match based on their dimension values.", +"items": { +"$ref": "NetworkReportSpecDimensionFilter" +}, +"type": "array" +}, +"dimensions": { +"description": "List of dimensions of the report. The value combination of these dimensions determines the row of the report. If no dimensions are specified, the report returns a single row of requested metrics for the entire account.", +"items": { +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"MONTH", +"WEEK", +"AD_UNIT", +"APP", +"AD_TYPE", +"COUNTRY", +"FORMAT", +"PLATFORM", +"MOBILE_OS_VERSION", +"GMA_SDK_VERSION", +"APP_VERSION_NAME", +"SERVING_RESTRICTION" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.", +"The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"The unique ID of the ad unit (for example, \"ca-app-pub-1234/1234\"). If AD_UNIT dimension is specified, then APP is included automatically.", +"The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").", +"Type of the ad (for example, \"text\" or \"image\"), an ad delivery dimension. **Warning:** The dimension is incompatible with [AD_REQUESTS](#Metric.ENUM_VALUES.AD_REQUESTS), [MATCH_RATE](#Metric.ENUM_VALUES.MATCH_RATE) and [IMPRESSION_RPM](#Metric.ENUM_VALUES.IMPRESSION_RPM) metrics.", +"CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", +"Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", +"Mobile operating system version, e.g. \"iOS 13.5.1\".", +"GMA SDK version, e.g. \"iOS 7.62.0\".", +"For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", +"Restriction mode for ads serving (e.g. \"Non-personalized ads\")." +], +"type": "string" +}, +"type": "array" +}, +"localizationSettings": { +"$ref": "LocalizationSettings", +"description": "Localization settings of the report." +}, +"maxReportRows": { +"description": "Maximum number of report data rows to return. If the value is not set, the API returns as many rows as possible, up to 100000. Acceptable values are 1-100000, inclusive. Values larger than 100000 return an error.", +"format": "int32", +"type": "integer" +}, +"metrics": { +"description": "List of metrics of the report. A report must specify at least one metric.", +"items": { +"enum": [ +"METRIC_UNSPECIFIED", +"AD_REQUESTS", +"CLICKS", +"ESTIMATED_EARNINGS", +"IMPRESSIONS", +"IMPRESSION_CTR", +"IMPRESSION_RPM", +"MATCHED_REQUESTS", +"MATCH_RATE", +"SHOW_RATE" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The number of ad requests. The value is an integer. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.", +"The number of times a user clicks an ad. The value is an integer.", +"The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000.", +"The total number of ads shown to users. The value is an integer.", +"The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.", +"The estimated earnings per thousand ad impressions. The value is in micros. For example, $1.03 would be represented as 1030000. Equivalent to eCPM in the AdMob UI. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.", +"The number of times ads are returned in response to a request. The value is an integer.", +"The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.", +"The ratio of ads that are displayed over ads that are returned, defined as impressions / matched requests. The value is a double precision (approximate) decimal value." +], +"type": "string" +}, +"type": "array" +}, +"sortConditions": { +"description": "Describes the sorting of report rows. The order of the condition in the list defines its precedence; the earlier the condition, the higher its precedence. If no sort conditions are specified, the row ordering is undefined.", +"items": { +"$ref": "NetworkReportSpecSortCondition" +}, +"type": "array" +}, +"timeZone": { +"description": "A report time zone. Accepts an IANA TZ name values, such as \"America/Los_Angeles.\" If no time zone is defined, the account default takes effect. Check default value by the get account action. **Warning:** The \"America/Los_Angeles\" is the only supported value at the moment.", +"type": "string" +} +}, +"type": "object" +}, +"NetworkReportSpecDimensionFilter": { +"description": "Describes which report rows to match based on their dimension values.", +"id": "NetworkReportSpecDimensionFilter", +"properties": { +"dimension": { +"description": "Applies the filter criterion to the specified dimension.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"MONTH", +"WEEK", +"AD_UNIT", +"APP", +"AD_TYPE", +"COUNTRY", +"FORMAT", +"PLATFORM", +"MOBILE_OS_VERSION", +"GMA_SDK_VERSION", +"APP_VERSION_NAME", +"SERVING_RESTRICTION" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.", +"The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"The unique ID of the ad unit (for example, \"ca-app-pub-1234/1234\"). If AD_UNIT dimension is specified, then APP is included automatically.", +"The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").", +"Type of the ad (for example, \"text\" or \"image\"), an ad delivery dimension. **Warning:** The dimension is incompatible with [AD_REQUESTS](#Metric.ENUM_VALUES.AD_REQUESTS), [MATCH_RATE](#Metric.ENUM_VALUES.MATCH_RATE) and [IMPRESSION_RPM](#Metric.ENUM_VALUES.IMPRESSION_RPM) metrics.", +"CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", +"Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", +"Mobile operating system version, e.g. \"iOS 13.5.1\".", +"GMA SDK version, e.g. \"iOS 7.62.0\".", +"For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", +"Restriction mode for ads serving (e.g. \"Non-personalized ads\")." +], +"type": "string" +}, +"matchesAny": { +"$ref": "StringList", +"description": "Matches a row if its value for the specified dimension is in one of the values specified in this condition." +} +}, +"type": "object" +}, +"NetworkReportSpecSortCondition": { +"description": "Sorting direction to be applied on a dimension or a metric.", +"id": "NetworkReportSpecSortCondition", +"properties": { +"dimension": { +"description": "Sort by the specified dimension.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"MONTH", +"WEEK", +"AD_UNIT", +"APP", +"AD_TYPE", +"COUNTRY", +"FORMAT", +"PLATFORM", +"MOBILE_OS_VERSION", +"GMA_SDK_VERSION", +"APP_VERSION_NAME", +"SERVING_RESTRICTION" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.", +"The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.", +"The unique ID of the ad unit (for example, \"ca-app-pub-1234/1234\"). If AD_UNIT dimension is specified, then APP is included automatically.", +"The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").", +"Type of the ad (for example, \"text\" or \"image\"), an ad delivery dimension. **Warning:** The dimension is incompatible with [AD_REQUESTS](#Metric.ENUM_VALUES.AD_REQUESTS), [MATCH_RATE](#Metric.ENUM_VALUES.MATCH_RATE) and [IMPRESSION_RPM](#Metric.ENUM_VALUES.IMPRESSION_RPM) metrics.", +"CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", +"Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", +"Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", +"Mobile operating system version, e.g. \"iOS 13.5.1\".", +"GMA SDK version, e.g. \"iOS 7.62.0\".", +"For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", +"Restriction mode for ads serving (e.g. \"Non-personalized ads\")." +], +"type": "string" +}, +"metric": { +"description": "Sort by the specified metric.", +"enum": [ +"METRIC_UNSPECIFIED", +"AD_REQUESTS", +"CLICKS", +"ESTIMATED_EARNINGS", +"IMPRESSIONS", +"IMPRESSION_CTR", +"IMPRESSION_RPM", +"MATCHED_REQUESTS", +"MATCH_RATE", +"SHOW_RATE" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"The number of ad requests. The value is an integer. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.", +"The number of times a user clicks an ad. The value is an integer.", +"The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000.", +"The total number of ads shown to users. The value is an integer.", +"The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.", +"The estimated earnings per thousand ad impressions. The value is in micros. For example, $1.03 would be represented as 1030000. Equivalent to eCPM in the AdMob UI. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.", +"The number of times ads are returned in response to a request. The value is an integer.", +"The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.", +"The ratio of ads that are displayed over ads that are returned, defined as impressions / matched requests. The value is a double precision (approximate) decimal value." +], +"type": "string" +}, +"order": { +"description": "Sorting order of the dimension or metric.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"Sort dimension value or metric value in ascending order.", +"Sort dimension value or metric value in descending order." +], +"type": "string" +} +}, +"type": "object" +}, +"PublisherAccount": { +"description": "A publisher account contains information relevant to the use of this API, such as the time zone used for the reports.", +"id": "PublisherAccount", +"properties": { +"currencyCode": { +"description": "Currency code of the earning-related metrics, which is the 3-letter code defined in ISO 4217. The daily average rate is used for the currency conversion.", +"type": "string" +}, +"name": { +"description": "Resource name of this account. Format is accounts/{publisher_id}.", +"type": "string" +}, +"publisherId": { +"description": "The unique ID by which this publisher account can be identified in the API requests (for example, pub-1234567890).", +"type": "string" +}, +"reportingTimeZone": { +"description": "The time zone that is used in reports that are generated for this account. The value is a time-zone ID as specified by the CLDR project, for example, \"America/Los_Angeles\".", +"type": "string" +} +}, +"type": "object" +}, +"ReportFooter": { +"description": "Groups data available after report generation, for example, warnings and row counts. Always sent as the last message in the stream response.", +"id": "ReportFooter", +"properties": { +"matchingRowCount": { +"description": "Total number of rows that matched the request. Warning: This count does NOT always match the number of rows in the response. Do not make that assumption when processing the response.", +"format": "int64", +"type": "string" +}, +"warnings": { +"description": "Warnings associated with generation of the report.", +"items": { +"$ref": "ReportWarning" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReportHeader": { +"description": "Groups data helps to treat the generated report. Always sent as a first message in the stream response.", +"id": "ReportHeader", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "The date range for which the report is generated. This is identical to the range specified in the report request." +}, +"localizationSettings": { +"$ref": "LocalizationSettings", +"description": "Localization settings of the report. This is identical to the settings in the report request." +}, +"reportingTimeZone": { +"description": "The report time zone. The value is a time-zone ID as specified by the CLDR project, for example, \"America/Los_Angeles\".", +"type": "string" +} +}, +"type": "object" +}, +"ReportRow": { +"description": "A row of the returning report.", +"id": "ReportRow", +"properties": { +"dimensionValues": { +"additionalProperties": { +"$ref": "ReportRowDimensionValue" +}, +"description": "Map of dimension values in a row, with keys as enum name of the dimensions.", +"type": "object" +}, +"metricValues": { +"additionalProperties": { +"$ref": "ReportRowMetricValue" +}, +"description": "Map of metric values in a row, with keys as enum name of the metrics. If a metric being requested has no value returned, the map will not include it.", +"type": "object" +} +}, +"type": "object" +}, +"ReportRowDimensionValue": { +"description": "Representation of a dimension value.", +"id": "ReportRowDimensionValue", +"properties": { +"displayLabel": { +"description": "The localized string representation of the value. If unspecified, the display label should be derived from the value.", +"type": "string" +}, +"value": { +"description": "Dimension value in the format specified in the report's spec Dimension enum.", +"type": "string" +} +}, +"type": "object" +}, +"ReportRowMetricValue": { +"description": "Representation of a metric value.", +"id": "ReportRowMetricValue", +"properties": { +"doubleValue": { +"description": "Double precision (approximate) decimal values. Rates are from 0 to 1.", +"format": "double", +"type": "number" +}, +"integerValue": { +"description": "Metric integer value.", +"format": "int64", +"type": "string" +}, +"microsValue": { +"description": "Amount in micros. One million is equivalent to one unit. Currency value is in the unit (USD, EUR or other) specified by the request. For example, $6.50 whould be represented as 6500000 micros.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReportWarning": { +"description": "Warnings associated with generation of the report.", +"id": "ReportWarning", +"properties": { +"description": { +"description": "Describes the details of the warning message, in English.", +"type": "string" +}, +"type": { +"description": "Type of the warning.", +"enum": [ +"TYPE_UNSPECIFIED", +"DATA_BEFORE_ACCOUNT_TIMEZONE_CHANGE", +"DATA_DELAYED", +"OTHER", +"REPORT_CURRENCY_NOT_ACCOUNT_CURRENCY" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"Some data in this report is aggregated based on a time zone different from the requested time zone. This could happen if a local time-zone report has the start time before the last time this time zone changed. The description field will contain the date of the last time zone change.", +"There is an unusual delay in processing the source data for the requested date range. The report results might be less up to date than usual. AdMob is aware of the issue and is actively working to resolve it.", +"Warnings that are exposed without a specific type. Useful when new warning types are added but the API is not changed yet.", +"The currency being requested is not the account currency. The earning metrics will be based on the requested currency, and thus not a good estimation of the final payment anymore, due to the currency rate fluctuation." +], +"type": "string" +} +}, +"type": "object" +}, +"StopMediationAbExperimentRequest": { +"description": "Request to end the mediation A/B experiment and choose a winning variant.", +"id": "StopMediationAbExperimentRequest", +"properties": { +"variantChoice": { +"description": "The choice for the winning variant.", +"enum": [ +"VARIANT_CHOICE_UNSPECIFIED", +"VARIANT_CHOICE_A", +"VARIANT_CHOICE_B" +], +"enumDescriptions": [ +"Default value for an unset field. Do not use.", +"Use the mediation lines from Variant A and complete the experiment. Variant A contains the original serving lines before the experiment creation.", +"Use the mediation lines form Variant B and complete the experiment. Variant B contains the newly added serving lines." +], +"type": "string" +} +}, +"type": "object" +}, +"StringList": { +"description": "List of string values.", +"id": "StringList", +"properties": { +"values": { +"description": "The string values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "AdMob API", +"version": "v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/alloydb.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/alloydb.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..027733a71f16f2abd21fa46460f0ee27a02ab2f8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/alloydb.v1.json @@ -0,0 +1,5311 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://alloydb.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud AlloyDB Admin", +"description": "AlloyDB for PostgreSQL is an open source-compatible database service that provides a powerful option for migrating, modernizing, or building commercial-grade applications. It offers full compatibility with standard PostgreSQL, and is more than 4x faster for transactional workloads and up to 100x faster for analytical queries than standard PostgreSQL in our performance tests. AlloyDB for PostgreSQL offers a 99.99 percent availability SLA inclusive of maintenance. AlloyDB is optimized for the most demanding use cases, allowing you to build new applications that require high transaction throughput, large database sizes, or multiple read resources; scale existing PostgreSQL workloads with no application changes; and modernize legacy proprietary databases. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/alloydb/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "alloydb:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://alloydb.mtls.googleapis.com/", +"name": "alloydb", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "alloydb.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a new Backup in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "POST", +"id": "alloydb.projects.locations.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/backups", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the Backup. If an etag is provided and does not match the current etag of the Backup, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the resource. For the required format, see the comment on the Backup.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Backups in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "GET", +"id": "alloydb.projects.locations.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListBackupsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.backups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, update succeeds even if instance is not found. In that case, a new backup is created and `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} where the cluster and backup ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the backup resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Backup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"clusters": { +"methods": { +"create": { +"description": "Creates a new Cluster in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location of the new cluster. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/clusters", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"createsecondary": { +"description": "Creates a cluster of type SECONDARY in the given location using the primary cluster as the source.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters:createsecondary", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.createsecondary", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. ID of the requesting object (the secondary cluster).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location of the new cluster. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/clusters:createsecondary", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.clusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the Cluster. If an etag is provided and does not match the current etag of the Cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. Whether to cascade delete child instances for given cluster.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports data from the cluster. Imperative only.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:export", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the cluster.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. The view of the cluster to return. Returns all default fields if not set.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"CLUSTER_VIEW_BASIC", +"CLUSTER_VIEW_CONTINUOUS_BACKUP" +], +"enumDescriptions": [ +"CLUSTER_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.", +"BASIC server responses include all the relevant cluster details, excluding Cluster.ContinuousBackupInfo.EarliestRestorableTime and other view-specific fields. The default value.", +"CONTINUOUS_BACKUP response returns all the fields from BASIC plus the earliest restorable time if continuous backups are enabled. May increase latency." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Clusters in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Cluster.name field. Additionally, you can perform an aggregated list operation by specifying a value with the following format: * projects/{project}/locations/-", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, update succeeds even if cluster is not found. In that case, a new cluster is created and `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The name of the cluster resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} where the cluster ID segment should satisfy the regex expression `[a-z0-9-]+`. For more details see https://google.aip.dev/122. The prefix of the cluster resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Cluster resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"promote": { +"description": "Promotes a SECONDARY cluster. This turns down replication from the PRIMARY cluster and promotes a secondary cluster into its own standalone cluster. Imperative only.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:promote", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.promote", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:promote", +"request": { +"$ref": "PromoteClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "Creates a new Cluster in a given project and location, with a volume restored from the provided source, either a backup ID or a point-in-time and a source cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters:restore", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.restore", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clusters:restore", +"request": { +"$ref": "RestoreClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"switchover": { +"description": "Switches the roles of PRIMARY and SECONDARY clusters without any data loss. This promotes the SECONDARY cluster to PRIMARY and sets up the original PRIMARY cluster to replicate from this newly promoted cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:switchover", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.switchover", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:switchover", +"request": { +"$ref": "SwitchoverClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrades a single Cluster. Imperative only.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:upgrade", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the cluster.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:upgrade", +"request": { +"$ref": "UpgradeClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"create": { +"description": "Creates a new Instance in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"createsecondary": { +"description": "Creates a new SECONDARY Instance in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances:createsecondary", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.createsecondary", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/instances:createsecondary", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.clusters.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the Instance. If an etag is provided and does not match the current etag of the Instance, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"failover": { +"description": "Forces a Failover for a highly available instance. Failover promotes the HA standby instance as the new primary. Imperative only.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}:failover", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.failover", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:failover", +"request": { +"$ref": "FailoverInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The view of the instance to return.", +"enum": [ +"INSTANCE_VIEW_UNSPECIFIED", +"INSTANCE_VIEW_BASIC", +"INSTANCE_VIEW_FULL" +], +"enumDescriptions": [ +"INSTANCE_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.", +"BASIC server responses for a primary or read instance include all the relevant instance details, excluding the details of each node in the instance. The default value.", +"FULL response is equivalent to BASIC for primary instance (for now). For read pool instance, this includes details of each node in the pool." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getConnectionInfo": { +"description": "Get instance metadata used for a connection.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}/connectionInfo", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.instances.getConnectionInfo", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource. The required format is: projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/connectionInfo", +"response": { +"$ref": "ConnectionInfo" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"injectFault": { +"description": "Injects fault in an instance. Imperative only.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}:injectFault", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.injectFault", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:injectFault", +"request": { +"$ref": "InjectFaultRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Instances in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Instance.name field. Additionally, you can perform an aggregated list operation by specifying a value with one of the following formats: * projects/{project}/locations/-/clusters/- * projects/{project}/locations/{region}/clusters/-", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, update succeeds even if instance is not found. In that case, a new instance is created and `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The name of the instance resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id} where the cluster and instance ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the instance resource name is the name of the parent resource: * projects/{project}/locations/{region}/clusters/{cluster_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Instance resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restart": { +"description": "Restart an Instance in a cluster. Imperative only.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}:restart", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:restart", +"request": { +"$ref": "RestartInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"users": { +"methods": { +"create": { +"description": "Creates a new User in a given project, location, and cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.users.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"userId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/users", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single User.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users/{usersId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.clusters.users.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the User.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single User.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users/{usersId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.users.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the User.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Users in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.users.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListUsersRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/users", +"response": { +"$ref": "ListUsersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single User.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users/{usersId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.users.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. Allow missing fields in the update mask.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. Name of the resource in the form of projects/{project}/locations/{location}/cluster/{cluster}/users/{user}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the User resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "alloydb.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "alloydb.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"supportedDatabaseFlags": { +"methods": { +"list": { +"description": "Lists SupportedDatabaseFlags for a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/supportedDatabaseFlags", +"httpMethod": "GET", +"id": "alloydb.projects.locations.supportedDatabaseFlags.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. The required format is: * projects/{project}/locations/{location} Regardless of the parent specified here, as long it is contains a valid project and location, the service will return a static list of supported flags resources. Note that we do not yet support region-specific flags.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/supportedDatabaseFlags", +"response": { +"$ref": "ListSupportedDatabaseFlagsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241228", +"rootUrl": "https://alloydb.googleapis.com/", +"schemas": { +"AuthorizedNetwork": { +"description": "AuthorizedNetwork contains metadata for an authorized network.", +"id": "AuthorizedNetwork", +"properties": { +"cidrRange": { +"description": "CIDR range for one authorzied network of the instance.", +"type": "string" +} +}, +"type": "object" +}, +"AutomatedBackupPolicy": { +"description": "Message describing the user-specified automated backup policy. All fields in the automated backup policy are optional. Defaults for each field are provided if they are not set.", +"id": "AutomatedBackupPolicy", +"properties": { +"backupWindow": { +"description": "The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed. The backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it defaults to 1 hour.", +"format": "google-duration", +"type": "string" +}, +"enabled": { +"description": "Whether automated automated backups are enabled. If not set, defaults to true.", +"type": "boolean" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels to apply to backups created using this configuration.", +"type": "object" +}, +"location": { +"description": "The location where the backup will be stored. Currently, the only supported option is to store the backup in the same region as the cluster. If empty, defaults to the region of the cluster.", +"type": "string" +}, +"quantityBasedRetention": { +"$ref": "QuantityBasedRetention", +"description": "Quantity-based Backup retention policy to retain recent backups." +}, +"timeBasedRetention": { +"$ref": "TimeBasedRetention", +"description": "Time-based Backup retention policy." +}, +"weeklySchedule": { +"$ref": "WeeklySchedule", +"description": "Weekly schedule for the Backup." +} +}, +"type": "object" +}, +"Backup": { +"description": "Message describing Backup object", +"id": "Backup", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128", +"type": "object" +}, +"clusterName": { +"description": "Required. The full resource name of the backup source cluster (e.g., projects/{project}/locations/{region}/clusters/{cluster_id}).", +"type": "string" +}, +"clusterUid": { +"description": "Output only. The system-generated UID of the cluster which was used to create this resource.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"databaseVersion": { +"description": "Output only. The database engine major version of the cluster this backup was created from. Any restored cluster created from this backup will have the same database version.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Delete time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description of the backup.", +"type": "string" +}, +"displayName": { +"description": "User-settable and human-readable display name for the Backup.", +"type": "string" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the backup with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data." +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. The encryption information for the backup.", +"readOnly": true +}, +"etag": { +"description": "For Resource freshness validation (https://google.aip.dev/154)", +"type": "string" +}, +"expiryQuantity": { +"$ref": "QuantityBasedExpiry", +"description": "Output only. The QuantityBasedExpiry of the backup, specified by the backup's retention policy. Once the expiry quantity is over retention, the backup is eligible to be garbage collected.", +"readOnly": true +}, +"expiryTime": { +"description": "Output only. The time at which after the backup is eligible to be garbage collected. It is the duration specified by the backup's retention policy, added to the backup's create_time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Output only. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} where the cluster and backup ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the backup resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"readOnly": true, +"type": "string" +}, +"reconciling": { +"description": "Output only. Reconciling (https://google.aip.dev/128#reconciliation), if true, indicates that the service is actively updating the resource. This can happen due to user-triggered updates or system actions like failover or maintenance.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"sizeBytes": { +"description": "Output only. The size of the backup in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"The state of the backup is unknown.", +"The backup is ready.", +"The backup is creating.", +"The backup failed.", +"The backup is being deleted." +], +"readOnly": true, +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: ``` \"123/environment\": \"production\", \"123/costCenter\": \"marketing\" ```", +"type": "object" +}, +"type": { +"description": "The backup type, which suggests the trigger for the backup.", +"enum": [ +"TYPE_UNSPECIFIED", +"ON_DEMAND", +"AUTOMATED", +"CONTINUOUS" +], +"enumDescriptions": [ +"Backup Type is unknown.", +"ON_DEMAND backups that were triggered by the customer (e.g., not AUTOMATED).", +"AUTOMATED backups triggered by the automated backups scheduler pursuant to an automated backup policy.", +"CONTINUOUS backups triggered by the automated backups scheduler due to a continuous backup policy." +], +"type": "string" +}, +"uid": { +"description": "Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupSource": { +"description": "Message describing a BackupSource.", +"id": "BackupSource", +"properties": { +"backupName": { +"description": "Required. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id}", +"type": "string" +}, +"backupUid": { +"description": "Output only. The system-generated UID of the backup which was used to create this resource. The UID is generated when the backup is created, and it is retained until the backup is deleted.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ClientConnectionConfig": { +"description": "Client connection configuration", +"id": "ClientConnectionConfig", +"properties": { +"requireConnectors": { +"description": "Optional. Configuration to enforce connectors only (ex: AuthProxy) connections to the database.", +"type": "boolean" +}, +"sslConfig": { +"$ref": "SslConfig", +"description": "Optional. SSL configuration option for this instance." +} +}, +"type": "object" +}, +"CloudControl2SharedOperationsReconciliationOperationMetadata": { +"description": "Operation metadata returned by the CLH during resource state reconciliation.", +"id": "CloudControl2SharedOperationsReconciliationOperationMetadata", +"properties": { +"deleteResource": { +"deprecated": true, +"description": "DEPRECATED. Use exclusive_action instead.", +"type": "boolean" +}, +"exclusiveAction": { +"description": "Excluisive action returned by the CLH.", +"enum": [ +"UNKNOWN_REPAIR_ACTION", +"DELETE", +"RETRY" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"Unknown repair action.", +"The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.", +"This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." +], +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "A cluster is a collection of regional AlloyDB resources. It can include a primary instance and one or more read pool instances. All cluster resources share a storage layer, which scales as needed.", +"id": "Cluster", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128", +"type": "object" +}, +"automatedBackupPolicy": { +"$ref": "AutomatedBackupPolicy", +"description": "The automated backup policy for this cluster. If no policy is provided then the default policy will be used. If backups are supported for the cluster, the default policy takes one backup a day, has a backup window of 1 hour, and retains backups for 14 days. For more information on the defaults, consult the documentation for the message type." +}, +"backupSource": { +"$ref": "BackupSource", +"description": "Output only. Cluster created from backup.", +"readOnly": true +}, +"clusterType": { +"description": "Output only. The type of the cluster. This is an output-only field and it's populated at the Cluster creation time or the Cluster promotion time. The cluster type is determined by which RPC was used to create the cluster (i.e. `CreateCluster` vs. `CreateSecondaryCluster`", +"enum": [ +"CLUSTER_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the cluster is unknown.", +"Primary cluster that support read and write operations.", +"Secondary cluster that is replicating from another region. This only supports read." +], +"readOnly": true, +"type": "string" +}, +"continuousBackupConfig": { +"$ref": "ContinuousBackupConfig", +"description": "Optional. Continuous backup configuration for this cluster." +}, +"continuousBackupInfo": { +"$ref": "ContinuousBackupInfo", +"description": "Output only. Continuous backup properties for this cluster.", +"readOnly": true +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"databaseVersion": { +"description": "Optional. The database engine major version. This is an optional field and it is populated at the Cluster creation time. If a database version is not supplied at cluster creation time, then a default database version will be used.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"deleteTime": { +"description": "Output only. Delete time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "User-settable and human-readable display name for the Cluster.", +"type": "string" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the data disks and other persistent data resources of a cluster with a customer-managed encryption key (CMEK). When this field is not specified, the cluster will then use default encryption scheme to protect the user data." +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. The encryption information for the cluster.", +"readOnly": true +}, +"etag": { +"description": "For Resource freshness validation (https://google.aip.dev/154)", +"type": "string" +}, +"initialUser": { +"$ref": "UserPassword", +"description": "Input only. Initial user to setup during cluster creation. Required. If used in `RestoreCluster` this is ignored." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"maintenanceSchedule": { +"$ref": "MaintenanceSchedule", +"description": "Output only. The maintenance schedule for the cluster, generated for a specific rollout if a maintenance window is set.", +"readOnly": true +}, +"maintenanceUpdatePolicy": { +"$ref": "MaintenanceUpdatePolicy", +"description": "Optional. The maintenance update policy determines when to allow or deny updates." +}, +"migrationSource": { +"$ref": "MigrationSource", +"description": "Output only. Cluster created via DMS migration.", +"readOnly": true +}, +"name": { +"description": "Output only. The name of the cluster resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} where the cluster ID segment should satisfy the regex expression `[a-z0-9-]+`. For more details see https://google.aip.dev/122. The prefix of the cluster resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"readOnly": true, +"type": "string" +}, +"network": { +"deprecated": true, +"description": "Required. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: `projects/{project}/global/networks/{network_id}`. This is required to create a cluster. Deprecated, use network_config.network instead.", +"type": "string" +}, +"networkConfig": { +"$ref": "NetworkConfig" +}, +"primaryConfig": { +"$ref": "PrimaryConfig", +"description": "Output only. Cross Region replication config specific to PRIMARY cluster.", +"readOnly": true +}, +"pscConfig": { +"$ref": "PscConfig", +"description": "Optional. The configuration for Private Service Connect (PSC) for the cluster." +}, +"reconciling": { +"description": "Output only. Reconciling (https://google.aip.dev/128#reconciliation). Set to true if the current state of Cluster does not match the user's intended state, and the service is actively updating the resource to reconcile them. This can happen due to user-triggered updates or system actions like failover or maintenance.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"secondaryConfig": { +"$ref": "SecondaryConfig", +"description": "Cross Region replication config specific to SECONDARY cluster." +}, +"sslConfig": { +"$ref": "SslConfig", +"deprecated": true, +"description": "SSL configuration for this AlloyDB cluster." +}, +"state": { +"description": "Output only. The current serving state of the cluster.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"STOPPED", +"EMPTY", +"CREATING", +"DELETING", +"FAILED", +"BOOTSTRAPPING", +"MAINTENANCE", +"PROMOTING" +], +"enumDescriptions": [ +"The state of the cluster is unknown.", +"The cluster is active and running.", +"The cluster is stopped. All instances in the cluster are stopped. Customers can start a stopped cluster at any point and all their instances will come back to life with same names and IP resources. In this state, customer pays for storage. Associated backups could also be present in a stopped cluster.", +"The cluster is empty and has no associated resources. All instances, associated storage and backups have been deleted.", +"The cluster is being created.", +"The cluster is being deleted.", +"The creation of the cluster failed.", +"The cluster is bootstrapping with data from some other source. Direct mutations to the cluster (e.g. adding read pool) are not allowed.", +"The cluster is under maintenance. AlloyDB regularly performs maintenance and upgrades on customer clusters. Updates on the cluster are not allowed while the cluster is in this state.", +"The cluster is being promoted." +], +"readOnly": true, +"type": "string" +}, +"subscriptionType": { +"description": "Optional. Subscription type of the cluster.", +"enum": [ +"SUBSCRIPTION_TYPE_UNSPECIFIED", +"STANDARD", +"TRIAL" +], +"enumDescriptions": [ +"This is an unknown subscription type. By default, the subscription type is STANDARD.", +"Standard subscription.", +"Trial subscription." +], +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: ``` \"123/environment\": \"production\", \"123/costCenter\": \"marketing\" ```", +"type": "object" +}, +"trialMetadata": { +"$ref": "TrialMetadata", +"description": "Output only. Metadata for free trial clusters", +"readOnly": true +}, +"uid": { +"description": "Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpgradeDetails": { +"description": "Upgrade details of a cluster. This cluster can be primary or secondary.", +"id": "ClusterUpgradeDetails", +"properties": { +"clusterType": { +"description": "Cluster type which can either be primary or secondary.", +"enum": [ +"CLUSTER_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the cluster is unknown.", +"Primary cluster that support read and write operations.", +"Secondary cluster that is replicating from another region. This only supports read." +], +"type": "string" +}, +"databaseVersion": { +"description": "Database version of the cluster after the upgrade operation. This will be the target version if the upgrade was successful otherwise it remains the same as that before the upgrade operation.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"instanceUpgradeDetails": { +"description": "Upgrade details of the instances directly associated with this cluster.", +"items": { +"$ref": "InstanceUpgradeDetails" +}, +"type": "array" +}, +"name": { +"description": "Normalized name of the cluster", +"type": "string" +}, +"stageInfo": { +"description": "Array containing stage info associated with this cluster.", +"items": { +"$ref": "StageInfo" +}, +"type": "array" +}, +"upgradeStatus": { +"description": "Upgrade status of the cluster.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"ConnectionInfo": { +"description": "ConnectionInfo singleton resource. https://google.aip.dev/156", +"id": "ConnectionInfo", +"properties": { +"instanceUid": { +"description": "Output only. The unique ID of the Instance.", +"readOnly": true, +"type": "string" +}, +"ipAddress": { +"description": "Output only. The private network IP address for the Instance. This is the default IP for the instance and is always created (even if enable_public_ip is set). This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The name of the ConnectionInfo singleton resource, e.g.: projects/{project}/locations/{location}/clusters/*/instances/*/connectionInfo This field currently has no semantic meaning.", +"type": "string" +}, +"publicIpAddress": { +"description": "Output only. The public IP addresses for the Instance. This is available ONLY when enable_public_ip is set. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContinuousBackupConfig": { +"description": "ContinuousBackupConfig describes the continuous backups recovery configurations of a cluster.", +"id": "ContinuousBackupConfig", +"properties": { +"enabled": { +"description": "Whether ContinuousBackup is enabled.", +"type": "boolean" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data." +}, +"recoveryWindowDays": { +"description": "The number of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window. If not set, defaults to 14 days.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ContinuousBackupInfo": { +"description": "ContinuousBackupInfo describes the continuous backup properties of a cluster.", +"id": "ContinuousBackupInfo", +"properties": { +"earliestRestorableTime": { +"description": "Output only. The earliest restorable time that can be restored to. Output only field.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"enabledTime": { +"description": "Output only. When ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. The encryption information for the WALs and backups required for ContinuousBackup.", +"readOnly": true +}, +"schedule": { +"description": "Output only. Days of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ContinuousBackupSource": { +"description": "Message describing a ContinuousBackupSource.", +"id": "ContinuousBackupSource", +"properties": { +"cluster": { +"description": "Required. The source cluster from which to restore. This cluster must have continuous backup enabled for this operation to succeed. For the required format, see the comment on the Cluster.name field.", +"type": "string" +}, +"pointInTime": { +"description": "Required. The point in time to restore to.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CsvExportOptions": { +"description": "Options for exporting data in CSV format.", +"id": "CsvExportOptions", +"properties": { +"escapeCharacter": { +"description": "Optional. Specifies the character that should appear before a data character that needs to be escaped. The default is the same as quote character. The value of this argument has to be a character in Hex ASCII Code.", +"type": "string" +}, +"fieldDelimiter": { +"description": "Optional. Specifies the character that separates columns within each row (line) of the file. The default is comma. The value of this argument has to be a character in Hex ASCII Code.", +"type": "string" +}, +"quoteCharacter": { +"description": "Optional. Specifies the quoting character to be used when a data value is quoted. The default is double-quote. The value of this argument has to be a character in Hex ASCII Code.", +"type": "string" +}, +"selectQuery": { +"description": "Required. The SELECT query used to extract the data.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionConfig": { +"description": "EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key).", +"id": "EncryptionConfig", +"properties": { +"kmsKeyName": { +"description": "The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]", +"type": "string" +} +}, +"type": "object" +}, +"EncryptionInfo": { +"description": "EncryptionInfo describes the encryption information of a cluster or a backup.", +"id": "EncryptionInfo", +"properties": { +"encryptionType": { +"description": "Output only. Type of encryption.", +"enum": [ +"TYPE_UNSPECIFIED", +"GOOGLE_DEFAULT_ENCRYPTION", +"CUSTOMER_MANAGED_ENCRYPTION" +], +"enumDescriptions": [ +"Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.", +"The data is encrypted at rest with a key that is fully managed by Google. No key version will be populated. This is the default state.", +"The data is encrypted at rest with a key that is managed by the customer. KMS key versions will be populated." +], +"readOnly": true, +"type": "string" +}, +"kmsKeyVersions": { +"description": "Output only. Cloud KMS key versions that are being used to protect the database or the backup.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ExportClusterRequest": { +"description": "Export cluster request.", +"id": "ExportClusterRequest", +"properties": { +"csvExportOptions": { +"$ref": "CsvExportOptions", +"description": "Options for exporting data in CSV format. Required field to be set for CSV file type." +}, +"database": { +"description": "Required. Name of the database where the export command will be executed. Note - Value provided should be the same as expected from `SELECT current_database();` and NOT as a resource reference.", +"type": "string" +}, +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Required. Option to export data to cloud storage." +}, +"sqlExportOptions": { +"$ref": "SqlExportOptions", +"description": "Options for exporting data in SQL format. Required field to be set for SQL file type." +} +}, +"type": "object" +}, +"ExportClusterResponse": { +"description": "Response of export cluster rpc.", +"id": "ExportClusterResponse", +"properties": { +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Required. Option to export data to cloud storage." +} +}, +"type": "object" +}, +"FailoverInstanceRequest": { +"description": "Message for triggering failover on an Instance", +"id": "FailoverInstanceRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "Destination for Export. Export will be done to cloud storage.", +"id": "GcsDestination", +"properties": { +"uri": { +"description": "Required. The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form `gs://bucketName/fileName`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeTimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "GoogleTypeTimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"InjectFaultRequest": { +"description": "Message for triggering fault injection on an instance", +"id": "InjectFaultRequest", +"properties": { +"faultType": { +"description": "Required. The type of fault to be injected in an instance.", +"enum": [ +"FAULT_TYPE_UNSPECIFIED", +"STOP_VM" +], +"enumDescriptions": [ +"The fault type is unknown.", +"Stop the VM" +], +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"Instance": { +"description": "An Instance is a computing unit that an end customer can connect to. It's the main unit of computing resources in AlloyDB.", +"id": "Instance", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128", +"type": "object" +}, +"availabilityType": { +"description": "Availability type of an Instance. If empty, defaults to REGIONAL for primary instances. For read pools, availability_type is always UNSPECIFIED. Instances in the read pools are evenly distributed across available zones within the region (i.e. read pools with more than one node will have a node in at least two zones).", +"enum": [ +"AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL" +], +"enumDescriptions": [ +"This is an unknown Availability type.", +"Zonal available instance.", +"Regional (or Highly) available instance." +], +"type": "string" +}, +"clientConnectionConfig": { +"$ref": "ClientConnectionConfig", +"description": "Optional. Client connection specific configurations" +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"databaseFlags": { +"additionalProperties": { +"type": "string" +}, +"description": "Database flags. Set at the instance level. They are copied from the primary instance on secondary instance creation. Flags that have restrictions default to the value at primary instance on read instances during creation. Read instances can set new flags or override existing flags that are relevant for reads, for example, for enabling columnar cache on a read instance. Flags set on read instance might or might not be present on the primary instance. This is a list of \"key\": \"value\" pairs. \"key\": The name of the flag. These flags are passed at instance setup time, so include both server options and system variables for Postgres. Flags are specified with underscores, not hyphens. \"value\": The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.", +"type": "object" +}, +"deleteTime": { +"description": "Output only. Delete time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "User-settable and human-readable display name for the Instance.", +"type": "string" +}, +"etag": { +"description": "For Resource freshness validation (https://google.aip.dev/154)", +"type": "string" +}, +"gceZone": { +"description": "The Compute Engine zone that the instance should serve from, per https://cloud.google.com/compute/docs/regions-zones This can ONLY be specified for ZONAL instances. If present for a REGIONAL instance, an error will be thrown. If this is absent for a ZONAL instance, instance is created in a random zone with available capacity.", +"type": "string" +}, +"instanceType": { +"description": "Required. The type of the instance. Specified at creation time.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"PRIMARY", +"READ_POOL", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the instance is unknown.", +"PRIMARY instances support read and write operations.", +"READ POOL instances support read operations only. Each read pool instance consists of one or more homogeneous nodes. * Read pool of size 1 can only have zonal availability. * Read pools with node count of 2 or more can have regional availability (nodes are present in 2 or more zones in a region).", +"SECONDARY instances support read operations only. SECONDARY instance is a cross-region read replica" +], +"type": "string" +}, +"ipAddress": { +"description": "Output only. The IP address for the Instance. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"machineConfig": { +"$ref": "MachineConfig", +"description": "Configurations for the machines that host the underlying database engine." +}, +"name": { +"description": "Output only. The name of the instance resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id} where the cluster and instance ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the instance resource name is the name of the parent resource: * projects/{project}/locations/{region}/clusters/{cluster_id}", +"readOnly": true, +"type": "string" +}, +"networkConfig": { +"$ref": "InstanceNetworkConfig", +"description": "Optional. Instance-level network configuration." +}, +"nodes": { +"description": "Output only. List of available read-only VMs in this instance, including the standby for a PRIMARY instance.", +"items": { +"$ref": "Node" +}, +"readOnly": true, +"type": "array" +}, +"outboundPublicIpAddresses": { +"description": "Output only. All outbound public IP addresses configured for the instance.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"pscInstanceConfig": { +"$ref": "PscInstanceConfig", +"description": "Optional. The configuration for Private Service Connect (PSC) for the instance." +}, +"publicIpAddress": { +"description": "Output only. The public IP addresses for the Instance. This is available ONLY when enable_public_ip is set. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +}, +"queryInsightsConfig": { +"$ref": "QueryInsightsInstanceConfig", +"description": "Configuration for query insights." +}, +"readPoolConfig": { +"$ref": "ReadPoolConfig", +"description": "Read pool instance configuration. This is required if the value of instanceType is READ_POOL." +}, +"reconciling": { +"description": "Output only. Reconciling (https://google.aip.dev/128#reconciliation). Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating the resource to reconcile them. This can happen due to user-triggered updates or system actions like failover or maintenance.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current serving state of the instance.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"STOPPED", +"CREATING", +"DELETING", +"MAINTENANCE", +"FAILED", +"BOOTSTRAPPING", +"PROMOTING" +], +"enumDescriptions": [ +"The state of the instance is unknown.", +"The instance is active and running.", +"The instance is stopped. Instance name and IP resources are preserved.", +"The instance is being created.", +"The instance is being deleted.", +"The instance is down for maintenance.", +"The creation of the instance failed or a fatal error occurred during an operation on the instance. Note: Instances in this state would tried to be auto-repaired. And Customers should be able to restart, update or delete these instances.", +"Index 7 is used in the producer apis for ROLLED_BACK state. Keeping that index unused in case that state also needs to exposed via consumer apis in future. The instance has been configured to sync data from some other source.", +"The instance is being promoted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"writableNode": { +"$ref": "Node", +"description": "Output only. This is set for the read-write VM of the PRIMARY instance only.", +"readOnly": true +} +}, +"type": "object" +}, +"InstanceNetworkConfig": { +"description": "Metadata related to instance-level network configuration.", +"id": "InstanceNetworkConfig", +"properties": { +"authorizedExternalNetworks": { +"description": "Optional. A list of external network authorized to access this instance.", +"items": { +"$ref": "AuthorizedNetwork" +}, +"type": "array" +}, +"enableOutboundPublicIp": { +"description": "Optional. Enabling an outbound public IP address to support a database server sending requests out into the internet.", +"type": "boolean" +}, +"enablePublicIp": { +"description": "Optional. Enabling public ip for the instance.", +"type": "boolean" +} +}, +"type": "object" +}, +"InstanceUpgradeDetails": { +"description": "Details regarding the upgrade of instaces associated with a cluster.", +"id": "InstanceUpgradeDetails", +"properties": { +"instanceType": { +"description": "Instance type.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"PRIMARY", +"READ_POOL", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the instance is unknown.", +"PRIMARY instances support read and write operations.", +"READ POOL instances support read operations only. Each read pool instance consists of one or more homogeneous nodes. * Read pool of size 1 can only have zonal availability. * Read pools with node count of 2 or more can have regional availability (nodes are present in 2 or more zones in a region).", +"SECONDARY instances support read operations only. SECONDARY instance is a cross-region read replica" +], +"type": "string" +}, +"name": { +"description": "Normalized name of the instance.", +"type": "string" +}, +"upgradeStatus": { +"description": "Upgrade status of the instance.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"IntegerRestrictions": { +"description": "Restrictions on INTEGER type values.", +"id": "IntegerRestrictions", +"properties": { +"maxValue": { +"description": "The maximum value that can be specified, if applicable.", +"format": "int64", +"type": "string" +}, +"minValue": { +"description": "The minimum value that can be specified, if applicable.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "Message for response to listing Backups", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "The list of Backup", +"items": { +"$ref": "Backup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListClustersResponse": { +"description": "Message for response to listing Clusters", +"id": "ListClustersResponse", +"properties": { +"clusters": { +"description": "The list of Cluster", +"items": { +"$ref": "Cluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Message for response to listing Instances", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "The list of Instance", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSupportedDatabaseFlagsResponse": { +"description": "Message for response to listing SupportedDatabaseFlags.", +"id": "ListSupportedDatabaseFlagsResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"supportedDatabaseFlags": { +"description": "The list of SupportedDatabaseFlags.", +"items": { +"$ref": "SupportedDatabaseFlag" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsersResponse": { +"description": "Message for response to listing Users", +"id": "ListUsersResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"users": { +"description": "The list of User", +"items": { +"$ref": "User" +}, +"type": "array" +} +}, +"type": "object" +}, +"MachineConfig": { +"description": "MachineConfig describes the configuration of a machine.", +"id": "MachineConfig", +"properties": { +"cpuCount": { +"description": "The number of CPU's in the VM instance.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"MaintenanceSchedule": { +"description": "MaintenanceSchedule stores the maintenance schedule generated from the MaintenanceUpdatePolicy, once a maintenance rollout is triggered, if MaintenanceWindow is set, and if there is no conflicting DenyPeriod. The schedule is cleared once the update takes place. This field cannot be manually changed; modify the MaintenanceUpdatePolicy instead.", +"id": "MaintenanceSchedule", +"properties": { +"startTime": { +"description": "Output only. The scheduled start time for the maintenance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceUpdatePolicy": { +"description": "MaintenanceUpdatePolicy defines the policy for system updates.", +"id": "MaintenanceUpdatePolicy", +"properties": { +"maintenanceWindows": { +"description": "Preferred windows to perform maintenance. Currently limited to 1.", +"items": { +"$ref": "MaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow specifies a preferred day and time for maintenance.", +"id": "MaintenanceWindow", +"properties": { +"day": { +"description": "Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"startTime": { +"$ref": "GoogleTypeTimeOfDay", +"description": "Preferred time to start the maintenance operation on the specified day. Maintenance will start within 1 hour of this time." +} +}, +"type": "object" +}, +"MigrationSource": { +"description": "Subset of the source instance configuration that is available when reading the cluster resource.", +"id": "MigrationSource", +"properties": { +"hostPort": { +"description": "Output only. The host and port of the on-premises instance in host:port format", +"readOnly": true, +"type": "string" +}, +"referenceId": { +"description": "Output only. Place holder for the external source identifier(e.g DMS job name) that created the cluster.", +"readOnly": true, +"type": "string" +}, +"sourceType": { +"description": "Output only. Type of migration source.", +"enum": [ +"MIGRATION_SOURCE_TYPE_UNSPECIFIED", +"DMS" +], +"enumDescriptions": [ +"Migration source is unknown.", +"DMS source means the cluster was created via DMS migration job." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Metadata related to network configuration.", +"id": "NetworkConfig", +"properties": { +"allocatedIpRange": { +"description": "Optional. Name of the allocated IP range for the private IP AlloyDB cluster, for example: \"google-managed-services-default\". If set, the instance IPs for this cluster will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. Field name is intended to be consistent with Cloud SQL.", +"type": "string" +}, +"network": { +"description": "Optional. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: `projects/{project_number}/global/networks/{network_id}`. This is required to create a cluster.", +"type": "string" +} +}, +"type": "object" +}, +"Node": { +"description": "Details of a single node in the instance. Nodes in an AlloyDB instance are ephemereal, they can change during update, failover, autohealing and resize operations.", +"id": "Node", +"properties": { +"id": { +"description": "Output only. The identifier of the VM e.g. \"test-read-0601-407e52be-ms3l\".", +"readOnly": true, +"type": "string" +}, +"ip": { +"description": "Output only. The private IP address of the VM e.g. \"10.57.0.34\".", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Determined by state of the compute VM and postgres-service health. Compute VM state can have values listed in https://cloud.google.com/compute/docs/instances/instance-life-cycle and postgres-service health can have values: HEALTHY and UNHEALTHY.", +"readOnly": true, +"type": "string" +}, +"zoneId": { +"description": "Output only. The Compute Engine zone of the VM e.g. \"us-central1-b\".", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrimaryConfig": { +"description": "Configuration for the primary cluster. It has the list of clusters that are replicating from this cluster. This should be set if and only if the cluster is of type PRIMARY.", +"id": "PrimaryConfig", +"properties": { +"secondaryClusterNames": { +"description": "Output only. Names of the clusters that are replicating from this cluster.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"PromoteClusterRequest": { +"description": "Message for promoting a Cluster", +"id": "PromoteClusterRequest", +"properties": { +"etag": { +"description": "Optional. The current etag of the Cluster. If an etag is provided and does not match the current etag of the Cluster, deletion will be blocked and an ABORTED error will be returned.", +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"PscConfig": { +"description": "PscConfig contains PSC related configuration at a cluster level.", +"id": "PscConfig", +"properties": { +"pscEnabled": { +"description": "Optional. Create an instance that allows connections from Private Service Connect endpoints to the instance.", +"type": "boolean" +} +}, +"type": "object" +}, +"PscInstanceConfig": { +"description": "PscInstanceConfig contains PSC related configuration at an instance level.", +"id": "PscInstanceConfig", +"properties": { +"allowedConsumerProjects": { +"description": "Optional. List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pscDnsName": { +"description": "Output only. The DNS name of the instance for PSC connectivity. Name convention: ...alloydb-psc.goog", +"readOnly": true, +"type": "string" +}, +"serviceAttachmentLink": { +"description": "Output only. The service attachment created when Private Service Connect (PSC) is enabled for the instance. The name of the resource will be in the format of `projects//regions//serviceAttachments/`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"QuantityBasedExpiry": { +"description": "A backup's position in a quantity-based retention queue, of backups with the same source cluster and type, with length, retention, specified by the backup's retention policy. Once the position is greater than the retention, the backup is eligible to be garbage collected. Example: 5 backups from the same source cluster and type with a quantity-based retention of 3 and denoted by backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3)", +"id": "QuantityBasedExpiry", +"properties": { +"retentionCount": { +"description": "Output only. The backup's position among its backups with the same source cluster and type, by descending chronological order create time(i.e. newest first).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"totalRetentionCount": { +"description": "Output only. The length of the quantity-based queue, specified by the backup's retention policy.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"QuantityBasedRetention": { +"description": "A quantity based policy specifies that a certain number of the most recent successful backups should be retained.", +"id": "QuantityBasedRetention", +"properties": { +"count": { +"description": "The number of backups to retain.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"QueryInsightsInstanceConfig": { +"description": "QueryInsights Instance specific configuration.", +"id": "QueryInsightsInstanceConfig", +"properties": { +"queryPlansPerMinute": { +"description": "Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid.", +"format": "uint32", +"type": "integer" +}, +"queryStringLength": { +"description": "Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid.", +"format": "uint32", +"type": "integer" +}, +"recordApplicationTags": { +"description": "Record application tags for an instance. This flag is turned \"on\" by default.", +"type": "boolean" +}, +"recordClientAddress": { +"description": "Record client address for an instance. Client address is PII information. This flag is turned \"on\" by default.", +"type": "boolean" +} +}, +"type": "object" +}, +"ReadPoolConfig": { +"description": "Configuration for a read pool instance.", +"id": "ReadPoolConfig", +"properties": { +"nodeCount": { +"description": "Read capacity, i.e. number of nodes in a read pool instance.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"RestartInstanceRequest": { +"id": "RestartInstanceRequest", +"properties": { +"nodeIds": { +"description": "Optional. Full name of the nodes as obtained from INSTANCE_VIEW_FULL to restart upon. Applicable only to read instances.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"RestoreClusterRequest": { +"description": "Message for restoring a Cluster from a backup or another cluster at a given point in time.", +"id": "RestoreClusterRequest", +"properties": { +"backupSource": { +"$ref": "BackupSource", +"description": "Backup source." +}, +"cluster": { +"$ref": "Cluster", +"description": "Required. The resource being created" +}, +"clusterId": { +"description": "Required. ID of the requesting object.", +"type": "string" +}, +"continuousBackupSource": { +"$ref": "ContinuousBackupSource", +"description": "ContinuousBackup source. Continuous backup needs to be enabled in the source cluster for this operation to succeed." +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"SecondaryConfig": { +"description": "Configuration information for the secondary cluster. This should be set if and only if the cluster is of type SECONDARY.", +"id": "SecondaryConfig", +"properties": { +"primaryClusterName": { +"description": "The name of the primary cluster name with the format: * projects/{project}/locations/{region}/clusters/{cluster_id}", +"type": "string" +} +}, +"type": "object" +}, +"SqlExportOptions": { +"description": "Options for exporting data in SQL format.", +"id": "SqlExportOptions", +"properties": { +"cleanTargetObjects": { +"description": "Optional. If true, output commands to DROP all the dumped database objects prior to outputting the commands for creating them.", +"type": "boolean" +}, +"ifExistTargetObjects": { +"description": "Optional. If true, use DROP ... IF EXISTS commands to check for the object's existence before dropping it in clean_target_objects mode.", +"type": "boolean" +}, +"schemaOnly": { +"description": "Optional. If true, only export the schema.", +"type": "boolean" +}, +"tables": { +"description": "Optional. Tables to export from.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SslConfig": { +"description": "SSL configuration.", +"id": "SslConfig", +"properties": { +"caSource": { +"description": "Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is supported currently, and is the default value.", +"enum": [ +"CA_SOURCE_UNSPECIFIED", +"CA_SOURCE_MANAGED" +], +"enumDescriptions": [ +"Certificate Authority (CA) source not specified. Defaults to CA_SOURCE_MANAGED.", +"Certificate Authority (CA) managed by the AlloyDB Cluster." +], +"type": "string" +}, +"sslMode": { +"description": "Optional. SSL mode. Specifies client-server SSL/TLS connection behavior.", +"enum": [ +"SSL_MODE_UNSPECIFIED", +"SSL_MODE_ALLOW", +"SSL_MODE_REQUIRE", +"SSL_MODE_VERIFY_CA", +"ALLOW_UNENCRYPTED_AND_ENCRYPTED", +"ENCRYPTED_ONLY" +], +"enumDeprecated": [ +false, +true, +true, +true, +false, +false +], +"enumDescriptions": [ +"SSL mode is not specified. Defaults to ENCRYPTED_ONLY.", +"SSL connections are optional. CA verification not enforced.", +"SSL connections are required. CA verification not enforced. Clients may use locally self-signed certificates (default psql client behavior).", +"SSL connections are required. CA verification enforced. Clients must have certificates signed by a Cluster CA, for example, using GenerateClientCertificate.", +"SSL connections are optional. CA verification not enforced.", +"SSL connections are required. CA verification not enforced." +], +"type": "string" +} +}, +"type": "object" +}, +"StageInfo": { +"description": "Stage information for different stages in the upgrade process.", +"id": "StageInfo", +"properties": { +"logsUrl": { +"description": "logs_url is the URL for the logs associated with a stage if that stage has logs. Right now, only three stages have logs: ALLOYDB_PRECHECK, PG_UPGRADE_CHECK, PRIMARY_INSTANCE_UPGRADE.", +"type": "string" +}, +"stage": { +"description": "The stage.", +"enum": [ +"STAGE_UNSPECIFIED", +"ALLOYDB_PRECHECK", +"PG_UPGRADE_CHECK", +"PREPARE_FOR_UPGRADE", +"PRIMARY_INSTANCE_UPGRADE", +"READ_POOL_INSTANCES_UPGRADE", +"ROLLBACK", +"CLEANUP" +], +"enumDescriptions": [ +"Unspecified stage.", +"Pre-upgrade custom checks, not covered by pg_upgrade.", +"Pre-upgrade pg_upgrade checks.", +"Clone the original cluster.", +"Upgrade the primary instance(downtime).", +"This stage is read pool upgrade.", +"Rollback in case of critical failures.", +"Cleanup." +], +"type": "string" +}, +"status": { +"description": "Status of the stage.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration": { +"description": "Configuration for availability of database instance", +"id": "StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration", +"properties": { +"automaticFailoverRoutingConfigured": { +"description": "Checks for existence of (multi-cluster) routing configuration that allows automatic failover to a different zone/region in case of an outage. Applicable to Bigtable resources.", +"type": "boolean" +}, +"availabilityType": { +"description": "Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", +"enum": [ +"AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL", +"MULTI_REGIONAL", +"AVAILABILITY_TYPE_OTHER" +], +"enumDescriptions": [ +"", +"Zonal available instance.", +"Regional available instance.", +"Multi regional instance", +"For rest of the other category" +], +"type": "string" +}, +"crossRegionReplicaConfigured": { +"description": "Checks for resources that are configured to have redundancy, and ongoing replication across regions", +"type": "boolean" +}, +"externalReplicaConfigured": { +"type": "boolean" +}, +"promotableReplicaConfigured": { +"type": "boolean" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainBackupConfiguration": { +"description": "Configuration for automatic backups", +"id": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", +"properties": { +"automatedBackupEnabled": { +"description": "Whether customer visible automated backups are enabled on the instance.", +"type": "boolean" +}, +"backupRetentionSettings": { +"$ref": "StorageDatabasecenterPartnerapiV1mainRetentionSettings", +"description": "Backup retention settings." +}, +"pointInTimeRecoveryEnabled": { +"description": "Whether point-in-time recovery is enabled. This is optional field, if the database service does not have this feature or metadata is not available in control plane, this can be omitted.", +"type": "boolean" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainBackupRun": { +"description": "A backup run.", +"id": "StorageDatabasecenterPartnerapiV1mainBackupRun", +"properties": { +"endTime": { +"description": "The time the backup operation completed. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"error": { +"$ref": "StorageDatabasecenterPartnerapiV1mainOperationError", +"description": "Information about why the backup operation failed. This is only present if the run has the FAILED status. OPTIONAL" +}, +"startTime": { +"description": "The time the backup operation started. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"status": { +"description": "The status of this run. REQUIRED", +"enum": [ +"STATUS_UNSPECIFIED", +"SUCCESSFUL", +"FAILED" +], +"enumDescriptions": [ +"", +"The backup was successful.", +"The backup was unsuccessful." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainCompliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "StorageDatabasecenterPartnerapiV1mainCompliance", +"properties": { +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainCustomMetadataData": { +"description": "Any custom metadata associated with the resource. e.g. A spanner instance can have multiple databases with its own unique metadata. Information for these individual databases can be captured in custom metadata data", +"id": "StorageDatabasecenterPartnerapiV1mainCustomMetadataData", +"properties": { +"internalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration.", +"items": { +"$ref": "StorageDatabasecenterPartnerapiV1mainInternalResourceMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed": { +"description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed", +"properties": { +"feedTimestamp": { +"description": "Required. Timestamp when feed is generated.", +"format": "google-datetime", +"type": "string" +}, +"feedType": { +"description": "Required. Type feed to be ingested into condor", +"enum": [ +"FEEDTYPE_UNSPECIFIED", +"RESOURCE_METADATA", +"OBSERVABILITY_DATA", +"SECURITY_FINDING_DATA", +"RECOMMENDATION_SIGNAL_DATA" +], +"enumDescriptions": [ +"", +"Database resource metadata feed from control plane", +"Database resource monitoring data", +"Database resource security health signal data", +"Database resource recommendation signal data" +], +"type": "string" +}, +"observabilityMetricData": { +"$ref": "StorageDatabasecenterPartnerapiV1mainObservabilityMetricData" +}, +"recommendationSignalData": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData" +}, +"resourceHealthSignalData": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData" +}, +"resourceId": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"deprecated": true, +"description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." +}, +"resourceMetadata": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData": { +"description": "Common model for database resource health signal data.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Any other additional metadata", +"type": "object" +}, +"compliance": { +"description": "Industry standards associated with this signal; if this signal is an issue, that could be a violation of the associated industry standard(s). For example, AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database resource does not have automated backup enable, it will violate these following industry standards.", +"items": { +"$ref": "StorageDatabasecenterPartnerapiV1mainCompliance" +}, +"type": "array" +}, +"description": { +"description": "Description associated with signal", +"type": "string" +}, +"eventTime": { +"description": "Required. The last time at which the event described by this signal took place", +"format": "google-datetime", +"type": "string" +}, +"externalUri": { +"description": "The external-uri of the signal, using which more information about this signal can be obtained. In GCP, this will take user to SCC page to get more details about signals.", +"type": "string" +}, +"name": { +"description": "Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE, SQL_LOG_ERROR_VERBOSITY etc.", +"type": "string" +}, +"provider": { +"description": "Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"resourceContainer": { +"description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalClass": { +"description": "Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.", +"enum": [ +"CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"ERROR" +], +"enumDescriptions": [ +"Unspecified signal class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality." +], +"type": "string" +}, +"signalId": { +"description": "Required. Unique identifier for the signal. This is an unique id which would be mainatined by partner to identify a signal.", +"type": "string" +}, +"signalSeverity": { +"description": "The severity of the signal, such as if it's a HIGH or LOW severity.", +"enum": [ +"SIGNAL_SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"A critical vulnerability is easily discoverable by an external actor, exploitable.", +"A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities.", +"A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually gain access and the ability to execute arbitrary code or exfiltrate data.", +"A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment." +], +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `LOGGING_MOST_ERRORS`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +}, +"state": { +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"RESOLVED", +"MUTED" +], +"enumDescriptions": [ +"Unspecified state.", +"The signal requires attention and has not been addressed yet.", +"The signal has been fixed, triaged as a non-issue or otherwise addressed and is no longer active.", +"The signal has been muted." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceId": { +"description": "DatabaseResourceId will serve as primary key for any resource ingestion event.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"properties": { +"provider": { +"description": "Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"providerDescription": { +"description": "Optional. Needs to be used only when the provider is PROVIDER_OTHER.", +"type": "string" +}, +"resourceType": { +"description": "Required. The type of resource this ID is identifying. Ex redis.googleapis.com/Instance, redis.googleapis.com/Cluster, alloydb.googleapis.com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance, spanner.googleapis.com/Database, firestore.googleapis.com/Database, sqladmin.googleapis.com/Instance, bigtableadmin.googleapis.com/Cluster, bigtableadmin.googleapis.com/Instance REQUIRED Please refer go/condor-common-datamodel", +"type": "string" +}, +"uniqueId": { +"description": "Required. A service-local token that distinguishes this resource from other resources within the same service.", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata": { +"description": "Common model for database resource instance metadata. Next ID: 23", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata", +"properties": { +"availabilityConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration", +"description": "Availability configuration for this instance" +}, +"backupConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", +"description": "Backup configuration for this instance" +}, +"backupRun": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupRun", +"description": "Latest backup run information for this instance" +}, +"creationTime": { +"description": "The creation time of the resource, i.e. the time when resource is created and recorded in partner service.", +"format": "google-datetime", +"type": "string" +}, +"currentState": { +"description": "Current state of the instance.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"customMetadata": { +"$ref": "StorageDatabasecenterPartnerapiV1mainCustomMetadataData", +"description": "Any custom metadata associated with the resource" +}, +"edition": { +"description": "Optional. Edition represents whether the instance is ENTERPRISE or ENTERPRISE_PLUS. This information is core to Cloud SQL only and is used to identify the edition of the instance.", +"enum": [ +"EDITION_UNSPECIFIED", +"EDITION_ENTERPRISE", +"EDITION_ENTERPRISE_PLUS" +], +"enumDescriptions": [ +"Default, to make it consistent with instance edition enum.", +"Represents the enterprise edition.", +"Represents the enterprise plus edition." +], +"type": "string" +}, +"entitlements": { +"description": "Entitlements associated with the resource", +"items": { +"$ref": "StorageDatabasecenterPartnerapiV1mainEntitlement" +}, +"type": "array" +}, +"expectedState": { +"description": "The state that the instance is expected to be in. For example, an instance state can transition to UNHEALTHY due to wrong patch update, while the expected state will remain at the HEALTHY.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"id": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"description": "Required. Unique identifier for a Database resource" +}, +"instanceType": { +"description": "The type of the instance. Specified at creation time.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"SUB_RESOURCE_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY", +"READ_REPLICA", +"OTHER", +"SUB_RESOURCE_TYPE_PRIMARY", +"SUB_RESOURCE_TYPE_SECONDARY", +"SUB_RESOURCE_TYPE_READ_REPLICA", +"SUB_RESOURCE_TYPE_OTHER" +], +"enumDeprecated": [ +true, +false, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories." +], +"type": "string" +}, +"location": { +"description": "The resource location. REQUIRED", +"type": "string" +}, +"machineConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainMachineConfiguration", +"description": "Machine configuration for this resource." +}, +"primaryResourceId": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"description": "Identifier for this resource's immediate parent/primary resource if the current resource is a replica or derived form of another Database resource. Else it would be NULL. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional." +}, +"primaryResourceLocation": { +"description": "Primary resource location. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional.", +"type": "string" +}, +"product": { +"$ref": "StorageDatabasecenterProtoCommonProduct", +"description": "The product this resource represents." +}, +"resourceContainer": { +"description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Different from DatabaseResourceId.unique_id, a resource name can be reused over time. That is, after a resource named \"ABC\" is deleted, the name \"ABC\" can be used to to create a new resource within the same source. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"tagsSet": { +"$ref": "StorageDatabasecenterPartnerapiV1mainTags", +"description": "Optional. Tags associated with this resources." +}, +"updationTime": { +"description": "The time at which the resource was updated and recorded at partner service.", +"format": "google-datetime", +"type": "string" +}, +"userLabelSet": { +"$ref": "StorageDatabasecenterPartnerapiV1mainUserLabels", +"description": "User-provided labels associated with the resource" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData": { +"description": "Common model for database resource recommendation signal data.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Any other additional metadata specific to recommendation", +"type": "object" +}, +"lastRefreshTime": { +"description": "Required. last time recommendationw as refreshed", +"format": "google-datetime", +"type": "string" +}, +"recommendationState": { +"description": "Required. Recommendation state", +"enum": [ +"UNSPECIFIED", +"ACTIVE", +"CLAIMED", +"SUCCEEDED", +"FAILED", +"DISMISSED" +], +"enumDescriptions": [ +"", +"Recommendation is active and can be applied. ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in claimed state. Recommendations content is immutable and cannot be updated by Google. CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in succeeded state. Recommendations content is immutable and cannot be updated by Google. SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in failed state. Recommendations content is immutable and cannot be updated by Google. FAILED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in dismissed state. Recommendation content can be updated by Google. DISMISSED recommendations can be marked as ACTIVE." +], +"type": "string" +}, +"recommender": { +"description": "Required. Name of recommendation. Examples: organizations/1234/locations/us-central1/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/9876", +"type": "string" +}, +"recommenderId": { +"description": "Required. ID of recommender. Examples: \"google.cloudsql.instance.PerformanceRecommender\"", +"type": "string" +}, +"recommenderSubtype": { +"description": "Required. Contains an identifier for a subtype of recommendations produced for the same recommender. Subtype is a function of content and impact, meaning a new subtype might be added when significant changes to `content` or `primary_impact.category` are introduced. See the Recommenders section to see a list of subtypes for a given Recommender. Examples: For recommender = \"google.cloudsql.instance.PerformanceRecommender\", recommender_subtype can be \"MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE\"/\"POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE\"", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `SIGNAL_TYPE_IDLE`, `SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainEntitlement": { +"description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", +"id": "StorageDatabasecenterPartnerapiV1mainEntitlement", +"properties": { +"entitlementState": { +"description": "The current state of user's accessibility to a feature/benefit.", +"enum": [ +"ENTITLEMENT_STATE_UNSPECIFIED", +"ENTITLED", +"REVOKED" +], +"enumDescriptions": [ +"", +"User is entitled to a feature/benefit, but whether it has been successfully provisioned is decided by provisioning state.", +"User is entitled to a feature/benefit, but it was requested to be revoked. Whether the revoke has been successful is decided by provisioning state." +], +"type": "string" +}, +"type": { +"description": "An enum that represents the type of this entitlement.", +"enum": [ +"ENTITLEMENT_TYPE_UNSPECIFIED", +"GEMINI" +], +"enumDescriptions": [ +"", +"The root entitlement representing Gemini package ownership." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainInternalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration settings. Similarly bigtable can have multiple clusters within same bigtable instance.", +"id": "StorageDatabasecenterPartnerapiV1mainInternalResourceMetadata", +"properties": { +"backupConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", +"description": "Backup configuration for this database" +}, +"backupRun": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupRun", +"description": "Information about the last backup attempt for this database" +}, +"product": { +"$ref": "StorageDatabasecenterProtoCommonProduct" +}, +"resourceId": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId" +}, +"resourceName": { +"description": "Required. internal resource name for spanner this will be database name e.g.\"spanner.googleapis.com/projects/123/abc/instances/inst1/databases/db1\"", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainMachineConfiguration": { +"description": "MachineConfiguration describes the configuration of a machine specific to Database Resource.", +"id": "StorageDatabasecenterPartnerapiV1mainMachineConfiguration", +"properties": { +"cpuCount": { +"deprecated": true, +"description": "The number of CPUs. Deprecated. Use vcpu_count instead. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int32", +"type": "integer" +}, +"memorySizeInBytes": { +"description": "Memory size in bytes. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int64", +"type": "string" +}, +"shardCount": { +"description": "Optional. Number of shards (if applicable).", +"format": "int32", +"type": "integer" +}, +"vcpuCount": { +"description": "Optional. The number of vCPUs. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainObservabilityMetricData": { +"id": "StorageDatabasecenterPartnerapiV1mainObservabilityMetricData", +"properties": { +"aggregationType": { +"description": "Required. Type of aggregation performed on the metric.", +"enum": [ +"AGGREGATION_TYPE_UNSPECIFIED", +"PEAK", +"P99", +"P95", +"CURRENT" +], +"enumDescriptions": [ +"Unspecified aggregation type.", +"PEAK aggregation type.", +"P99 aggregation type.", +"P95 aggregation type.", +"current aggregation type." +], +"type": "string" +}, +"metricType": { +"description": "Required. Type of metric like CPU, Memory, etc.", +"enum": [ +"METRIC_TYPE_UNSPECIFIED", +"CPU_UTILIZATION", +"MEMORY_UTILIZATION", +"NETWORK_CONNECTIONS", +"STORAGE_UTILIZATION", +"STORAGE_USED_BYTES" +], +"enumDescriptions": [ +"Unspecified metric type.", +"CPU utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Memory utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Number of network connections for a resource.", +"Storage utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Sotrage used by a resource." +], +"type": "string" +}, +"observationTime": { +"description": "Required. The time the metric value was observed.", +"format": "google-datetime", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"value": { +"$ref": "StorageDatabasecenterProtoCommonTypedValue", +"description": "Required. Value of the metric type." +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainOperationError": { +"description": "An error that occurred during a backup creation operation.", +"id": "StorageDatabasecenterPartnerapiV1mainOperationError", +"properties": { +"code": { +"description": "Identifies the specific error that occurred. REQUIRED", +"type": "string" +}, +"errorType": { +"enum": [ +"OPERATION_ERROR_TYPE_UNSPECIFIED", +"KMS_KEY_ERROR", +"DATABASE_ERROR", +"STOCKOUT_ERROR", +"CANCELLATION_ERROR", +"SQLSERVER_ERROR", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"key destroyed, expired, not found, unreachable or permission denied.", +"Database is not accessible", +"The zone or region does not have sufficient resources to handle the request at the moment", +"User initiated cancellation", +"SQL server specific error", +"Any other internal error." +], +"type": "string" +}, +"message": { +"description": "Additional information about the error encountered. REQUIRED", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainRetentionSettings": { +"id": "StorageDatabasecenterPartnerapiV1mainRetentionSettings", +"properties": { +"durationBasedRetention": { +"description": "Duration based retention period i.e. 172800 seconds (2 days)", +"format": "google-duration", +"type": "string" +}, +"quantityBasedRetention": { +"format": "int32", +"type": "integer" +}, +"retentionUnit": { +"deprecated": true, +"description": "The unit that 'retained_backups' represents.", +"enum": [ +"RETENTION_UNIT_UNSPECIFIED", +"COUNT", +"TIME", +"DURATION", +"RETENTION_UNIT_OTHER" +], +"enumDescriptions": [ +"Backup retention unit is unspecified, will be treated as COUNT.", +"Retention will be by count, eg. \"retain the most recent 7 backups\".", +"Retention will be by Time, eg. \"retain backups till a specific time\" i.e. till 2024-05-01T00:00:00Z.", +"Retention will be by duration, eg. \"retain the backups for 172800 seconds (2 days)\".", +"For rest of the other category" +], +"type": "string" +}, +"timeBasedRetention": { +"format": "google-duration", +"type": "string" +}, +"timestampBasedRetentionTime": { +"description": "Timestamp based retention period i.e. 2024-05-01T00:00:00Z", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainTags": { +"description": "Message type for storing tags. Tags provide a way to create annotations for resources, and in some cases conditionally allow or deny policies based on whether a resource has a specific tag.", +"id": "StorageDatabasecenterPartnerapiV1mainTags", +"properties": { +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "The Tag key/value mappings.", +"type": "object" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainUserLabels": { +"description": "Message type for storing user labels. User labels are used to tag App Engine resources, allowing users to search for resources matching a set of labels and to aggregate usage data by labels.", +"id": "StorageDatabasecenterPartnerapiV1mainUserLabels", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +} +}, +"type": "object" +}, +"StorageDatabasecenterProtoCommonProduct": { +"description": "Product specification for Condor resources.", +"id": "StorageDatabasecenterProtoCommonProduct", +"properties": { +"engine": { +"description": "The specific engine that the underlying database is running.", +"enum": [ +"ENGINE_UNSPECIFIED", +"ENGINE_MYSQL", +"MYSQL", +"ENGINE_POSTGRES", +"POSTGRES", +"ENGINE_SQL_SERVER", +"SQL_SERVER", +"ENGINE_NATIVE", +"NATIVE", +"ENGINE_CLOUD_SPANNER_WITH_POSTGRES_DIALECT", +"ENGINE_CLOUD_SPANNER_WITH_GOOGLESQL_DIALECT", +"ENGINE_MEMORYSTORE_FOR_REDIS", +"ENGINE_MEMORYSTORE_FOR_REDIS_CLUSTER", +"ENGINE_OTHER", +"ENGINE_FIRESTORE_WITH_NATIVE_MODE", +"ENGINE_FIRESTORE_WITH_DATASTORE_MODE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means engine type is not known or available.", +"MySQL binary running as an engine in the database instance.", +"MySQL binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"Native database binary running as engine in instance.", +"Native database binary running as engine in instance.", +"Cloud Spanner with PostgreSQL dialect.", +"Cloud Spanner with Google SQL dialect.", +"Memorystore with Redis dialect.", +"Memorystore with Redis cluster dialect.", +"Other refers to rest of other database engine. This is to be when engine is known, but it is not present in this enum.", +"Firestore with native mode.", +"Firestore with datastore mode." +], +"type": "string" +}, +"type": { +"description": "Type of specific database product. It could be CloudSQL, AlloyDB etc..", +"enum": [ +"PRODUCT_TYPE_UNSPECIFIED", +"PRODUCT_TYPE_CLOUD_SQL", +"CLOUD_SQL", +"PRODUCT_TYPE_ALLOYDB", +"ALLOYDB", +"PRODUCT_TYPE_SPANNER", +"PRODUCT_TYPE_ON_PREM", +"ON_PREM", +"PRODUCT_TYPE_MEMORYSTORE", +"PRODUCT_TYPE_BIGTABLE", +"PRODUCT_TYPE_OTHER", +"PRODUCT_TYPE_FIRESTORE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +false, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"Cloud SQL product area in GCP", +"Cloud SQL product area in GCP", +"AlloyDB product area in GCP", +"AlloyDB product area in GCP", +"Spanner product area in GCP", +"On premises database product.", +"On premises database product.", +"Memorystore product area in GCP", +"Bigtable product area in GCP", +"Other refers to rest of other product type. This is to be when product type is known, but it is not present in this enum.", +"Firestore product area in GCP." +], +"type": "string" +}, +"version": { +"description": "Version of the underlying database engine. Example values: For MySQL, it could be \"8.0\", \"5.7\" etc.. For Postgres, it could be \"14\", \"15\" etc..", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterProtoCommonTypedValue": { +"description": "TypedValue represents the value of a metric type. It can either be a double, an int64, a string or a bool.", +"id": "StorageDatabasecenterProtoCommonTypedValue", +"properties": { +"boolValue": { +"description": "For boolean value", +"type": "boolean" +}, +"doubleValue": { +"description": "For double value", +"format": "double", +"type": "number" +}, +"int64Value": { +"description": "For integer value", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "For string value", +"type": "string" +} +}, +"type": "object" +}, +"StringRestrictions": { +"description": "Restrictions on STRING type values", +"id": "StringRestrictions", +"properties": { +"allowedValues": { +"description": "The list of allowed values, if bounded. This field will be empty if there is a unbounded number of allowed values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SupportedDatabaseFlag": { +"description": "SupportedDatabaseFlag gives general information about a database flag, like type and allowed values. This is a static value that is defined on the server side, and it cannot be modified by callers. To set the Database flags on a particular Instance, a caller should modify the Instance.database_flags field.", +"id": "SupportedDatabaseFlag", +"properties": { +"acceptsMultipleValues": { +"description": "Whether the database flag accepts multiple values. If true, a comma-separated list of stringified values may be specified.", +"type": "boolean" +}, +"flagName": { +"description": "The name of the database flag, e.g. \"max_allowed_packets\". The is a possibly key for the Instance.database_flags map field.", +"type": "string" +}, +"integerRestrictions": { +"$ref": "IntegerRestrictions", +"description": "Restriction on INTEGER type value." +}, +"name": { +"description": "The name of the flag resource, following Google Cloud conventions, e.g.: * projects/{project}/locations/{location}/flags/{flag} This field currently has no semantic meaning.", +"type": "string" +}, +"requiresDbRestart": { +"description": "Whether setting or updating this flag on an Instance requires a database restart. If a flag that requires database restart is set, the backend will automatically restart the database (making sure to satisfy any availability SLO's).", +"type": "boolean" +}, +"stringRestrictions": { +"$ref": "StringRestrictions", +"description": "Restriction on STRING type value." +}, +"supportedDbVersions": { +"description": "Major database engine versions for which this flag is supported.", +"items": { +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"type": "array" +}, +"valueType": { +"enum": [ +"VALUE_TYPE_UNSPECIFIED", +"STRING", +"INTEGER", +"FLOAT", +"NONE" +], +"enumDescriptions": [ +"This is an unknown flag type.", +"String type flag.", +"Integer type flag.", +"Float type flag.", +"Denotes that the flag does not accept any values." +], +"type": "string" +} +}, +"type": "object" +}, +"SwitchoverClusterRequest": { +"description": "Message for switching over to a cluster", +"id": "SwitchoverClusterRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"TimeBasedRetention": { +"description": "A time based retention policy specifies that all backups within a certain time period should be retained.", +"id": "TimeBasedRetention", +"properties": { +"retentionPeriod": { +"description": "The retention period.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"TrialMetadata": { +"description": "Contains information and all metadata related to TRIAL clusters.", +"id": "TrialMetadata", +"properties": { +"endTime": { +"description": "End time of the trial cluster.", +"format": "google-datetime", +"type": "string" +}, +"graceEndTime": { +"description": "grace end time of the cluster.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "start time of the trial cluster.", +"format": "google-datetime", +"type": "string" +}, +"upgradeTime": { +"description": "Upgrade time of trial cluster to Standard cluster.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeClusterRequest": { +"description": "Upgrades a cluster.", +"id": "UpgradeClusterRequest", +"properties": { +"etag": { +"description": "Optional. The current etag of the Cluster. If an etag is provided and does not match the current etag of the Cluster, upgrade will be blocked and an ABORTED error will be returned.", +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +}, +"version": { +"description": "Required. The version the cluster is going to be upgraded to.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +} +}, +"type": "object" +}, +"UpgradeClusterResponse": { +"description": "UpgradeClusterResponse contains the response for upgrade cluster operation.", +"id": "UpgradeClusterResponse", +"properties": { +"clusterUpgradeDetails": { +"description": "Array of upgrade details for the current cluster and all the secondary clusters associated with this cluster.", +"items": { +"$ref": "ClusterUpgradeDetails" +}, +"type": "array" +}, +"message": { +"description": "A user friendly message summarising the upgrade operation details and the next steps for the user if there is any.", +"type": "string" +}, +"status": { +"description": "Status of upgrade operation.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"User": { +"description": "Message describing User object.", +"id": "User", +"properties": { +"databaseRoles": { +"description": "Optional. List of database roles this user has. The database role strings are subject to the PostgreSQL naming conventions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"keepExtraRoles": { +"description": "Input only. If the user already exists and it has additional roles, keep them granted.", +"type": "boolean" +}, +"name": { +"description": "Output only. Name of the resource in the form of projects/{project}/locations/{location}/cluster/{cluster}/users/{user}.", +"readOnly": true, +"type": "string" +}, +"password": { +"description": "Input only. Password for the user.", +"type": "string" +}, +"userType": { +"description": "Optional. Type of this user.", +"enum": [ +"USER_TYPE_UNSPECIFIED", +"ALLOYDB_BUILT_IN", +"ALLOYDB_IAM_USER" +], +"enumDescriptions": [ +"Unspecified user type.", +"The default user type that authenticates via password-based authentication.", +"Database user that can authenticate via IAM-Based authentication." +], +"type": "string" +} +}, +"type": "object" +}, +"UserPassword": { +"description": "The username/password for a database user. Used for specifying initial users at cluster creation time.", +"id": "UserPassword", +"properties": { +"password": { +"description": "The initial password for the user.", +"type": "string" +}, +"user": { +"description": "The database username.", +"type": "string" +} +}, +"type": "object" +}, +"WeeklySchedule": { +"description": "A weekly schedule starts a backup at prescribed start times within a day, for the specified days of the week. The weekly schedule message is flexible and can be used to create many types of schedules. For example, to have a daily backup that starts at 22:00, configure the `start_times` field to have one element \"22:00\" and the `days_of_week` field to have all seven days of the week.", +"id": "WeeklySchedule", +"properties": { +"daysOfWeek": { +"description": "The days of the week to perform a backup. If this field is left empty, the default of every day of the week is used.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"type": "array" +}, +"startTimes": { +"description": "The times during the day to start a backup. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00). If no start times are provided, a single fixed start time is chosen arbitrarily.", +"items": { +"$ref": "GoogleTypeTimeOfDay" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "AlloyDB API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/alloydb.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/alloydb.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..10e0eb7519a65e3eadb9161aae5a1207fd4fb21c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/alloydb.v1alpha.json @@ -0,0 +1,5532 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://alloydb.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud AlloyDB Admin", +"description": "AlloyDB for PostgreSQL is an open source-compatible database service that provides a powerful option for migrating, modernizing, or building commercial-grade applications. It offers full compatibility with standard PostgreSQL, and is more than 4x faster for transactional workloads and up to 100x faster for analytical queries than standard PostgreSQL in our performance tests. AlloyDB for PostgreSQL offers a 99.99 percent availability SLA inclusive of maintenance. AlloyDB is optimized for the most demanding use cases, allowing you to build new applications that require high transaction throughput, large database sizes, or multiple read resources; scale existing PostgreSQL workloads with no application changes; and modernize legacy proprietary databases. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/alloydb/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "alloydb:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://alloydb.mtls.googleapis.com/", +"name": "alloydb", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1alpha/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "alloydb.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a new Backup in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "POST", +"id": "alloydb.projects.locations.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/backups", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Backup.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the Backup. If an etag is provided and does not match the current etag of the Backup, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the resource. For the required format, see the comment on the Backup.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Backup.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Backups in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "GET", +"id": "alloydb.projects.locations.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListBackupsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Backup.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.backups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, update succeeds even if instance is not found. In that case, a new backup is created and `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} where the cluster and backup ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the backup resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Backup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"clusters": { +"methods": { +"create": { +"description": "Creates a new Cluster in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location of the new cluster. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/clusters", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"createsecondary": { +"description": "Creates a cluster of type SECONDARY in the given location using the primary cluster as the source.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters:createsecondary", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.createsecondary", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. ID of the requesting object (the secondary cluster).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location of the new cluster. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/clusters:createsecondary", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Cluster.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.clusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the Cluster. If an etag is provided and does not match the current etag of the Cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. Whether to cascade delete child instances for given cluster.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports data from the cluster. Imperative only.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:export", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the cluster.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:export", +"request": { +"$ref": "ExportClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Cluster.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. The view of the cluster to return. Returns all default fields if not set.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"CLUSTER_VIEW_BASIC", +"CLUSTER_VIEW_CONTINUOUS_BACKUP" +], +"enumDescriptions": [ +"CLUSTER_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.", +"BASIC server responses include all the relevant cluster details, excluding Cluster.ContinuousBackupInfo.EarliestRestorableTime and other view-specific fields. The default value.", +"CONTINUOUS_BACKUP response returns all the fields from BASIC plus the earliest restorable time if continuous backups are enabled. May increase latency." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Clusters in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Cluster.name field. Additionally, you can perform an aggregated list operation by specifying a value with the following format: * projects/{project}/locations/-", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Cluster.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, update succeeds even if cluster is not found. In that case, a new cluster is created and `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The name of the cluster resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} where the cluster ID segment should satisfy the regex expression `[a-z0-9-]+`. For more details see https://google.aip.dev/122. The prefix of the cluster resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Cluster resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"promote": { +"description": "Promotes a SECONDARY cluster. This turns down replication from the PRIMARY cluster and promotes a secondary cluster into its own standalone cluster. Imperative only.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:promote", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.promote", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:promote", +"request": { +"$ref": "PromoteClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "Creates a new Cluster in a given project and location, with a volume restored from the provided source, either a backup ID or a point-in-time and a source cluster.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters:restore", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.restore", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/clusters:restore", +"request": { +"$ref": "RestoreClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restoreFromCloudSQL": { +"description": "Restores an AlloyDB cluster from a CloudSQL resource.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters:restoreFromCloudSQL", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.restoreFromCloudSQL", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location of the new cluster. For the required format, see the comment on Cluster.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/clusters:restoreFromCloudSQL", +"request": { +"$ref": "RestoreFromCloudSQLRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"switchover": { +"description": "Switches the roles of PRIMARY and SECONDARY clusters without any data loss. This promotes the SECONDARY cluster to PRIMARY and sets up the original PRIMARY cluster to replicate from this newly promoted cluster.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:switchover", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.switchover", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Cluster.name field", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:switchover", +"request": { +"$ref": "SwitchoverClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrades a single Cluster. Imperative only.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:upgrade", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the cluster.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:upgrade", +"request": { +"$ref": "UpgradeClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"create": { +"description": "Creates a new Instance in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"createsecondary": { +"description": "Creates a new SECONDARY Instance in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances:createsecondary", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.createsecondary", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/instances:createsecondary", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Instance.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.clusters.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the Instance. If an etag is provided and does not match the current etag of the Instance, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"failover": { +"description": "Forces a Failover for a highly available instance. Failover promotes the HA standby instance as the new primary. Imperative only.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}:failover", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.failover", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:failover", +"request": { +"$ref": "FailoverInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Instance.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The view of the instance to return.", +"enum": [ +"INSTANCE_VIEW_UNSPECIFIED", +"INSTANCE_VIEW_BASIC", +"INSTANCE_VIEW_FULL" +], +"enumDescriptions": [ +"INSTANCE_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.", +"BASIC server responses for a primary or read instance include all the relevant instance details, excluding the details of each node in the instance. The default value.", +"FULL response is equivalent to BASIC for primary instance (for now). For read pool instance, this includes details of each node in the pool." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getConnectionInfo": { +"description": "Get instance metadata used for a connection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}/connectionInfo", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.instances.getConnectionInfo", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource. The required format is: projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/connectionInfo", +"response": { +"$ref": "ConnectionInfo" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"injectFault": { +"description": "Injects fault in an instance. Imperative only.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}:injectFault", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.injectFault", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:injectFault", +"request": { +"$ref": "InjectFaultRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Instances in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. For the required format, see the comment on the Instance.name field. Additionally, you can perform an aggregated list operation by specifying a value with one of the following formats: * projects/{project}/locations/-/clusters/- * projects/{project}/locations/{region}/clusters/-", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Instance.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, update succeeds even if instance is not found. In that case, a new instance is created and `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The name of the instance resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id} where the cluster and instance ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the instance resource name is the name of the parent resource: * projects/{project}/locations/{region}/clusters/{cluster_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Instance resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restart": { +"description": "Restart an Instance in a cluster. Imperative only.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/instances/{instancesId}:restart", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.instances.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the Instance.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:restart", +"request": { +"$ref": "RestartInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"users": { +"methods": { +"create": { +"description": "Creates a new User in a given project, location, and cluster.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users", +"httpMethod": "POST", +"id": "alloydb.projects.locations.clusters.users.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"userId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/users", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single User.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users/{usersId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.clusters.users.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the User.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single User.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users/{usersId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.users.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource. For the required format, see the comment on the User.name field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Users in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users", +"httpMethod": "GET", +"id": "alloydb.projects.locations.clusters.users.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListUsersRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/users", +"response": { +"$ref": "ListUsersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single User.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/users/{usersId}", +"httpMethod": "PATCH", +"id": "alloydb.projects.locations.clusters.users.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. Allow missing fields in the update mask.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. Name of the resource in the form of projects/{project}/locations/{location}/cluster/{cluster}/users/{user}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the User resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, the backend validates the request, but doesn't actually execute it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "alloydb.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "alloydb.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "alloydb.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "alloydb.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"supportedDatabaseFlags": { +"methods": { +"list": { +"description": "Lists SupportedDatabaseFlags for a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/supportedDatabaseFlags", +"httpMethod": "GET", +"id": "alloydb.projects.locations.supportedDatabaseFlags.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource. The required format is: * projects/{project}/locations/{location} Regardless of the parent specified here, as long it is contains a valid project and location, the service will return a static list of supported flags resources. Note that we do not yet support region-specific flags.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/supportedDatabaseFlags", +"response": { +"$ref": "ListSupportedDatabaseFlagsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241228", +"rootUrl": "https://alloydb.googleapis.com/", +"schemas": { +"AuthorizedNetwork": { +"description": "AuthorizedNetwork contains metadata for an authorized network.", +"id": "AuthorizedNetwork", +"properties": { +"cidrRange": { +"description": "CIDR range for one authorzied network of the instance.", +"type": "string" +} +}, +"type": "object" +}, +"AutomatedBackupPolicy": { +"description": "Message describing the user-specified automated backup policy. All fields in the automated backup policy are optional. Defaults for each field are provided if they are not set.", +"id": "AutomatedBackupPolicy", +"properties": { +"backupWindow": { +"description": "The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed. The backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it defaults to 1 hour.", +"format": "google-duration", +"type": "string" +}, +"enabled": { +"description": "Whether automated automated backups are enabled. If not set, defaults to true.", +"type": "boolean" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels to apply to backups created using this configuration.", +"type": "object" +}, +"location": { +"description": "The location where the backup will be stored. Currently, the only supported option is to store the backup in the same region as the cluster. If empty, defaults to the region of the cluster.", +"type": "string" +}, +"quantityBasedRetention": { +"$ref": "QuantityBasedRetention", +"description": "Quantity-based Backup retention policy to retain recent backups." +}, +"timeBasedRetention": { +"$ref": "TimeBasedRetention", +"description": "Time-based Backup retention policy." +}, +"weeklySchedule": { +"$ref": "WeeklySchedule", +"description": "Weekly schedule for the Backup." +} +}, +"type": "object" +}, +"Backup": { +"description": "Message describing Backup object", +"id": "Backup", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128", +"type": "object" +}, +"clusterName": { +"description": "Required. The full resource name of the backup source cluster (e.g., projects/{project}/locations/{region}/clusters/{cluster_id}).", +"type": "string" +}, +"clusterUid": { +"description": "Output only. The system-generated UID of the cluster which was used to create this resource.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"databaseVersion": { +"description": "Output only. The database engine major version of the cluster this backup was created from. Any restored cluster created from this backup will have the same database version.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Delete time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description of the backup.", +"type": "string" +}, +"displayName": { +"description": "User-settable and human-readable display name for the Backup.", +"type": "string" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the backup with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data." +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. The encryption information for the backup.", +"readOnly": true +}, +"etag": { +"description": "For Resource freshness validation (https://google.aip.dev/154)", +"type": "string" +}, +"expiryQuantity": { +"$ref": "QuantityBasedExpiry", +"description": "Output only. The QuantityBasedExpiry of the backup, specified by the backup's retention policy. Once the expiry quantity is over retention, the backup is eligible to be garbage collected.", +"readOnly": true +}, +"expiryTime": { +"description": "Output only. The time at which after the backup is eligible to be garbage collected. It is the duration specified by the backup's retention policy, added to the backup's create_time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Output only. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} where the cluster and backup ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the backup resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"readOnly": true, +"type": "string" +}, +"reconciling": { +"description": "Output only. Reconciling (https://google.aip.dev/128#reconciliation), if true, indicates that the service is actively updating the resource. This can happen due to user-triggered updates or system actions like failover or maintenance.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"sizeBytes": { +"description": "Output only. The size of the backup in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"The state of the backup is unknown.", +"The backup is ready.", +"The backup is creating.", +"The backup failed.", +"The backup is being deleted." +], +"readOnly": true, +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: ``` \"123/environment\": \"production\", \"123/costCenter\": \"marketing\" ```", +"type": "object" +}, +"type": { +"description": "The backup type, which suggests the trigger for the backup.", +"enum": [ +"TYPE_UNSPECIFIED", +"ON_DEMAND", +"AUTOMATED", +"CONTINUOUS" +], +"enumDescriptions": [ +"Backup Type is unknown.", +"ON_DEMAND backups that were triggered by the customer (e.g., not AUTOMATED).", +"AUTOMATED backups triggered by the automated backups scheduler pursuant to an automated backup policy.", +"CONTINUOUS backups triggered by the automated backups scheduler due to a continuous backup policy." +], +"type": "string" +}, +"uid": { +"description": "Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupSource": { +"description": "Message describing a BackupSource.", +"id": "BackupSource", +"properties": { +"backupName": { +"description": "Required. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id}", +"type": "string" +}, +"backupUid": { +"description": "Output only. The system-generated UID of the backup which was used to create this resource. The UID is generated when the backup is created, and it is retained until the backup is deleted.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ClientConnectionConfig": { +"description": "Client connection configuration", +"id": "ClientConnectionConfig", +"properties": { +"requireConnectors": { +"description": "Optional. Configuration to enforce connectors only (ex: AuthProxy) connections to the database.", +"type": "boolean" +}, +"sslConfig": { +"$ref": "SslConfig", +"description": "Optional. SSL configuration option for this instance." +} +}, +"type": "object" +}, +"CloudControl2SharedOperationsReconciliationOperationMetadata": { +"description": "Operation metadata returned by the CLH during resource state reconciliation.", +"id": "CloudControl2SharedOperationsReconciliationOperationMetadata", +"properties": { +"deleteResource": { +"deprecated": true, +"description": "DEPRECATED. Use exclusive_action instead.", +"type": "boolean" +}, +"exclusiveAction": { +"description": "Excluisive action returned by the CLH.", +"enum": [ +"UNKNOWN_REPAIR_ACTION", +"DELETE", +"RETRY" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"Unknown repair action.", +"The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.", +"This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." +], +"type": "string" +} +}, +"type": "object" +}, +"CloudSQLBackupRunSource": { +"description": "The source CloudSQL backup resource.", +"id": "CloudSQLBackupRunSource", +"properties": { +"backupRunId": { +"description": "Required. The CloudSQL backup run ID.", +"format": "int64", +"type": "string" +}, +"instanceId": { +"description": "Required. The CloudSQL instance ID.", +"type": "string" +}, +"project": { +"description": "The project ID of the source CloudSQL instance. This should be the same as the AlloyDB cluster's project.", +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "A cluster is a collection of regional AlloyDB resources. It can include a primary instance and one or more read pool instances. All cluster resources share a storage layer, which scales as needed.", +"id": "Cluster", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128", +"type": "object" +}, +"automatedBackupPolicy": { +"$ref": "AutomatedBackupPolicy", +"description": "The automated backup policy for this cluster. If no policy is provided then the default policy will be used. If backups are supported for the cluster, the default policy takes one backup a day, has a backup window of 1 hour, and retains backups for 14 days. For more information on the defaults, consult the documentation for the message type." +}, +"backupSource": { +"$ref": "BackupSource", +"description": "Output only. Cluster created from backup.", +"readOnly": true +}, +"cloudsqlBackupRunSource": { +"$ref": "CloudSQLBackupRunSource", +"description": "Output only. Cluster created from CloudSQL snapshot.", +"readOnly": true +}, +"clusterType": { +"description": "Output only. The type of the cluster. This is an output-only field and it's populated at the Cluster creation time or the Cluster promotion time. The cluster type is determined by which RPC was used to create the cluster (i.e. `CreateCluster` vs. `CreateSecondaryCluster`", +"enum": [ +"CLUSTER_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the cluster is unknown.", +"Primary cluster that support read and write operations.", +"Secondary cluster that is replicating from another region. This only supports read." +], +"readOnly": true, +"type": "string" +}, +"continuousBackupConfig": { +"$ref": "ContinuousBackupConfig", +"description": "Optional. Continuous backup configuration for this cluster." +}, +"continuousBackupInfo": { +"$ref": "ContinuousBackupInfo", +"description": "Output only. Continuous backup properties for this cluster.", +"readOnly": true +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"databaseVersion": { +"description": "Optional. The database engine major version. This is an optional field and it is populated at the Cluster creation time. If a database version is not supplied at cluster creation time, then a default database version will be used.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"deleteTime": { +"description": "Output only. Delete time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "User-settable and human-readable display name for the Cluster.", +"type": "string" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the data disks and other persistent data resources of a cluster with a customer-managed encryption key (CMEK). When this field is not specified, the cluster will then use default encryption scheme to protect the user data." +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. The encryption information for the cluster.", +"readOnly": true +}, +"etag": { +"description": "For Resource freshness validation (https://google.aip.dev/154)", +"type": "string" +}, +"geminiConfig": { +"$ref": "GeminiClusterConfig", +"description": "Optional. Configuration parameters related to the Gemini in Databases add-on." +}, +"initialUser": { +"$ref": "UserPassword", +"description": "Input only. Initial user to setup during cluster creation. Required. If used in `RestoreCluster` this is ignored." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"maintenanceSchedule": { +"$ref": "MaintenanceSchedule", +"description": "Output only. The maintenance schedule for the cluster, generated for a specific rollout if a maintenance window is set.", +"readOnly": true +}, +"maintenanceUpdatePolicy": { +"$ref": "MaintenanceUpdatePolicy", +"description": "Optional. The maintenance update policy determines when to allow or deny updates." +}, +"migrationSource": { +"$ref": "MigrationSource", +"description": "Output only. Cluster created via DMS migration.", +"readOnly": true +}, +"name": { +"description": "Output only. The name of the cluster resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} where the cluster ID segment should satisfy the regex expression `[a-z0-9-]+`. For more details see https://google.aip.dev/122. The prefix of the cluster resource name is the name of the parent resource: * projects/{project}/locations/{region}", +"readOnly": true, +"type": "string" +}, +"network": { +"deprecated": true, +"description": "Required. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: `projects/{project}/global/networks/{network_id}`. This is required to create a cluster. Deprecated, use network_config.network instead.", +"type": "string" +}, +"networkConfig": { +"$ref": "NetworkConfig" +}, +"primaryConfig": { +"$ref": "PrimaryConfig", +"description": "Output only. Cross Region replication config specific to PRIMARY cluster.", +"readOnly": true +}, +"pscConfig": { +"$ref": "PscConfig", +"description": "Optional. The configuration for Private Service Connect (PSC) for the cluster." +}, +"reconciling": { +"description": "Output only. Reconciling (https://google.aip.dev/128#reconciliation). Set to true if the current state of Cluster does not match the user's intended state, and the service is actively updating the resource to reconcile them. This can happen due to user-triggered updates or system actions like failover or maintenance.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"secondaryConfig": { +"$ref": "SecondaryConfig", +"description": "Cross Region replication config specific to SECONDARY cluster." +}, +"sslConfig": { +"$ref": "SslConfig", +"deprecated": true, +"description": "SSL configuration for this AlloyDB cluster." +}, +"state": { +"description": "Output only. The current serving state of the cluster.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"STOPPED", +"EMPTY", +"CREATING", +"DELETING", +"FAILED", +"BOOTSTRAPPING", +"MAINTENANCE", +"PROMOTING" +], +"enumDescriptions": [ +"The state of the cluster is unknown.", +"The cluster is active and running.", +"The cluster is stopped. All instances in the cluster are stopped. Customers can start a stopped cluster at any point and all their instances will come back to life with same names and IP resources. In this state, customer pays for storage. Associated backups could also be present in a stopped cluster.", +"The cluster is empty and has no associated resources. All instances, associated storage and backups have been deleted.", +"The cluster is being created.", +"The cluster is being deleted.", +"The creation of the cluster failed.", +"The cluster is bootstrapping with data from some other source. Direct mutations to the cluster (e.g. adding read pool) are not allowed.", +"The cluster is under maintenance. AlloyDB regularly performs maintenance and upgrades on customer clusters. Updates on the cluster are not allowed while the cluster is in this state.", +"The cluster is being promoted." +], +"readOnly": true, +"type": "string" +}, +"subscriptionType": { +"description": "Optional. Subscription type of the cluster.", +"enum": [ +"SUBSCRIPTION_TYPE_UNSPECIFIED", +"STANDARD", +"TRIAL" +], +"enumDescriptions": [ +"This is an unknown subscription type. By default, the subscription type is STANDARD.", +"Standard subscription.", +"Trial subscription." +], +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: ``` \"123/environment\": \"production\", \"123/costCenter\": \"marketing\" ```", +"type": "object" +}, +"trialMetadata": { +"$ref": "TrialMetadata", +"description": "Output only. Metadata for free trial clusters", +"readOnly": true +}, +"uid": { +"description": "Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpgradeDetails": { +"description": "Upgrade details of a cluster. This cluster can be primary or secondary.", +"id": "ClusterUpgradeDetails", +"properties": { +"clusterType": { +"description": "Cluster type which can either be primary or secondary.", +"enum": [ +"CLUSTER_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the cluster is unknown.", +"Primary cluster that support read and write operations.", +"Secondary cluster that is replicating from another region. This only supports read." +], +"type": "string" +}, +"databaseVersion": { +"description": "Database version of the cluster after the upgrade operation. This will be the target version if the upgrade was successful otherwise it remains the same as that before the upgrade operation.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"instanceUpgradeDetails": { +"description": "Upgrade details of the instances directly associated with this cluster.", +"items": { +"$ref": "InstanceUpgradeDetails" +}, +"type": "array" +}, +"name": { +"description": "Normalized name of the cluster", +"type": "string" +}, +"stageInfo": { +"description": "Array containing stage info associated with this cluster.", +"items": { +"$ref": "StageInfo" +}, +"type": "array" +}, +"upgradeStatus": { +"description": "Upgrade status of the cluster.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"ConnectionInfo": { +"description": "ConnectionInfo singleton resource. https://google.aip.dev/156", +"id": "ConnectionInfo", +"properties": { +"instanceUid": { +"description": "Output only. The unique ID of the Instance.", +"readOnly": true, +"type": "string" +}, +"ipAddress": { +"description": "Output only. The private network IP address for the Instance. This is the default IP for the instance and is always created (even if enable_public_ip is set). This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The name of the ConnectionInfo singleton resource, e.g.: projects/{project}/locations/{location}/clusters/*/instances/*/connectionInfo This field currently has no semantic meaning.", +"type": "string" +}, +"pemCertificateChain": { +"deprecated": true, +"description": "Output only. The pem-encoded chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"pscDnsName": { +"description": "Output only. The DNS name to use with PSC for the Instance.", +"readOnly": true, +"type": "string" +}, +"publicIpAddress": { +"description": "Output only. The public IP addresses for the Instance. This is available ONLY when enable_public_ip is set. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContinuousBackupConfig": { +"description": "ContinuousBackupConfig describes the continuous backups recovery configurations of a cluster.", +"id": "ContinuousBackupConfig", +"properties": { +"enabled": { +"description": "Whether ContinuousBackup is enabled.", +"type": "boolean" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data." +}, +"recoveryWindowDays": { +"description": "The number of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window. If not set, defaults to 14 days.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ContinuousBackupInfo": { +"description": "ContinuousBackupInfo describes the continuous backup properties of a cluster.", +"id": "ContinuousBackupInfo", +"properties": { +"earliestRestorableTime": { +"description": "Output only. The earliest restorable time that can be restored to. Output only field.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"enabledTime": { +"description": "Output only. When ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. The encryption information for the WALs and backups required for ContinuousBackup.", +"readOnly": true +}, +"schedule": { +"description": "Output only. Days of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ContinuousBackupSource": { +"description": "Message describing a ContinuousBackupSource.", +"id": "ContinuousBackupSource", +"properties": { +"cluster": { +"description": "Required. The source cluster from which to restore. This cluster must have continuous backup enabled for this operation to succeed. For the required format, see the comment on the Cluster.name field.", +"type": "string" +}, +"pointInTime": { +"description": "Required. The point in time to restore to.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CsvExportOptions": { +"description": "Options for exporting data in CSV format.", +"id": "CsvExportOptions", +"properties": { +"escapeCharacter": { +"description": "Optional. Specifies the character that should appear before a data character that needs to be escaped. The default is the same as quote character. The value of this argument has to be a character in Hex ASCII Code.", +"type": "string" +}, +"fieldDelimiter": { +"description": "Optional. Specifies the character that separates columns within each row (line) of the file. The default is comma. The value of this argument has to be a character in Hex ASCII Code.", +"type": "string" +}, +"quoteCharacter": { +"description": "Optional. Specifies the quoting character to be used when a data value is quoted. The default is double-quote. The value of this argument has to be a character in Hex ASCII Code.", +"type": "string" +}, +"selectQuery": { +"description": "Required. The SELECT query used to extract the data.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionConfig": { +"description": "EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key).", +"id": "EncryptionConfig", +"properties": { +"kmsKeyName": { +"description": "The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]", +"type": "string" +} +}, +"type": "object" +}, +"EncryptionInfo": { +"description": "EncryptionInfo describes the encryption information of a cluster or a backup.", +"id": "EncryptionInfo", +"properties": { +"encryptionType": { +"description": "Output only. Type of encryption.", +"enum": [ +"TYPE_UNSPECIFIED", +"GOOGLE_DEFAULT_ENCRYPTION", +"CUSTOMER_MANAGED_ENCRYPTION" +], +"enumDescriptions": [ +"Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.", +"The data is encrypted at rest with a key that is fully managed by Google. No key version will be populated. This is the default state.", +"The data is encrypted at rest with a key that is managed by the customer. KMS key versions will be populated." +], +"readOnly": true, +"type": "string" +}, +"kmsKeyVersions": { +"description": "Output only. Cloud KMS key versions that are being used to protect the database or the backup.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ExportClusterRequest": { +"description": "Export cluster request.", +"id": "ExportClusterRequest", +"properties": { +"csvExportOptions": { +"$ref": "CsvExportOptions", +"description": "Options for exporting data in CSV format. Required field to be set for CSV file type." +}, +"database": { +"description": "Required. Name of the database where the export command will be executed. Note - Value provided should be the same as expected from `SELECT current_database();` and NOT as a resource reference.", +"type": "string" +}, +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Required. Option to export data to cloud storage." +}, +"sqlExportOptions": { +"$ref": "SqlExportOptions", +"description": "Options for exporting data in SQL format. Required field to be set for SQL file type." +} +}, +"type": "object" +}, +"FailoverInstanceRequest": { +"description": "Message for triggering failover on an Instance", +"id": "FailoverInstanceRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "Destination for Export. Export will be done to cloud storage.", +"id": "GcsDestination", +"properties": { +"uri": { +"description": "Required. The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form `gs://bucketName/fileName`.", +"type": "string" +} +}, +"type": "object" +}, +"GeminiClusterConfig": { +"description": "Cluster level configuration parameters related to the Gemini in Databases add-on.", +"id": "GeminiClusterConfig", +"properties": { +"entitled": { +"description": "Output only. Whether the Gemini in Databases add-on is enabled for the cluster. It will be true only if the add-on has been enabled for the billing account corresponding to the cluster. Its status is toggled from the Admin Control Center (ACC) and cannot be toggled using AlloyDB's APIs.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GeminiInstanceConfig": { +"description": "Instance level configuration parameters related to the Gemini in Databases add-on.", +"id": "GeminiInstanceConfig", +"properties": { +"entitled": { +"description": "Output only. Whether the Gemini in Databases add-on is enabled for the instance. It will be true only if the add-on has been enabled for the billing account corresponding to the instance. Its status is toggled from the Admin Control Center (ACC) and cannot be toggled using AlloyDB's APIs.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeTimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "GoogleTypeTimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"InjectFaultRequest": { +"description": "Message for triggering fault injection on an instance", +"id": "InjectFaultRequest", +"properties": { +"faultType": { +"description": "Required. The type of fault to be injected in an instance.", +"enum": [ +"FAULT_TYPE_UNSPECIFIED", +"STOP_VM" +], +"enumDescriptions": [ +"The fault type is unknown.", +"Stop the VM" +], +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"Instance": { +"description": "An Instance is a computing unit that an end customer can connect to. It's the main unit of computing resources in AlloyDB.", +"id": "Instance", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128", +"type": "object" +}, +"availabilityType": { +"description": "Availability type of an Instance. If empty, defaults to REGIONAL for primary instances. For read pools, availability_type is always UNSPECIFIED. Instances in the read pools are evenly distributed across available zones within the region (i.e. read pools with more than one node will have a node in at least two zones).", +"enum": [ +"AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL" +], +"enumDescriptions": [ +"This is an unknown Availability type.", +"Zonal available instance.", +"Regional (or Highly) available instance." +], +"type": "string" +}, +"clientConnectionConfig": { +"$ref": "ClientConnectionConfig", +"description": "Optional. Client connection specific configurations" +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"databaseFlags": { +"additionalProperties": { +"type": "string" +}, +"description": "Database flags. Set at the instance level. They are copied from the primary instance on secondary instance creation. Flags that have restrictions default to the value at primary instance on read instances during creation. Read instances can set new flags or override existing flags that are relevant for reads, for example, for enabling columnar cache on a read instance. Flags set on read instance might or might not be present on the primary instance. This is a list of \"key\": \"value\" pairs. \"key\": The name of the flag. These flags are passed at instance setup time, so include both server options and system variables for Postgres. Flags are specified with underscores, not hyphens. \"value\": The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.", +"type": "object" +}, +"deleteTime": { +"description": "Output only. Delete time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "User-settable and human-readable display name for the Instance.", +"type": "string" +}, +"etag": { +"description": "For Resource freshness validation (https://google.aip.dev/154)", +"type": "string" +}, +"gceZone": { +"description": "The Compute Engine zone that the instance should serve from, per https://cloud.google.com/compute/docs/regions-zones This can ONLY be specified for ZONAL instances. If present for a REGIONAL instance, an error will be thrown. If this is absent for a ZONAL instance, instance is created in a random zone with available capacity.", +"type": "string" +}, +"geminiConfig": { +"$ref": "GeminiInstanceConfig", +"description": "Optional. Configuration parameters related to the Gemini in Databases add-on." +}, +"instanceType": { +"description": "Required. The type of the instance. Specified at creation time.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"PRIMARY", +"READ_POOL", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the instance is unknown.", +"PRIMARY instances support read and write operations.", +"READ POOL instances support read operations only. Each read pool instance consists of one or more homogeneous nodes. * Read pool of size 1 can only have zonal availability. * Read pools with node count of 2 or more can have regional availability (nodes are present in 2 or more zones in a region).", +"SECONDARY instances support read operations only. SECONDARY instance is a cross-region read replica" +], +"type": "string" +}, +"ipAddress": { +"description": "Output only. The IP address for the Instance. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"machineConfig": { +"$ref": "MachineConfig", +"description": "Configurations for the machines that host the underlying database engine." +}, +"name": { +"description": "Output only. The name of the instance resource with the format: * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id} where the cluster and instance ID segments should satisfy the regex expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting with a letter, and ending with a letter or number. For more details see https://google.aip.dev/122. The prefix of the instance resource name is the name of the parent resource: * projects/{project}/locations/{region}/clusters/{cluster_id}", +"readOnly": true, +"type": "string" +}, +"networkConfig": { +"$ref": "InstanceNetworkConfig", +"description": "Optional. Instance-level network configuration." +}, +"nodes": { +"description": "Output only. List of available read-only VMs in this instance, including the standby for a PRIMARY instance.", +"items": { +"$ref": "Node" +}, +"readOnly": true, +"type": "array" +}, +"observabilityConfig": { +"$ref": "ObservabilityInstanceConfig", +"description": "Configuration for observability." +}, +"outboundPublicIpAddresses": { +"description": "Output only. All outbound public IP addresses configured for the instance.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"pscInstanceConfig": { +"$ref": "PscInstanceConfig", +"description": "Optional. The configuration for Private Service Connect (PSC) for the instance." +}, +"publicIpAddress": { +"description": "Output only. The public IP addresses for the Instance. This is available ONLY when enable_public_ip is set. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +}, +"queryInsightsConfig": { +"$ref": "QueryInsightsInstanceConfig", +"description": "Configuration for query insights." +}, +"readPoolConfig": { +"$ref": "ReadPoolConfig", +"description": "Read pool instance configuration. This is required if the value of instanceType is READ_POOL." +}, +"reconciling": { +"description": "Output only. Reconciling (https://google.aip.dev/128#reconciliation). Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating the resource to reconcile them. This can happen due to user-triggered updates or system actions like failover or maintenance.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current serving state of the instance.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"STOPPED", +"CREATING", +"DELETING", +"MAINTENANCE", +"FAILED", +"BOOTSTRAPPING", +"PROMOTING" +], +"enumDescriptions": [ +"The state of the instance is unknown.", +"The instance is active and running.", +"The instance is stopped. Instance name and IP resources are preserved.", +"The instance is being created.", +"The instance is being deleted.", +"The instance is down for maintenance.", +"The creation of the instance failed or a fatal error occurred during an operation on the instance. Note: Instances in this state would tried to be auto-repaired. And Customers should be able to restart, update or delete these instances.", +"Index 7 is used in the producer apis for ROLLED_BACK state. Keeping that index unused in case that state also needs to exposed via consumer apis in future. The instance has been configured to sync data from some other source.", +"The instance is being promoted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted.", +"readOnly": true, +"type": "string" +}, +"updatePolicy": { +"$ref": "UpdatePolicy", +"description": "Update policy that will be applied during instance update. This field is not persisted when you update the instance. To use a non-default update policy, you must specify explicitly specify the value in each update request." +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"writableNode": { +"$ref": "Node", +"description": "Output only. This is set for the read-write VM of the PRIMARY instance only.", +"readOnly": true +} +}, +"type": "object" +}, +"InstanceNetworkConfig": { +"description": "Metadata related to instance-level network configuration.", +"id": "InstanceNetworkConfig", +"properties": { +"authorizedExternalNetworks": { +"description": "Optional. A list of external network authorized to access this instance.", +"items": { +"$ref": "AuthorizedNetwork" +}, +"type": "array" +}, +"enableOutboundPublicIp": { +"description": "Optional. Enabling an outbound public IP address to support a database server sending requests out into the internet.", +"type": "boolean" +}, +"enablePublicIp": { +"description": "Optional. Enabling public ip for the instance.", +"type": "boolean" +} +}, +"type": "object" +}, +"InstanceUpgradeDetails": { +"description": "Details regarding the upgrade of instaces associated with a cluster.", +"id": "InstanceUpgradeDetails", +"properties": { +"instanceType": { +"description": "Instance type.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"PRIMARY", +"READ_POOL", +"SECONDARY" +], +"enumDescriptions": [ +"The type of the instance is unknown.", +"PRIMARY instances support read and write operations.", +"READ POOL instances support read operations only. Each read pool instance consists of one or more homogeneous nodes. * Read pool of size 1 can only have zonal availability. * Read pools with node count of 2 or more can have regional availability (nodes are present in 2 or more zones in a region).", +"SECONDARY instances support read operations only. SECONDARY instance is a cross-region read replica" +], +"type": "string" +}, +"name": { +"description": "Normalized name of the instance.", +"type": "string" +}, +"upgradeStatus": { +"description": "Upgrade status of the instance.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"IntegerRestrictions": { +"description": "Restrictions on INTEGER type values.", +"id": "IntegerRestrictions", +"properties": { +"maxValue": { +"description": "The maximum value that can be specified, if applicable.", +"format": "int64", +"type": "string" +}, +"minValue": { +"description": "The minimum value that can be specified, if applicable.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "Message for response to listing Backups", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "The list of Backup", +"items": { +"$ref": "Backup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListClustersResponse": { +"description": "Message for response to listing Clusters", +"id": "ListClustersResponse", +"properties": { +"clusters": { +"description": "The list of Cluster", +"items": { +"$ref": "Cluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Message for response to listing Instances", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "The list of Instance", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSupportedDatabaseFlagsResponse": { +"description": "Message for response to listing SupportedDatabaseFlags.", +"id": "ListSupportedDatabaseFlagsResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"supportedDatabaseFlags": { +"description": "The list of SupportedDatabaseFlags.", +"items": { +"$ref": "SupportedDatabaseFlag" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsersResponse": { +"description": "Message for response to listing Users", +"id": "ListUsersResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"users": { +"description": "The list of User", +"items": { +"$ref": "User" +}, +"type": "array" +} +}, +"type": "object" +}, +"MachineConfig": { +"description": "MachineConfig describes the configuration of a machine.", +"id": "MachineConfig", +"properties": { +"cpuCount": { +"description": "The number of CPU's in the VM instance.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"MaintenanceSchedule": { +"description": "MaintenanceSchedule stores the maintenance schedule generated from the MaintenanceUpdatePolicy, once a maintenance rollout is triggered, if MaintenanceWindow is set, and if there is no conflicting DenyPeriod. The schedule is cleared once the update takes place. This field cannot be manually changed; modify the MaintenanceUpdatePolicy instead.", +"id": "MaintenanceSchedule", +"properties": { +"startTime": { +"description": "Output only. The scheduled start time for the maintenance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceUpdatePolicy": { +"description": "MaintenanceUpdatePolicy defines the policy for system updates.", +"id": "MaintenanceUpdatePolicy", +"properties": { +"maintenanceWindows": { +"description": "Preferred windows to perform maintenance. Currently limited to 1.", +"items": { +"$ref": "MaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow specifies a preferred day and time for maintenance.", +"id": "MaintenanceWindow", +"properties": { +"day": { +"description": "Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"startTime": { +"$ref": "GoogleTypeTimeOfDay", +"description": "Preferred time to start the maintenance operation on the specified day. Maintenance will start within 1 hour of this time." +} +}, +"type": "object" +}, +"MigrationSource": { +"description": "Subset of the source instance configuration that is available when reading the cluster resource.", +"id": "MigrationSource", +"properties": { +"hostPort": { +"description": "Output only. The host and port of the on-premises instance in host:port format", +"readOnly": true, +"type": "string" +}, +"referenceId": { +"description": "Output only. Place holder for the external source identifier(e.g DMS job name) that created the cluster.", +"readOnly": true, +"type": "string" +}, +"sourceType": { +"description": "Output only. Type of migration source.", +"enum": [ +"MIGRATION_SOURCE_TYPE_UNSPECIFIED", +"DMS" +], +"enumDescriptions": [ +"Migration source is unknown.", +"DMS source means the cluster was created via DMS migration job." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Metadata related to network configuration.", +"id": "NetworkConfig", +"properties": { +"allocatedIpRange": { +"description": "Optional. Name of the allocated IP range for the private IP AlloyDB cluster, for example: \"google-managed-services-default\". If set, the instance IPs for this cluster will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. Field name is intended to be consistent with Cloud SQL.", +"type": "string" +}, +"network": { +"description": "Optional. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: `projects/{project_number}/global/networks/{network_id}`. This is required to create a cluster.", +"type": "string" +} +}, +"type": "object" +}, +"Node": { +"description": "Details of a single node in the instance. Nodes in an AlloyDB instance are ephemereal, they can change during update, failover, autohealing and resize operations.", +"id": "Node", +"properties": { +"id": { +"description": "Output only. The identifier of the VM e.g. \"test-read-0601-407e52be-ms3l\".", +"readOnly": true, +"type": "string" +}, +"ip": { +"description": "Output only. The private IP address of the VM e.g. \"10.57.0.34\".", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Determined by state of the compute VM and postgres-service health. Compute VM state can have values listed in https://cloud.google.com/compute/docs/instances/instance-life-cycle and postgres-service health can have values: HEALTHY and UNHEALTHY.", +"readOnly": true, +"type": "string" +}, +"zoneId": { +"description": "Output only. The Compute Engine zone of the VM e.g. \"us-central1-b\".", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ObservabilityInstanceConfig": { +"description": "Observability Instance specific configuration.", +"id": "ObservabilityInstanceConfig", +"properties": { +"enabled": { +"description": "Observability feature status for an instance. This flag is turned \"off\" by default.", +"type": "boolean" +}, +"maxQueryStringLength": { +"description": "Query string length. The default value is 10k.", +"format": "int32", +"type": "integer" +}, +"preserveComments": { +"description": "Preserve comments in query string for an instance. This flag is turned \"off\" by default.", +"type": "boolean" +}, +"queryPlansPerMinute": { +"description": "Number of query execution plans captured by Insights per minute for all queries combined. The default value is 200. Any integer between 0 to 200 is considered valid.", +"format": "int32", +"type": "integer" +}, +"recordApplicationTags": { +"description": "Record application tags for an instance. This flag is turned \"off\" by default.", +"type": "boolean" +}, +"trackActiveQueries": { +"description": "Track actively running queries on the instance. If not set, this flag is \"off\" by default.", +"type": "boolean" +}, +"trackClientAddress": { +"description": "Track client address for an instance. If not set, default value is \"off\".", +"type": "boolean" +}, +"trackWaitEventTypes": { +"description": "Output only. Track wait event types during query execution for an instance. This flag is turned \"on\" by default but tracking is enabled only after observability enabled flag is also turned on. This is read-only flag and only modifiable by producer API.", +"readOnly": true, +"type": "boolean" +}, +"trackWaitEvents": { +"description": "Track wait events during query execution for an instance. This flag is turned \"on\" by default but tracking is enabled only after observability enabled flag is also turned on.", +"type": "boolean" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrimaryConfig": { +"description": "Configuration for the primary cluster. It has the list of clusters that are replicating from this cluster. This should be set if and only if the cluster is of type PRIMARY.", +"id": "PrimaryConfig", +"properties": { +"secondaryClusterNames": { +"description": "Output only. Names of the clusters that are replicating from this cluster.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"PromoteClusterRequest": { +"description": "Message for promoting a Cluster", +"id": "PromoteClusterRequest", +"properties": { +"etag": { +"description": "Optional. The current etag of the Cluster. If an etag is provided and does not match the current etag of the Cluster, deletion will be blocked and an ABORTED error will be returned.", +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"PscConfig": { +"description": "PscConfig contains PSC related configuration at a cluster level.", +"id": "PscConfig", +"properties": { +"pscEnabled": { +"description": "Optional. Create an instance that allows connections from Private Service Connect endpoints to the instance.", +"type": "boolean" +}, +"serviceOwnedProjectNumber": { +"description": "Output only. The project number that needs to be allowlisted on the network attachment to enable outbound connectivity.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PscInstanceConfig": { +"description": "PscInstanceConfig contains PSC related configuration at an instance level.", +"id": "PscInstanceConfig", +"properties": { +"allowedConsumerProjects": { +"description": "Optional. List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pscDnsName": { +"description": "Output only. The DNS name of the instance for PSC connectivity. Name convention: ...alloydb-psc.goog", +"readOnly": true, +"type": "string" +}, +"pscInterfaceConfigs": { +"description": "Optional. Configurations for setting up PSC interfaces attached to the instance which are used for outbound connectivity. Only primary instances can have PSC interface attached. Currently we only support 0 or 1 PSC interface.", +"items": { +"$ref": "PscInterfaceConfig" +}, +"type": "array" +}, +"serviceAttachmentLink": { +"description": "Output only. The service attachment created when Private Service Connect (PSC) is enabled for the instance. The name of the resource will be in the format of `projects//regions//serviceAttachments/`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PscInterfaceConfig": { +"description": "Configuration for setting up a PSC interface to enable outbound connectivity.", +"id": "PscInterfaceConfig", +"properties": { +"networkAttachmentResource": { +"description": "The network attachment resource created in the consumer network to which the PSC interface will be linked. This is of the format: \"projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}\". The network attachment must be in the same region as the instance.", +"type": "string" +} +}, +"type": "object" +}, +"QuantityBasedExpiry": { +"description": "A backup's position in a quantity-based retention queue, of backups with the same source cluster and type, with length, retention, specified by the backup's retention policy. Once the position is greater than the retention, the backup is eligible to be garbage collected. Example: 5 backups from the same source cluster and type with a quantity-based retention of 3 and denoted by backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3)", +"id": "QuantityBasedExpiry", +"properties": { +"retentionCount": { +"description": "Output only. The backup's position among its backups with the same source cluster and type, by descending chronological order create time(i.e. newest first).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"totalRetentionCount": { +"description": "Output only. The length of the quantity-based queue, specified by the backup's retention policy.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"QuantityBasedRetention": { +"description": "A quantity based policy specifies that a certain number of the most recent successful backups should be retained.", +"id": "QuantityBasedRetention", +"properties": { +"count": { +"description": "The number of backups to retain.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"QueryInsightsInstanceConfig": { +"description": "QueryInsights Instance specific configuration.", +"id": "QueryInsightsInstanceConfig", +"properties": { +"queryPlansPerMinute": { +"description": "Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid.", +"format": "uint32", +"type": "integer" +}, +"queryStringLength": { +"description": "Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid.", +"format": "uint32", +"type": "integer" +}, +"recordApplicationTags": { +"description": "Record application tags for an instance. This flag is turned \"on\" by default.", +"type": "boolean" +}, +"recordClientAddress": { +"description": "Record client address for an instance. Client address is PII information. This flag is turned \"on\" by default.", +"type": "boolean" +} +}, +"type": "object" +}, +"ReadPoolConfig": { +"description": "Configuration for a read pool instance.", +"id": "ReadPoolConfig", +"properties": { +"nodeCount": { +"description": "Read capacity, i.e. number of nodes in a read pool instance.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"RestartInstanceRequest": { +"id": "RestartInstanceRequest", +"properties": { +"nodeIds": { +"description": "Optional. Full name of the nodes as obtained from INSTANCE_VIEW_FULL to restart upon. Applicable only to read instances.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"RestoreClusterRequest": { +"description": "Message for restoring a Cluster from a backup or another cluster at a given point in time.", +"id": "RestoreClusterRequest", +"properties": { +"backupSource": { +"$ref": "BackupSource", +"description": "Backup source." +}, +"cluster": { +"$ref": "Cluster", +"description": "Required. The resource being created" +}, +"clusterId": { +"description": "Required. ID of the requesting object.", +"type": "string" +}, +"continuousBackupSource": { +"$ref": "ContinuousBackupSource", +"description": "ContinuousBackup source. Continuous backup needs to be enabled in the source cluster for this operation to succeed." +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"RestoreFromCloudSQLRequest": { +"description": "Message for registering Restoring from CloudSQL resource.", +"id": "RestoreFromCloudSQLRequest", +"properties": { +"cloudsqlBackupRunSource": { +"$ref": "CloudSQLBackupRunSource", +"description": "Cluster created from CloudSQL backup run." +}, +"cluster": { +"$ref": "Cluster", +"description": "Required. The resource being created" +}, +"clusterId": { +"description": "Required. ID of the requesting object.", +"type": "string" +} +}, +"type": "object" +}, +"SecondaryConfig": { +"description": "Configuration information for the secondary cluster. This should be set if and only if the cluster is of type SECONDARY.", +"id": "SecondaryConfig", +"properties": { +"primaryClusterName": { +"description": "The name of the primary cluster name with the format: * projects/{project}/locations/{region}/clusters/{cluster_id}", +"type": "string" +} +}, +"type": "object" +}, +"SqlExportOptions": { +"description": "Options for exporting data in SQL format.", +"id": "SqlExportOptions", +"properties": { +"cleanTargetObjects": { +"description": "Optional. If true, output commands to DROP all the dumped database objects prior to outputting the commands for creating them.", +"type": "boolean" +}, +"ifExistTargetObjects": { +"description": "Optional. If true, use DROP ... IF EXISTS commands to check for the object's existence before dropping it in clean_target_objects mode.", +"type": "boolean" +}, +"schemaOnly": { +"description": "Optional. If true, only export the schema.", +"type": "boolean" +}, +"tables": { +"description": "Optional. Tables to export from.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SslConfig": { +"description": "SSL configuration.", +"id": "SslConfig", +"properties": { +"caSource": { +"description": "Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is supported currently, and is the default value.", +"enum": [ +"CA_SOURCE_UNSPECIFIED", +"CA_SOURCE_MANAGED" +], +"enumDescriptions": [ +"Certificate Authority (CA) source not specified. Defaults to CA_SOURCE_MANAGED.", +"Certificate Authority (CA) managed by the AlloyDB Cluster." +], +"type": "string" +}, +"sslMode": { +"description": "Optional. SSL mode. Specifies client-server SSL/TLS connection behavior.", +"enum": [ +"SSL_MODE_UNSPECIFIED", +"SSL_MODE_ALLOW", +"SSL_MODE_REQUIRE", +"SSL_MODE_VERIFY_CA", +"ALLOW_UNENCRYPTED_AND_ENCRYPTED", +"ENCRYPTED_ONLY" +], +"enumDeprecated": [ +false, +true, +true, +true, +false, +false +], +"enumDescriptions": [ +"SSL mode is not specified. Defaults to ENCRYPTED_ONLY.", +"SSL connections are optional. CA verification not enforced.", +"SSL connections are required. CA verification not enforced. Clients may use locally self-signed certificates (default psql client behavior).", +"SSL connections are required. CA verification enforced. Clients must have certificates signed by a Cluster CA, for example, using GenerateClientCertificate.", +"SSL connections are optional. CA verification not enforced.", +"SSL connections are required. CA verification not enforced." +], +"type": "string" +} +}, +"type": "object" +}, +"StageInfo": { +"description": "Stage information for different stages in the upgrade process.", +"id": "StageInfo", +"properties": { +"logsUrl": { +"description": "logs_url is the URL for the logs associated with a stage if that stage has logs. Right now, only three stages have logs: ALLOYDB_PRECHECK, PG_UPGRADE_CHECK, PRIMARY_INSTANCE_UPGRADE.", +"type": "string" +}, +"stage": { +"description": "The stage.", +"enum": [ +"STAGE_UNSPECIFIED", +"ALLOYDB_PRECHECK", +"PG_UPGRADE_CHECK", +"PREPARE_FOR_UPGRADE", +"PRIMARY_INSTANCE_UPGRADE", +"READ_POOL_INSTANCES_UPGRADE", +"ROLLBACK", +"CLEANUP" +], +"enumDescriptions": [ +"Unspecified stage.", +"Pre-upgrade custom checks, not covered by pg_upgrade.", +"Pre-upgrade pg_upgrade checks.", +"Clone the original cluster.", +"Upgrade the primary instance(downtime).", +"This stage is read pool upgrade.", +"Rollback in case of critical failures.", +"Cleanup." +], +"type": "string" +}, +"status": { +"description": "Status of the stage.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration": { +"description": "Configuration for availability of database instance", +"id": "StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration", +"properties": { +"automaticFailoverRoutingConfigured": { +"description": "Checks for existence of (multi-cluster) routing configuration that allows automatic failover to a different zone/region in case of an outage. Applicable to Bigtable resources.", +"type": "boolean" +}, +"availabilityType": { +"description": "Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", +"enum": [ +"AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL", +"MULTI_REGIONAL", +"AVAILABILITY_TYPE_OTHER" +], +"enumDescriptions": [ +"", +"Zonal available instance.", +"Regional available instance.", +"Multi regional instance", +"For rest of the other category" +], +"type": "string" +}, +"crossRegionReplicaConfigured": { +"description": "Checks for resources that are configured to have redundancy, and ongoing replication across regions", +"type": "boolean" +}, +"externalReplicaConfigured": { +"type": "boolean" +}, +"promotableReplicaConfigured": { +"type": "boolean" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainBackupConfiguration": { +"description": "Configuration for automatic backups", +"id": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", +"properties": { +"automatedBackupEnabled": { +"description": "Whether customer visible automated backups are enabled on the instance.", +"type": "boolean" +}, +"backupRetentionSettings": { +"$ref": "StorageDatabasecenterPartnerapiV1mainRetentionSettings", +"description": "Backup retention settings." +}, +"pointInTimeRecoveryEnabled": { +"description": "Whether point-in-time recovery is enabled. This is optional field, if the database service does not have this feature or metadata is not available in control plane, this can be omitted.", +"type": "boolean" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainBackupRun": { +"description": "A backup run.", +"id": "StorageDatabasecenterPartnerapiV1mainBackupRun", +"properties": { +"endTime": { +"description": "The time the backup operation completed. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"error": { +"$ref": "StorageDatabasecenterPartnerapiV1mainOperationError", +"description": "Information about why the backup operation failed. This is only present if the run has the FAILED status. OPTIONAL" +}, +"startTime": { +"description": "The time the backup operation started. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"status": { +"description": "The status of this run. REQUIRED", +"enum": [ +"STATUS_UNSPECIFIED", +"SUCCESSFUL", +"FAILED" +], +"enumDescriptions": [ +"", +"The backup was successful.", +"The backup was unsuccessful." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainCompliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "StorageDatabasecenterPartnerapiV1mainCompliance", +"properties": { +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainCustomMetadataData": { +"description": "Any custom metadata associated with the resource. e.g. A spanner instance can have multiple databases with its own unique metadata. Information for these individual databases can be captured in custom metadata data", +"id": "StorageDatabasecenterPartnerapiV1mainCustomMetadataData", +"properties": { +"internalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration.", +"items": { +"$ref": "StorageDatabasecenterPartnerapiV1mainInternalResourceMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed": { +"description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed", +"properties": { +"feedTimestamp": { +"description": "Required. Timestamp when feed is generated.", +"format": "google-datetime", +"type": "string" +}, +"feedType": { +"description": "Required. Type feed to be ingested into condor", +"enum": [ +"FEEDTYPE_UNSPECIFIED", +"RESOURCE_METADATA", +"OBSERVABILITY_DATA", +"SECURITY_FINDING_DATA", +"RECOMMENDATION_SIGNAL_DATA" +], +"enumDescriptions": [ +"", +"Database resource metadata feed from control plane", +"Database resource monitoring data", +"Database resource security health signal data", +"Database resource recommendation signal data" +], +"type": "string" +}, +"observabilityMetricData": { +"$ref": "StorageDatabasecenterPartnerapiV1mainObservabilityMetricData" +}, +"recommendationSignalData": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData" +}, +"resourceHealthSignalData": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData" +}, +"resourceId": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"deprecated": true, +"description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." +}, +"resourceMetadata": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData": { +"description": "Common model for database resource health signal data.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Any other additional metadata", +"type": "object" +}, +"compliance": { +"description": "Industry standards associated with this signal; if this signal is an issue, that could be a violation of the associated industry standard(s). For example, AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database resource does not have automated backup enable, it will violate these following industry standards.", +"items": { +"$ref": "StorageDatabasecenterPartnerapiV1mainCompliance" +}, +"type": "array" +}, +"description": { +"description": "Description associated with signal", +"type": "string" +}, +"eventTime": { +"description": "Required. The last time at which the event described by this signal took place", +"format": "google-datetime", +"type": "string" +}, +"externalUri": { +"description": "The external-uri of the signal, using which more information about this signal can be obtained. In GCP, this will take user to SCC page to get more details about signals.", +"type": "string" +}, +"name": { +"description": "Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE, SQL_LOG_ERROR_VERBOSITY etc.", +"type": "string" +}, +"provider": { +"description": "Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"resourceContainer": { +"description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalClass": { +"description": "Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.", +"enum": [ +"CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"ERROR" +], +"enumDescriptions": [ +"Unspecified signal class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality." +], +"type": "string" +}, +"signalId": { +"description": "Required. Unique identifier for the signal. This is an unique id which would be mainatined by partner to identify a signal.", +"type": "string" +}, +"signalSeverity": { +"description": "The severity of the signal, such as if it's a HIGH or LOW severity.", +"enum": [ +"SIGNAL_SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"A critical vulnerability is easily discoverable by an external actor, exploitable.", +"A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities.", +"A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually gain access and the ability to execute arbitrary code or exfiltrate data.", +"A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment." +], +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `LOGGING_MOST_ERRORS`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +}, +"state": { +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"RESOLVED", +"MUTED" +], +"enumDescriptions": [ +"Unspecified state.", +"The signal requires attention and has not been addressed yet.", +"The signal has been fixed, triaged as a non-issue or otherwise addressed and is no longer active.", +"The signal has been muted." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceId": { +"description": "DatabaseResourceId will serve as primary key for any resource ingestion event.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"properties": { +"provider": { +"description": "Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"providerDescription": { +"description": "Optional. Needs to be used only when the provider is PROVIDER_OTHER.", +"type": "string" +}, +"resourceType": { +"description": "Required. The type of resource this ID is identifying. Ex redis.googleapis.com/Instance, redis.googleapis.com/Cluster, alloydb.googleapis.com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance, spanner.googleapis.com/Database, firestore.googleapis.com/Database, sqladmin.googleapis.com/Instance, bigtableadmin.googleapis.com/Cluster, bigtableadmin.googleapis.com/Instance REQUIRED Please refer go/condor-common-datamodel", +"type": "string" +}, +"uniqueId": { +"description": "Required. A service-local token that distinguishes this resource from other resources within the same service.", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata": { +"description": "Common model for database resource instance metadata. Next ID: 23", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata", +"properties": { +"availabilityConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration", +"description": "Availability configuration for this instance" +}, +"backupConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", +"description": "Backup configuration for this instance" +}, +"backupRun": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupRun", +"description": "Latest backup run information for this instance" +}, +"creationTime": { +"description": "The creation time of the resource, i.e. the time when resource is created and recorded in partner service.", +"format": "google-datetime", +"type": "string" +}, +"currentState": { +"description": "Current state of the instance.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"customMetadata": { +"$ref": "StorageDatabasecenterPartnerapiV1mainCustomMetadataData", +"description": "Any custom metadata associated with the resource" +}, +"edition": { +"description": "Optional. Edition represents whether the instance is ENTERPRISE or ENTERPRISE_PLUS. This information is core to Cloud SQL only and is used to identify the edition of the instance.", +"enum": [ +"EDITION_UNSPECIFIED", +"EDITION_ENTERPRISE", +"EDITION_ENTERPRISE_PLUS" +], +"enumDescriptions": [ +"Default, to make it consistent with instance edition enum.", +"Represents the enterprise edition.", +"Represents the enterprise plus edition." +], +"type": "string" +}, +"entitlements": { +"description": "Entitlements associated with the resource", +"items": { +"$ref": "StorageDatabasecenterPartnerapiV1mainEntitlement" +}, +"type": "array" +}, +"expectedState": { +"description": "The state that the instance is expected to be in. For example, an instance state can transition to UNHEALTHY due to wrong patch update, while the expected state will remain at the HEALTHY.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"id": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"description": "Required. Unique identifier for a Database resource" +}, +"instanceType": { +"description": "The type of the instance. Specified at creation time.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"SUB_RESOURCE_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY", +"READ_REPLICA", +"OTHER", +"SUB_RESOURCE_TYPE_PRIMARY", +"SUB_RESOURCE_TYPE_SECONDARY", +"SUB_RESOURCE_TYPE_READ_REPLICA", +"SUB_RESOURCE_TYPE_OTHER" +], +"enumDeprecated": [ +true, +false, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories." +], +"type": "string" +}, +"location": { +"description": "The resource location. REQUIRED", +"type": "string" +}, +"machineConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainMachineConfiguration", +"description": "Machine configuration for this resource." +}, +"primaryResourceId": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", +"description": "Identifier for this resource's immediate parent/primary resource if the current resource is a replica or derived form of another Database resource. Else it would be NULL. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional." +}, +"primaryResourceLocation": { +"description": "Primary resource location. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional.", +"type": "string" +}, +"product": { +"$ref": "StorageDatabasecenterProtoCommonProduct", +"description": "The product this resource represents." +}, +"resourceContainer": { +"description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Different from DatabaseResourceId.unique_id, a resource name can be reused over time. That is, after a resource named \"ABC\" is deleted, the name \"ABC\" can be used to to create a new resource within the same source. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"tagsSet": { +"$ref": "StorageDatabasecenterPartnerapiV1mainTags", +"description": "Optional. Tags associated with this resources." +}, +"updationTime": { +"description": "The time at which the resource was updated and recorded at partner service.", +"format": "google-datetime", +"type": "string" +}, +"userLabelSet": { +"$ref": "StorageDatabasecenterPartnerapiV1mainUserLabels", +"description": "User-provided labels associated with the resource" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData": { +"description": "Common model for database resource recommendation signal data.", +"id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Any other additional metadata specific to recommendation", +"type": "object" +}, +"lastRefreshTime": { +"description": "Required. last time recommendationw as refreshed", +"format": "google-datetime", +"type": "string" +}, +"recommendationState": { +"description": "Required. Recommendation state", +"enum": [ +"UNSPECIFIED", +"ACTIVE", +"CLAIMED", +"SUCCEEDED", +"FAILED", +"DISMISSED" +], +"enumDescriptions": [ +"", +"Recommendation is active and can be applied. ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in claimed state. Recommendations content is immutable and cannot be updated by Google. CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in succeeded state. Recommendations content is immutable and cannot be updated by Google. SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in failed state. Recommendations content is immutable and cannot be updated by Google. FAILED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in dismissed state. Recommendation content can be updated by Google. DISMISSED recommendations can be marked as ACTIVE." +], +"type": "string" +}, +"recommender": { +"description": "Required. Name of recommendation. Examples: organizations/1234/locations/us-central1/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/9876", +"type": "string" +}, +"recommenderId": { +"description": "Required. ID of recommender. Examples: \"google.cloudsql.instance.PerformanceRecommender\"", +"type": "string" +}, +"recommenderSubtype": { +"description": "Required. Contains an identifier for a subtype of recommendations produced for the same recommender. Subtype is a function of content and impact, meaning a new subtype might be added when significant changes to `content` or `primary_impact.category` are introduced. See the Recommenders section to see a list of subtypes for a given Recommender. Examples: For recommender = \"google.cloudsql.instance.PerformanceRecommender\", recommender_subtype can be \"MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE\"/\"POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE\"", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `SIGNAL_TYPE_IDLE`, `SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainEntitlement": { +"description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", +"id": "StorageDatabasecenterPartnerapiV1mainEntitlement", +"properties": { +"entitlementState": { +"description": "The current state of user's accessibility to a feature/benefit.", +"enum": [ +"ENTITLEMENT_STATE_UNSPECIFIED", +"ENTITLED", +"REVOKED" +], +"enumDescriptions": [ +"", +"User is entitled to a feature/benefit, but whether it has been successfully provisioned is decided by provisioning state.", +"User is entitled to a feature/benefit, but it was requested to be revoked. Whether the revoke has been successful is decided by provisioning state." +], +"type": "string" +}, +"type": { +"description": "An enum that represents the type of this entitlement.", +"enum": [ +"ENTITLEMENT_TYPE_UNSPECIFIED", +"GEMINI" +], +"enumDescriptions": [ +"", +"The root entitlement representing Gemini package ownership." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainInternalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration settings. Similarly bigtable can have multiple clusters within same bigtable instance.", +"id": "StorageDatabasecenterPartnerapiV1mainInternalResourceMetadata", +"properties": { +"backupConfiguration": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", +"description": "Backup configuration for this database" +}, +"backupRun": { +"$ref": "StorageDatabasecenterPartnerapiV1mainBackupRun", +"description": "Information about the last backup attempt for this database" +}, +"product": { +"$ref": "StorageDatabasecenterProtoCommonProduct" +}, +"resourceId": { +"$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId" +}, +"resourceName": { +"description": "Required. internal resource name for spanner this will be database name e.g.\"spanner.googleapis.com/projects/123/abc/instances/inst1/databases/db1\"", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainMachineConfiguration": { +"description": "MachineConfiguration describes the configuration of a machine specific to Database Resource.", +"id": "StorageDatabasecenterPartnerapiV1mainMachineConfiguration", +"properties": { +"cpuCount": { +"deprecated": true, +"description": "The number of CPUs. Deprecated. Use vcpu_count instead. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int32", +"type": "integer" +}, +"memorySizeInBytes": { +"description": "Memory size in bytes. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int64", +"type": "string" +}, +"shardCount": { +"description": "Optional. Number of shards (if applicable).", +"format": "int32", +"type": "integer" +}, +"vcpuCount": { +"description": "Optional. The number of vCPUs. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainObservabilityMetricData": { +"id": "StorageDatabasecenterPartnerapiV1mainObservabilityMetricData", +"properties": { +"aggregationType": { +"description": "Required. Type of aggregation performed on the metric.", +"enum": [ +"AGGREGATION_TYPE_UNSPECIFIED", +"PEAK", +"P99", +"P95", +"CURRENT" +], +"enumDescriptions": [ +"Unspecified aggregation type.", +"PEAK aggregation type.", +"P99 aggregation type.", +"P95 aggregation type.", +"current aggregation type." +], +"type": "string" +}, +"metricType": { +"description": "Required. Type of metric like CPU, Memory, etc.", +"enum": [ +"METRIC_TYPE_UNSPECIFIED", +"CPU_UTILIZATION", +"MEMORY_UTILIZATION", +"NETWORK_CONNECTIONS", +"STORAGE_UTILIZATION", +"STORAGE_USED_BYTES" +], +"enumDescriptions": [ +"Unspecified metric type.", +"CPU utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Memory utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Number of network connections for a resource.", +"Storage utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Sotrage used by a resource." +], +"type": "string" +}, +"observationTime": { +"description": "Required. The time the metric value was observed.", +"format": "google-datetime", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"value": { +"$ref": "StorageDatabasecenterProtoCommonTypedValue", +"description": "Required. Value of the metric type." +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainOperationError": { +"description": "An error that occurred during a backup creation operation.", +"id": "StorageDatabasecenterPartnerapiV1mainOperationError", +"properties": { +"code": { +"description": "Identifies the specific error that occurred. REQUIRED", +"type": "string" +}, +"errorType": { +"enum": [ +"OPERATION_ERROR_TYPE_UNSPECIFIED", +"KMS_KEY_ERROR", +"DATABASE_ERROR", +"STOCKOUT_ERROR", +"CANCELLATION_ERROR", +"SQLSERVER_ERROR", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"key destroyed, expired, not found, unreachable or permission denied.", +"Database is not accessible", +"The zone or region does not have sufficient resources to handle the request at the moment", +"User initiated cancellation", +"SQL server specific error", +"Any other internal error." +], +"type": "string" +}, +"message": { +"description": "Additional information about the error encountered. REQUIRED", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainRetentionSettings": { +"id": "StorageDatabasecenterPartnerapiV1mainRetentionSettings", +"properties": { +"durationBasedRetention": { +"description": "Duration based retention period i.e. 172800 seconds (2 days)", +"format": "google-duration", +"type": "string" +}, +"quantityBasedRetention": { +"format": "int32", +"type": "integer" +}, +"retentionUnit": { +"deprecated": true, +"description": "The unit that 'retained_backups' represents.", +"enum": [ +"RETENTION_UNIT_UNSPECIFIED", +"COUNT", +"TIME", +"DURATION", +"RETENTION_UNIT_OTHER" +], +"enumDescriptions": [ +"Backup retention unit is unspecified, will be treated as COUNT.", +"Retention will be by count, eg. \"retain the most recent 7 backups\".", +"Retention will be by Time, eg. \"retain backups till a specific time\" i.e. till 2024-05-01T00:00:00Z.", +"Retention will be by duration, eg. \"retain the backups for 172800 seconds (2 days)\".", +"For rest of the other category" +], +"type": "string" +}, +"timeBasedRetention": { +"format": "google-duration", +"type": "string" +}, +"timestampBasedRetentionTime": { +"description": "Timestamp based retention period i.e. 2024-05-01T00:00:00Z", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainTags": { +"description": "Message type for storing tags. Tags provide a way to create annotations for resources, and in some cases conditionally allow or deny policies based on whether a resource has a specific tag.", +"id": "StorageDatabasecenterPartnerapiV1mainTags", +"properties": { +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "The Tag key/value mappings.", +"type": "object" +} +}, +"type": "object" +}, +"StorageDatabasecenterPartnerapiV1mainUserLabels": { +"description": "Message type for storing user labels. User labels are used to tag App Engine resources, allowing users to search for resources matching a set of labels and to aggregate usage data by labels.", +"id": "StorageDatabasecenterPartnerapiV1mainUserLabels", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +} +}, +"type": "object" +}, +"StorageDatabasecenterProtoCommonProduct": { +"description": "Product specification for Condor resources.", +"id": "StorageDatabasecenterProtoCommonProduct", +"properties": { +"engine": { +"description": "The specific engine that the underlying database is running.", +"enum": [ +"ENGINE_UNSPECIFIED", +"ENGINE_MYSQL", +"MYSQL", +"ENGINE_POSTGRES", +"POSTGRES", +"ENGINE_SQL_SERVER", +"SQL_SERVER", +"ENGINE_NATIVE", +"NATIVE", +"ENGINE_CLOUD_SPANNER_WITH_POSTGRES_DIALECT", +"ENGINE_CLOUD_SPANNER_WITH_GOOGLESQL_DIALECT", +"ENGINE_MEMORYSTORE_FOR_REDIS", +"ENGINE_MEMORYSTORE_FOR_REDIS_CLUSTER", +"ENGINE_OTHER", +"ENGINE_FIRESTORE_WITH_NATIVE_MODE", +"ENGINE_FIRESTORE_WITH_DATASTORE_MODE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means engine type is not known or available.", +"MySQL binary running as an engine in the database instance.", +"MySQL binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"Native database binary running as engine in instance.", +"Native database binary running as engine in instance.", +"Cloud Spanner with PostgreSQL dialect.", +"Cloud Spanner with Google SQL dialect.", +"Memorystore with Redis dialect.", +"Memorystore with Redis cluster dialect.", +"Other refers to rest of other database engine. This is to be when engine is known, but it is not present in this enum.", +"Firestore with native mode.", +"Firestore with datastore mode." +], +"type": "string" +}, +"type": { +"description": "Type of specific database product. It could be CloudSQL, AlloyDB etc..", +"enum": [ +"PRODUCT_TYPE_UNSPECIFIED", +"PRODUCT_TYPE_CLOUD_SQL", +"CLOUD_SQL", +"PRODUCT_TYPE_ALLOYDB", +"ALLOYDB", +"PRODUCT_TYPE_SPANNER", +"PRODUCT_TYPE_ON_PREM", +"ON_PREM", +"PRODUCT_TYPE_MEMORYSTORE", +"PRODUCT_TYPE_BIGTABLE", +"PRODUCT_TYPE_OTHER", +"PRODUCT_TYPE_FIRESTORE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +false, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"Cloud SQL product area in GCP", +"Cloud SQL product area in GCP", +"AlloyDB product area in GCP", +"AlloyDB product area in GCP", +"Spanner product area in GCP", +"On premises database product.", +"On premises database product.", +"Memorystore product area in GCP", +"Bigtable product area in GCP", +"Other refers to rest of other product type. This is to be when product type is known, but it is not present in this enum.", +"Firestore product area in GCP." +], +"type": "string" +}, +"version": { +"description": "Version of the underlying database engine. Example values: For MySQL, it could be \"8.0\", \"5.7\" etc.. For Postgres, it could be \"14\", \"15\" etc..", +"type": "string" +} +}, +"type": "object" +}, +"StorageDatabasecenterProtoCommonTypedValue": { +"description": "TypedValue represents the value of a metric type. It can either be a double, an int64, a string or a bool.", +"id": "StorageDatabasecenterProtoCommonTypedValue", +"properties": { +"boolValue": { +"description": "For boolean value", +"type": "boolean" +}, +"doubleValue": { +"description": "For double value", +"format": "double", +"type": "number" +}, +"int64Value": { +"description": "For integer value", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "For string value", +"type": "string" +} +}, +"type": "object" +}, +"StringRestrictions": { +"description": "Restrictions on STRING type values", +"id": "StringRestrictions", +"properties": { +"allowedValues": { +"description": "The list of allowed values, if bounded. This field will be empty if there is a unbounded number of allowed values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SupportedDatabaseFlag": { +"description": "SupportedDatabaseFlag gives general information about a database flag, like type and allowed values. This is a static value that is defined on the server side, and it cannot be modified by callers. To set the Database flags on a particular Instance, a caller should modify the Instance.database_flags field.", +"id": "SupportedDatabaseFlag", +"properties": { +"acceptsMultipleValues": { +"description": "Whether the database flag accepts multiple values. If true, a comma-separated list of stringified values may be specified.", +"type": "boolean" +}, +"flagName": { +"description": "The name of the database flag, e.g. \"max_allowed_packets\". The is a possibly key for the Instance.database_flags map field.", +"type": "string" +}, +"integerRestrictions": { +"$ref": "IntegerRestrictions", +"description": "Restriction on INTEGER type value." +}, +"name": { +"description": "The name of the flag resource, following Google Cloud conventions, e.g.: * projects/{project}/locations/{location}/flags/{flag} This field currently has no semantic meaning.", +"type": "string" +}, +"requiresDbRestart": { +"description": "Whether setting or updating this flag on an Instance requires a database restart. If a flag that requires database restart is set, the backend will automatically restart the database (making sure to satisfy any availability SLO's).", +"type": "boolean" +}, +"stringRestrictions": { +"$ref": "StringRestrictions", +"description": "Restriction on STRING type value." +}, +"supportedDbVersions": { +"description": "Major database engine versions for which this flag is supported.", +"items": { +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"type": "array" +}, +"valueType": { +"enum": [ +"VALUE_TYPE_UNSPECIFIED", +"STRING", +"INTEGER", +"FLOAT", +"NONE" +], +"enumDescriptions": [ +"This is an unknown flag type.", +"String type flag.", +"Integer type flag.", +"Float type flag.", +"Denotes that the flag does not accept any values." +], +"type": "string" +} +}, +"type": "object" +}, +"SwitchoverClusterRequest": { +"description": "Message for switching over to a cluster", +"id": "SwitchoverClusterRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +} +}, +"type": "object" +}, +"TimeBasedRetention": { +"description": "A time based retention policy specifies that all backups within a certain time period should be retained.", +"id": "TimeBasedRetention", +"properties": { +"retentionPeriod": { +"description": "The retention period.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"TrialMetadata": { +"description": "Contains information and all metadata related to TRIAL clusters.", +"id": "TrialMetadata", +"properties": { +"endTime": { +"description": "End time of the trial cluster.", +"format": "google-datetime", +"type": "string" +}, +"graceEndTime": { +"description": "grace end time of the cluster.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "start time of the trial cluster.", +"format": "google-datetime", +"type": "string" +}, +"upgradeTime": { +"description": "Upgrade time of trial cluster to Standard cluster.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdatePolicy": { +"description": "Policy to be used while updating the instance.", +"id": "UpdatePolicy", +"properties": { +"mode": { +"description": "Mode for updating the instance.", +"enum": [ +"MODE_UNSPECIFIED", +"DEFAULT", +"FORCE_APPLY" +], +"enumDescriptions": [ +"Mode is unknown.", +"Least disruptive way to apply the update.", +"Performs a forced update when applicable. This will be fast but may incur a downtime." +], +"type": "string" +} +}, +"type": "object" +}, +"UpgradeClusterRequest": { +"description": "Upgrades a cluster.", +"id": "UpgradeClusterRequest", +"properties": { +"etag": { +"description": "Optional. The current etag of the Cluster. If an etag is provided and does not match the current etag of the Cluster, upgrade will be blocked and an ABORTED error will be returned.", +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server ignores the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, performs request validation, for example, permission checks and any other type of validation, but does not actually execute the create request.", +"type": "boolean" +}, +"version": { +"description": "Required. The version the cluster is going to be upgraded to.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"This is an unknown database version.", +"DEPRECATED - The database version is Postgres 13.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +} +}, +"type": "object" +}, +"UpgradeClusterResponse": { +"description": "UpgradeClusterResponse contains the response for upgrade cluster operation.", +"id": "UpgradeClusterResponse", +"properties": { +"clusterUpgradeDetails": { +"description": "Array of upgrade details for the current cluster and all the secondary clusters associated with this cluster.", +"items": { +"$ref": "ClusterUpgradeDetails" +}, +"type": "array" +}, +"message": { +"description": "A user friendly message summarising the upgrade operation details and the next steps for the user if there is any.", +"type": "string" +}, +"status": { +"description": "Status of upgrade operation.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"SUCCESS", +"FAILED", +"PARTIAL_SUCCESS", +"CANCEL_IN_PROGRESS", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified status.", +"Not started.", +"In progress.", +"Operation succeeded.", +"Operation failed.", +"Operation partially succeeded.", +"Cancel is in progress.", +"Cancellation complete." +], +"type": "string" +} +}, +"type": "object" +}, +"User": { +"description": "Message describing User object.", +"id": "User", +"properties": { +"databaseRoles": { +"description": "Optional. List of database roles this user has. The database role strings are subject to the PostgreSQL naming conventions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"keepExtraRoles": { +"description": "Input only. If the user already exists and it has additional roles, keep them granted.", +"type": "boolean" +}, +"name": { +"description": "Output only. Name of the resource in the form of projects/{project}/locations/{location}/cluster/{cluster}/users/{user}.", +"readOnly": true, +"type": "string" +}, +"password": { +"description": "Input only. Password for the user.", +"type": "string" +}, +"userType": { +"description": "Optional. Type of this user.", +"enum": [ +"USER_TYPE_UNSPECIFIED", +"ALLOYDB_BUILT_IN", +"ALLOYDB_IAM_USER" +], +"enumDescriptions": [ +"Unspecified user type.", +"The default user type that authenticates via password-based authentication.", +"Database user that can authenticate via IAM-Based authentication." +], +"type": "string" +} +}, +"type": "object" +}, +"UserPassword": { +"description": "The username/password for a database user. Used for specifying initial users at cluster creation time.", +"id": "UserPassword", +"properties": { +"password": { +"description": "The initial password for the user.", +"type": "string" +}, +"user": { +"description": "The database username.", +"type": "string" +} +}, +"type": "object" +}, +"WeeklySchedule": { +"description": "A weekly schedule starts a backup at prescribed start times within a day, for the specified days of the week. The weekly schedule message is flexible and can be used to create many types of schedules. For example, to have a daily backup that starts at 22:00, configure the `start_times` field to have one element \"22:00\" and the `days_of_week` field to have all seven days of the week.", +"id": "WeeklySchedule", +"properties": { +"daysOfWeek": { +"description": "The days of the week to perform a backup. If this field is left empty, the default of every day of the week is used.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"type": "array" +}, +"startTimes": { +"description": "The times during the day to start a backup. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00). If no start times are provided, a single fixed start time is chosen arbitrarily.", +"items": { +"$ref": "GoogleTypeTimeOfDay" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "AlloyDB API", +"version": "v1alpha", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticshub.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticshub.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..9ae3774ae46e3811170013e8a76903c2f7cbcc5c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticshub.v1beta1.json @@ -0,0 +1,1449 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/bigquery": { +"description": "View and manage your data in Google BigQuery and see the email address for your Google Account" +}, +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://analyticshub.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Analytics Hub", +"description": "Exchange data and analytics assets securely and efficiently.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/bigquery/docs/analytics-hub-introduction", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "analyticshub:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://analyticshub.mtls.googleapis.com/", +"name": "analyticshub", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"resources": { +"dataExchanges": { +"methods": { +"list": { +"description": "Lists all data exchanges from projects in a given organization and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/dataExchanges", +"httpMethod": "GET", +"id": "analyticshub.organizations.locations.dataExchanges.list", +"parameterOrder": [ +"organization" +], +"parameters": { +"organization": { +"description": "Required. The organization resource path of the projects containing DataExchanges. e.g. `organizations/myorg/locations/US`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+organization}/dataExchanges", +"response": { +"$ref": "ListOrgDataExchangesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"dataExchanges": { +"methods": { +"create": { +"description": "Creates a new data exchange.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataExchangeId": { +"description": "Required. The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Max length: 100 bytes.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource path of the data exchange. e.g. `projects/myproject/locations/US`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/dataExchanges", +"request": { +"$ref": "DataExchange" +}, +"response": { +"$ref": "DataExchange" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing data exchange.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}", +"httpMethod": "DELETE", +"id": "analyticshub.projects.locations.dataExchanges.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The full name of the data exchange resource that you want to delete. For example, `projects/myproject/locations/US/dataExchanges/123`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a data exchange.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}", +"httpMethod": "GET", +"id": "analyticshub.projects.locations.dataExchanges.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the data exchange. e.g. `projects/myproject/locations/US/dataExchanges/123`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "DataExchange" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}:getIamPolicy", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all data exchanges in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges", +"httpMethod": "GET", +"id": "analyticshub.projects.locations.dataExchanges.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource path of the data exchanges. e.g. `projects/myproject/locations/US`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/dataExchanges", +"response": { +"$ref": "ListDataExchangesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing data exchange.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}", +"httpMethod": "PATCH", +"id": "analyticshub.projects.locations.dataExchanges.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the data exchange. e.g. `projects/myproject/locations/US/dataExchanges/123`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask specifies the fields to update in the data exchange resource. The fields specified in the `updateMask` are relative to the resource and are not a full request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "DataExchange" +}, +"response": { +"$ref": "DataExchange" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM policy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}:setIamPolicy", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}:testIamPermissions", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"listings": { +"methods": { +"create": { +"description": "Creates a new listing.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.listings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"listingId": { +"description": "Required. The ID of the listing to create. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Max length: 100 bytes.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource path of the listing. e.g. `projects/myproject/locations/US/dataExchanges/123`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/listings", +"request": { +"$ref": "Listing" +}, +"response": { +"$ref": "Listing" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a listing.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}", +"httpMethod": "DELETE", +"id": "analyticshub.projects.locations.dataExchanges.listings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the listing to delete. e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a listing.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}", +"httpMethod": "GET", +"id": "analyticshub.projects.locations.dataExchanges.listings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the listing. e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Listing" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:getIamPolicy", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.listings.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all listings in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings", +"httpMethod": "GET", +"id": "analyticshub.projects.locations.dataExchanges.listings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource path of the listing. e.g. `projects/myproject/locations/US/dataExchanges/123`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/listings", +"response": { +"$ref": "ListListingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing listing.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}", +"httpMethod": "PATCH", +"id": "analyticshub.projects.locations.dataExchanges.listings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the listing. e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask specifies the fields to update in the listing resource. The fields specified in the `updateMask` are relative to the resource and are not a full request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Listing" +}, +"response": { +"$ref": "Listing" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM policy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:setIamPolicy", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.listings.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"subscribe": { +"description": "Subscribes to a listing. Currently, with Analytics Hub, you can create listings that reference only BigQuery datasets. Upon subscription to a listing for a BigQuery dataset, Analytics Hub creates a linked dataset in the subscriber's project.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:subscribe", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.listings.subscribe", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the listing that you want to subscribe to. e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:subscribe", +"request": { +"$ref": "SubscribeListingRequest" +}, +"response": { +"$ref": "SubscribeListingResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:testIamPermissions", +"httpMethod": "POST", +"id": "analyticshub.projects.locations.dataExchanges.listings.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241213", +"rootUrl": "https://analyticshub.googleapis.com/", +"schemas": { +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"BigQueryDatasetSource": { +"description": "A reference to a shared dataset. It is an existing BigQuery dataset with a collection of objects such as tables and views that you want to share with subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a linked dataset in the subscriber's project. A Linked dataset is an opaque, read-only BigQuery dataset that serves as a _symbolic link_ to a shared dataset.", +"id": "BigQueryDatasetSource", +"properties": { +"dataset": { +"description": "Resource name of the dataset source for this listing. e.g. `projects/myproject/datasets/123`", +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CommercialInfo": { +"description": "Commercial info metadata for this subscription.", +"id": "CommercialInfo", +"properties": { +"cloudMarketplace": { +"$ref": "GoogleCloudMarketplaceInfo", +"description": "Output only. This is set when the subscription is commercialised via Cloud Marketplace.", +"readOnly": true +} +}, +"type": "object" +}, +"DataExchange": { +"description": "A data exchange is a container that lets you share data. Along with the descriptive information about the data exchange, it contains listings that reference shared datasets.", +"id": "DataExchange", +"properties": { +"description": { +"description": "Optional. Description of the data exchange. The description must not contain Unicode non-characters as well as C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default value is an empty string. Max length: 2000 bytes.", +"type": "string" +}, +"displayName": { +"description": "Required. Human-readable display name of the data exchange. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and must not start or end with spaces. Default value is an empty string. Max length: 63 bytes.", +"type": "string" +}, +"documentation": { +"description": "Optional. Documentation describing the data exchange.", +"type": "string" +}, +"icon": { +"description": "Optional. Base64 encoded image representing the data exchange. Max Size: 3.0MiB Expected image dimensions are 512x512 pixels, however the API only performs validation on size of the encoded data. Note: For byte fields, the content of the fields are base64-encoded (which increases the size of the data by 33-36%) when using JSON on the wire.", +"format": "byte", +"type": "string" +}, +"listingCount": { +"description": "Output only. Number of listings contained in the data exchange.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"name": { +"description": "Output only. The resource name of the data exchange. e.g. `projects/myproject/locations/US/dataExchanges/123`.", +"readOnly": true, +"type": "string" +}, +"primaryContact": { +"description": "Optional. Email or URL of the primary point of contact of the data exchange. Max Length: 1000 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"DataProvider": { +"description": "Contains details of the data provider.", +"id": "DataProvider", +"properties": { +"name": { +"description": "Optional. Name of the data provider.", +"type": "string" +}, +"primaryContact": { +"description": "Optional. Email or URL of the data provider. Max Length: 1000 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudBigqueryDataexchangeV1beta1DestinationDataset": { +"description": "Defines the destination bigquery dataset.", +"id": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDataset", +"properties": { +"datasetReference": { +"$ref": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDatasetReference", +"description": "Required. A reference that identifies the destination dataset." +}, +"description": { +"description": "Optional. A user-friendly description of the dataset.", +"type": "string" +}, +"friendlyName": { +"description": "Optional. A descriptive name for the dataset.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See https://cloud.google.com/resource-manager/docs/creating-managing-labels for more information.", +"type": "object" +}, +"location": { +"description": "Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBigqueryDataexchangeV1beta1DestinationDatasetReference": { +"description": "Contains the reference that identifies a destination bigquery dataset.", +"id": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDatasetReference", +"properties": { +"datasetId": { +"description": "Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the project containing this dataset.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMarketplaceInfo": { +"description": "Cloud Marketplace commercial metadata for this subscription.", +"id": "GoogleCloudMarketplaceInfo", +"properties": { +"order": { +"description": "Resource name of the Marketplace Order.", +"type": "string" +} +}, +"type": "object" +}, +"LinkedResource": { +"description": "Reference to a linked resource tracked by this Subscription.", +"id": "LinkedResource", +"properties": { +"linkedDataset": { +"description": "Output only. Name of the linked dataset, e.g. projects/subscriberproject/datasets/linked_dataset", +"readOnly": true, +"type": "string" +}, +"linkedPubsubSubscription": { +"description": "Output only. Name of the Pub/Sub subscription, e.g. projects/subscriberproject/subscriptions/subscriptions/sub_id", +"readOnly": true, +"type": "string" +}, +"listing": { +"description": "Output only. Listing for which linked resource is created.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListDataExchangesResponse": { +"description": "Message for response to the list of data exchanges.", +"id": "ListDataExchangesResponse", +"properties": { +"dataExchanges": { +"description": "The list of data exchanges.", +"items": { +"$ref": "DataExchange" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListListingsResponse": { +"description": "Message for response to the list of Listings.", +"id": "ListListingsResponse", +"properties": { +"listings": { +"description": "The list of Listing.", +"items": { +"$ref": "Listing" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListOrgDataExchangesResponse": { +"description": "Message for response to listing data exchanges in an organization and location.", +"id": "ListOrgDataExchangesResponse", +"properties": { +"dataExchanges": { +"description": "The list of data exchanges.", +"items": { +"$ref": "DataExchange" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"Listing": { +"description": "A listing is what gets published into a data exchange that a subscriber can subscribe to. It contains a reference to the data source along with descriptive information that will help subscribers find and subscribe the data.", +"id": "Listing", +"properties": { +"bigqueryDataset": { +"$ref": "BigQueryDatasetSource", +"description": "Required. Shared dataset i.e. BigQuery dataset source." +}, +"categories": { +"description": "Optional. Categories of the listing. Up to two categories are allowed.", +"items": { +"enum": [ +"CATEGORY_UNSPECIFIED", +"CATEGORY_OTHERS", +"CATEGORY_ADVERTISING_AND_MARKETING", +"CATEGORY_COMMERCE", +"CATEGORY_CLIMATE_AND_ENVIRONMENT", +"CATEGORY_DEMOGRAPHICS", +"CATEGORY_ECONOMICS", +"CATEGORY_EDUCATION", +"CATEGORY_ENERGY", +"CATEGORY_FINANCIAL", +"CATEGORY_GAMING", +"CATEGORY_GEOSPATIAL", +"CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE", +"CATEGORY_MEDIA", +"CATEGORY_PUBLIC_SECTOR", +"CATEGORY_RETAIL", +"CATEGORY_SPORTS", +"CATEGORY_SCIENCE_AND_RESEARCH", +"CATEGORY_TRANSPORTATION_AND_LOGISTICS", +"CATEGORY_TRAVEL_AND_TOURISM" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"dataProvider": { +"$ref": "DataProvider", +"description": "Optional. Details of the data provider who owns the source data." +}, +"description": { +"description": "Optional. Short description of the listing. The description must not contain Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default value is an empty string. Max length: 2000 bytes.", +"type": "string" +}, +"displayName": { +"description": "Required. Human-readable display name of the listing. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces. Default value is an empty string. Max length: 63 bytes.", +"type": "string" +}, +"documentation": { +"description": "Optional. Documentation describing the listing.", +"type": "string" +}, +"icon": { +"description": "Optional. Base64 encoded image representing the listing. Max Size: 3.0MiB Expected image dimensions are 512x512 pixels, however the API only performs validation on size of the encoded data. Note: For byte fields, the contents of the field are base64-encoded (which increases the size of the data by 33-36%) when using JSON on the wire.", +"format": "byte", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the listing. e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`", +"readOnly": true, +"type": "string" +}, +"primaryContact": { +"description": "Optional. Email or URL of the primary point of contact of the listing. Max Length: 1000 bytes.", +"type": "string" +}, +"publisher": { +"$ref": "Publisher", +"description": "Optional. Details of the publisher who owns the listing and who can share the source data." +}, +"requestAccess": { +"description": "Optional. Email or URL of the request access of the listing. Subscribers can use this reference to request access. Max Length: 1000 bytes.", +"type": "string" +}, +"restrictedExportConfig": { +"$ref": "RestrictedExportConfig", +"description": "Optional. If set, restricted export configuration will be propagated and enforced on the linked dataset. This is a required field for data clean room exchanges." +}, +"state": { +"description": "Output only. Current state of the listing.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Subscribable state. Users with dataexchange.listings.subscribe permission can subscribe to this listing." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of a long-running operation in Analytics Hub.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Publisher": { +"description": "Contains details of the listing publisher.", +"id": "Publisher", +"properties": { +"name": { +"description": "Optional. Name of the listing publisher.", +"type": "string" +}, +"primaryContact": { +"description": "Optional. Email or URL of the listing publisher. Max Length: 1000 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"RefreshSubscriptionResponse": { +"description": "Message for response when you refresh a subscription.", +"id": "RefreshSubscriptionResponse", +"properties": { +"subscription": { +"$ref": "Subscription", +"description": "The refreshed subscription resource." +} +}, +"type": "object" +}, +"RestrictedExportConfig": { +"description": "Restricted export config, used to configure restricted export on linked dataset.", +"id": "RestrictedExportConfig", +"properties": { +"enabled": { +"description": "Optional. If true, enable restricted export.", +"type": "boolean" +}, +"restrictDirectTableAccess": { +"description": "Output only. If true, restrict direct table access(read api/tabledata.list) on linked table.", +"readOnly": true, +"type": "boolean" +}, +"restrictQueryResult": { +"description": "Optional. If true, restrict export of query result derived from restricted linked dataset table.", +"type": "boolean" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SubscribeDataExchangeResponse": { +"description": "Message for response when you subscribe to a Data Exchange.", +"id": "SubscribeDataExchangeResponse", +"properties": { +"subscription": { +"$ref": "Subscription", +"description": "Subscription object created from this subscribe action." +} +}, +"type": "object" +}, +"SubscribeListingRequest": { +"description": "Message for subscribing to a listing.", +"id": "SubscribeListingRequest", +"properties": { +"destinationDataset": { +"$ref": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDataset", +"description": "BigQuery destination dataset to create for the subscriber." +} +}, +"type": "object" +}, +"SubscribeListingResponse": { +"description": "Message for response when you subscribe to a listing.", +"id": "SubscribeListingResponse", +"properties": {}, +"type": "object" +}, +"Subscription": { +"description": "A subscription represents a subscribers' access to a particular set of published data. It contains references to associated listings, data exchanges, and linked datasets.", +"id": "Subscription", +"properties": { +"commercialInfo": { +"$ref": "CommercialInfo", +"description": "Output only. This is set if this is a commercial subscription i.e. if this subscription was created from subscribing to a commercial listing.", +"readOnly": true +}, +"creationTime": { +"description": "Output only. Timestamp when the subscription was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataExchange": { +"description": "Output only. Resource name of the source Data Exchange. e.g. projects/123/locations/US/dataExchanges/456", +"readOnly": true, +"type": "string" +}, +"lastModifyTime": { +"description": "Output only. Timestamp when the subscription was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"linkedDatasetMap": { +"additionalProperties": { +"$ref": "LinkedResource" +}, +"description": "Output only. Map of listing resource names to associated linked resource, e.g. projects/123/locations/US/dataExchanges/456/listings/789 -> projects/123/datasets/my_dataset For listing-level subscriptions, this is a map of size 1. Only contains values if state == STATE_ACTIVE.", +"readOnly": true, +"type": "object" +}, +"linkedResources": { +"description": "Output only. Linked resources created in the subscription. Only contains values if state = STATE_ACTIVE.", +"items": { +"$ref": "LinkedResource" +}, +"readOnly": true, +"type": "array" +}, +"listing": { +"description": "Output only. Resource name of the source Listing. e.g. projects/123/locations/US/dataExchanges/456/listings/789", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the subscription. e.g. `projects/myproject/locations/US/subscriptions/123`.", +"readOnly": true, +"type": "string" +}, +"organizationDisplayName": { +"description": "Output only. Display name of the project of this subscription.", +"readOnly": true, +"type": "string" +}, +"organizationId": { +"description": "Output only. Organization of the project this subscription belongs to.", +"readOnly": true, +"type": "string" +}, +"resourceType": { +"description": "Output only. Listing shared asset type.", +"enum": [ +"SHARED_RESOURCE_TYPE_UNSPECIFIED", +"BIGQUERY_DATASET", +"PUBSUB_TOPIC" +], +"enumDescriptions": [ +"Not specified.", +"BigQuery Dataset Asset.", +"Pub/Sub Topic Asset." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of the subscription.", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_ACTIVE", +"STATE_STALE", +"STATE_INACTIVE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"This subscription is active and the data is accessible.", +"The data referenced by this subscription is out of date and should be refreshed. This can happen when a data provider adds or removes datasets.", +"This subscription has been cancelled or revoked and the data is no longer accessible." +], +"readOnly": true, +"type": "string" +}, +"subscriberContact": { +"description": "Output only. Email of the subscriber.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Analytics Hub API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..9106b8e88e6a10ea16d84071ee3b2f28d97c5209 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json @@ -0,0 +1,1994 @@ +{ +"basePath": "", +"baseUrl": "https://androiddeviceprovisioning.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Android Provisioning Partner", +"description": "Automates Android zero-touch enrollment for device resellers, customers, and EMMs.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/zero-touch/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "androiddeviceprovisioning:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://androiddeviceprovisioning.mtls.googleapis.com/", +"name": "androiddeviceprovisioning", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"customers": { +"methods": { +"list": { +"description": "Lists the user's customer accounts.", +"flatPath": "v1/customers", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.customers.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Required. The maximum number of customers to show in a page of results. A number between 1 and 100 (inclusive).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token specifying which result page to return. This field has custom validations in ListCustomersRequestValidator", +"location": "query", +"type": "string" +} +}, +"path": "v1/customers", +"response": { +"$ref": "CustomerListCustomersResponse" +} +} +}, +"resources": { +"configurations": { +"methods": { +"create": { +"description": "Creates a new configuration. Once created, a customer can apply the configuration to devices.", +"flatPath": "v1/customers/{customersId}/configurations", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.customers.configurations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The customer that manages the configuration. An API resource name in the format `customers/[CUSTOMER_ID]`. This field has custom validation in CreateConfigurationRequestValidator", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/configurations", +"request": { +"$ref": "Configuration" +}, +"response": { +"$ref": "Configuration" +} +}, +"delete": { +"description": "Deletes an unused configuration. The API call fails if the customer has devices with the configuration applied.", +"flatPath": "v1/customers/{customersId}/configurations/{configurationsId}", +"httpMethod": "DELETE", +"id": "androiddeviceprovisioning.customers.configurations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The configuration to delete. An API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. If the configuration is applied to any devices, the API call fails.", +"location": "path", +"pattern": "^customers/[^/]+/configurations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +} +}, +"get": { +"description": "Gets the details of a configuration.", +"flatPath": "v1/customers/{customersId}/configurations/{configurationsId}", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.customers.configurations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The configuration to get. An API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+/configurations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Configuration" +} +}, +"list": { +"description": "Lists a customer's configurations.", +"flatPath": "v1/customers/{customersId}/configurations", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.customers.configurations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The customer that manages the listed configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/configurations", +"response": { +"$ref": "CustomerListConfigurationsResponse" +} +}, +"patch": { +"description": "Updates a configuration's field values.", +"flatPath": "v1/customers/{customersId}/configurations/{configurationsId}", +"httpMethod": "PATCH", +"id": "androiddeviceprovisioning.customers.configurations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.", +"location": "path", +"pattern": "^customers/[^/]+/configurations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The field mask applied to the target `Configuration` before updating the fields. To learn more about using field masks, read [FieldMask](/protocol-buffers/docs/reference/google.protobuf#fieldmask) in the Protocol Buffers documentation.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Configuration" +}, +"response": { +"$ref": "Configuration" +} +} +} +}, +"devices": { +"methods": { +"applyConfiguration": { +"description": "Applies a Configuration to the device to register the device for zero-touch enrollment. After applying a configuration to a device, the device automatically provisions itself on first boot, or next factory reset.", +"flatPath": "v1/customers/{customersId}/devices:applyConfiguration", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.customers.devices.applyConfiguration", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/devices:applyConfiguration", +"request": { +"$ref": "CustomerApplyConfigurationRequest" +}, +"response": { +"$ref": "Empty" +} +}, +"get": { +"description": "Gets the details of a device.", +"flatPath": "v1/customers/{customersId}/devices/{devicesId}", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.customers.devices.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The device to get. An API resource name in the format `customers/[CUSTOMER_ID]/devices/[DEVICE_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Device" +} +}, +"list": { +"description": "Lists a customer's devices.", +"flatPath": "v1/customers/{customersId}/devices", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.customers.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.", +"format": "int64", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "A token specifying which result page to return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The customer managing the devices. An API resource name in the format `customers/[CUSTOMER_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/devices", +"response": { +"$ref": "CustomerListDevicesResponse" +} +}, +"removeConfiguration": { +"description": "Removes a configuration from device.", +"flatPath": "v1/customers/{customersId}/devices:removeConfiguration", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.customers.devices.removeConfiguration", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The customer managing the device in the format `customers/[CUSTOMER_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/devices:removeConfiguration", +"request": { +"$ref": "CustomerRemoveConfigurationRequest" +}, +"response": { +"$ref": "Empty" +} +}, +"unclaim": { +"description": "Unclaims a device from a customer and removes it from zero-touch enrollment. After removing a device, a customer must contact their reseller to register the device into zero-touch enrollment again.", +"flatPath": "v1/customers/{customersId}/devices:unclaim", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.customers.devices.unclaim", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/devices:unclaim", +"request": { +"$ref": "CustomerUnclaimDeviceRequest" +}, +"response": { +"$ref": "Empty" +} +} +} +}, +"dpcs": { +"methods": { +"list": { +"description": "Lists the DPCs (device policy controllers) that support zero-touch enrollment.", +"flatPath": "v1/customers/{customersId}/dpcs", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.customers.dpcs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The customer that can use the DPCs in configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dpcs", +"response": { +"$ref": "CustomerListDpcsResponse" +} +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +} +} +} +}, +"partners": { +"resources": { +"customers": { +"methods": { +"create": { +"description": "Creates a customer for zero-touch enrollment. After the method returns successfully, admin and owner roles can manage devices and EMM configs by calling API methods or using their zero-touch enrollment portal. The customer receives an email that welcomes them to zero-touch enrollment and explains how to sign into the portal.", +"flatPath": "v1/partners/{partnersId}/customers", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.customers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource ID in the format `partners/[PARTNER_ID]` that identifies the reseller.", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customers", +"request": { +"$ref": "CreateCustomerRequest" +}, +"response": { +"$ref": "Company" +} +}, +"list": { +"description": "Lists the customers that are enrolled to the reseller identified by the `partnerId` argument. This list includes customers that the reseller created and customers that enrolled themselves using the portal.", +"flatPath": "v1/partners/{partnersId}/customers", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.partners.customers.list", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to be returned. If not specified or 0, all the records are returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results returned by the server.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the reseller partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/customers", +"response": { +"$ref": "ListCustomersResponse" +} +} +} +}, +"devices": { +"methods": { +"claim": { +"description": "Claims a device for a customer and adds it to zero-touch enrollment. If the device is already claimed by another customer, the call returns an error.", +"flatPath": "v1/partners/{partnersId}/devices:claim", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.claim", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the reseller partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:claim", +"request": { +"$ref": "ClaimDeviceRequest" +}, +"response": { +"$ref": "ClaimDeviceResponse" +} +}, +"claimAsync": { +"description": "Claims a batch of devices for a customer asynchronously. Adds the devices to zero-touch enrollment. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).", +"flatPath": "v1/partners/{partnersId}/devices:claimAsync", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.claimAsync", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the reseller partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:claimAsync", +"request": { +"$ref": "ClaimDevicesRequest" +}, +"response": { +"$ref": "Operation" +} +}, +"findByIdentifier": { +"description": "Finds devices by hardware identifiers, such as IMEI.", +"flatPath": "v1/partners/{partnersId}/devices:findByIdentifier", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.findByIdentifier", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the reseller partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:findByIdentifier", +"request": { +"$ref": "FindDevicesByDeviceIdentifierRequest" +}, +"response": { +"$ref": "FindDevicesByDeviceIdentifierResponse" +} +}, +"findByOwner": { +"description": "Finds devices claimed for customers. The results only contain devices registered to the reseller that's identified by the `partnerId` argument. The customer's devices purchased from other resellers don't appear in the results.", +"flatPath": "v1/partners/{partnersId}/devices:findByOwner", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.findByOwner", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the reseller partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:findByOwner", +"request": { +"$ref": "FindDevicesByOwnerRequest" +}, +"response": { +"$ref": "FindDevicesByOwnerResponse" +} +}, +"get": { +"description": "Gets a device.", +"flatPath": "v1/partners/{partnersId}/devices/{devicesId}", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.partners.devices.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The device API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.", +"location": "path", +"pattern": "^partners/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Device" +} +}, +"getSimLockState": { +"description": "Gets a device's SIM lock state.", +"flatPath": "v1/partners/{partnersId}/devices:getSimLockState", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.getSimLockState", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:getSimLockState", +"request": { +"$ref": "GetDeviceSimLockStateRequest" +}, +"response": { +"$ref": "GetDeviceSimLockStateResponse" +} +}, +"metadata": { +"description": "Updates reseller metadata associated with the device. Android devices only.", +"flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.metadata", +"parameterOrder": [ +"metadataOwnerId", +"deviceId" +], +"parameters": { +"deviceId": { +"description": "Required. The ID of the device.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"metadataOwnerId": { +"description": "Required. The owner of the newly set metadata. Set this to the partner ID.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+metadataOwnerId}/devices/{+deviceId}/metadata", +"request": { +"$ref": "UpdateDeviceMetadataRequest" +}, +"response": { +"$ref": "DeviceMetadata" +} +}, +"unclaim": { +"description": "Unclaims a device from a customer and removes it from zero-touch enrollment.", +"flatPath": "v1/partners/{partnersId}/devices:unclaim", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.unclaim", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the reseller partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:unclaim", +"request": { +"$ref": "UnclaimDeviceRequest" +}, +"response": { +"$ref": "Empty" +} +}, +"unclaimAsync": { +"description": "Unclaims a batch of devices for a customer asynchronously. Removes the devices from zero-touch enrollment. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).", +"flatPath": "v1/partners/{partnersId}/devices:unclaimAsync", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.unclaimAsync", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The reseller partner ID.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:unclaimAsync", +"request": { +"$ref": "UnclaimDevicesRequest" +}, +"response": { +"$ref": "Operation" +} +}, +"updateMetadataAsync": { +"description": "Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations). Android Devices only.", +"flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync", +"httpMethod": "POST", +"id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The reseller partner ID.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/devices:updateMetadataAsync", +"request": { +"$ref": "UpdateDeviceMetadataInBatchRequest" +}, +"response": { +"$ref": "Operation" +} +} +} +}, +"vendors": { +"methods": { +"list": { +"description": "Lists the vendors of the partner.", +"flatPath": "v1/partners/{partnersId}/vendors", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.partners.vendors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results returned by the server.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name in the format `partners/[PARTNER_ID]`.", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/vendors", +"response": { +"$ref": "ListVendorsResponse" +} +} +}, +"resources": { +"customers": { +"methods": { +"list": { +"description": "Lists the customers of the vendor.", +"flatPath": "v1/partners/{partnersId}/vendors/{vendorsId}/customers", +"httpMethod": "GET", +"id": "androiddeviceprovisioning.partners.vendors.customers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results returned by the server.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name in the format `partners/[PARTNER_ID]/vendors/[VENDOR_ID]`.", +"location": "path", +"pattern": "^partners/[^/]+/vendors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customers", +"response": { +"$ref": "ListVendorCustomersResponse" +} +} +} +} +} +} +} +} +}, +"revision": "20241202", +"rootUrl": "https://androiddeviceprovisioning.googleapis.com/", +"schemas": { +"ClaimDeviceRequest": { +"description": "Request message to claim a device on behalf of a customer.", +"id": "ClaimDeviceRequest", +"properties": { +"configurationId": { +"description": "Optional. The ID of the configuration applied to the device section.", +"format": "int64", +"type": "string" +}, +"customerId": { +"description": "The ID of the customer for whom the device is being claimed.", +"format": "int64", +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. Required. The device identifier of the device to claim." +}, +"deviceMetadata": { +"$ref": "DeviceMetadata", +"description": "Optional. The metadata to attach to the device." +}, +"googleWorkspaceCustomerId": { +"description": "The Google Workspace customer ID.", +"type": "string" +}, +"preProvisioningToken": { +"description": "Optional. Must and can only be set for Chrome OS devices.", +"type": "string" +}, +"sectionType": { +"description": "Required. The section type of the device's provisioning record.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SECTION_TYPE_SIM_LOCK", +"SECTION_TYPE_ZERO_TOUCH" +], +"enumDescriptions": [ +"Unspecified section type.", +"SIM-lock section type.", +"Zero-touch enrollment section type." +], +"type": "string" +}, +"simlockProfileId": { +"description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ClaimDeviceResponse": { +"description": "Response message containing device id of the claim.", +"id": "ClaimDeviceResponse", +"properties": { +"deviceId": { +"description": "The device ID of the claimed device.", +"format": "int64", +"type": "string" +}, +"deviceName": { +"description": "The resource name of the device in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.", +"type": "string" +} +}, +"type": "object" +}, +"ClaimDevicesRequest": { +"description": "Request to claim devices asynchronously in batch. Claiming a device adds the device to zero-touch enrollment and shows the device in the customer's view of the portal.", +"id": "ClaimDevicesRequest", +"properties": { +"claims": { +"description": "Required. A list of device claims.", +"items": { +"$ref": "PartnerClaim" +}, +"type": "array" +} +}, +"type": "object" +}, +"Company": { +"description": "A reseller, vendor, or customer in the zero-touch reseller and customer APIs.", +"id": "Company", +"properties": { +"adminEmails": { +"description": "Optional. Email address of customer's users in the admin role. Each email address must be associated with a Google Account.", +"items": { +"type": "string" +}, +"type": "array" +}, +"companyId": { +"description": "Output only. The ID of the company. Assigned by the server.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"companyName": { +"description": "Required. The name of the company. For example _XYZ Corp_. Displayed to the company's employees in the zero-touch enrollment portal.", +"type": "string" +}, +"googleWorkspaceAccount": { +"$ref": "GoogleWorkspaceAccount", +"description": "Output only. The Google Workspace account associated with this customer. Only used for customer Companies.", +"readOnly": true +}, +"languageCode": { +"description": "Input only. The preferred locale of the customer represented as a BCP47 language code. This field is validated on input and requests containing unsupported language codes will be rejected. Supported language codes: Arabic (ar) Chinese (Hong Kong) (zh-HK) Chinese (Simplified) (zh-CN) Chinese (Traditional) (zh-TW) Czech (cs) Danish (da) Dutch (nl) English (UK) (en-GB) English (US) (en-US) Filipino (fil) Finnish (fi) French (fr) German (de) Hebrew (iw) Hindi (hi) Hungarian (hu) Indonesian (id) Italian (it) Japanese (ja) Korean (ko) Norwegian (Bokmal) (no) Polish (pl) Portuguese (Brazil) (pt-BR) Portuguese (Portugal) (pt-PT) Russian (ru) Spanish (es) Spanish (Latin America) (es-419) Swedish (sv) Thai (th) Turkish (tr) Ukrainian (uk) Vietnamese (vi)", +"type": "string" +}, +"name": { +"description": "Output only. The API resource name of the company. The resource name is one of the following formats: * `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]/customers/[CUSTOMER_ID]` Assigned by the server.", +"readOnly": true, +"type": "string" +}, +"ownerEmails": { +"description": "Required. Input only. Email address of customer's users in the owner role. At least one `owner_email` is required. Owners share the same access as admins but can also add, delete, and edit your organization's portal users.", +"items": { +"type": "string" +}, +"type": "array" +}, +"skipWelcomeEmail": { +"description": "Input only. If set to true, welcome email will not be sent to the customer. It is recommended to skip the welcome email if devices will be claimed with additional DEVICE_PROTECTION service, as the customer will receive separate emails at device claim time. This field is ignored if this is not a Zero-touch customer.", +"type": "boolean" +}, +"termsStatus": { +"description": "Output only. Whether any user from the company has accepted the latest Terms of Service (ToS). See TermsStatus.", +"enum": [ +"TERMS_STATUS_UNSPECIFIED", +"TERMS_STATUS_NOT_ACCEPTED", +"TERMS_STATUS_ACCEPTED", +"TERMS_STATUS_STALE" +], +"enumDescriptions": [ +"Default value. This value should never be set if the enum is present.", +"None of the company's users have accepted the ToS.", +"One (or more) of the company's users has accepted the ToS.", +"None of the company's users has accepted the current ToS but at least one user accepted a previous ToS." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Configuration": { +"description": "A configuration collects the provisioning options for Android devices. Each configuration combines the following: * The EMM device policy controller (DPC) installed on the devices. * EMM policies enforced on the devices. * Metadata displayed on the device to help users during setup. Customers can add as many configurations as they need. However, zero-touch enrollment works best when a customer sets a default configuration that's applied to any new devices the organization purchases.", +"id": "Configuration", +"properties": { +"companyName": { +"description": "Required. The name of the organization. Zero-touch enrollment shows this organization name to device users during device provisioning.", +"type": "string" +}, +"configurationId": { +"description": "Output only. The ID of the configuration. Assigned by the server.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"configurationName": { +"description": "Required. A short name that describes the configuration's purpose. For example, _Sales team_ or _Temporary employees_. The zero-touch enrollment portal displays this name to IT admins.", +"type": "string" +}, +"contactEmail": { +"description": "Required. The email address that device users can contact to get help. Zero-touch enrollment shows this email address to device users before device provisioning. The value is validated on input.", +"type": "string" +}, +"contactPhone": { +"description": "Required. The telephone number that device users can call, using another device, to get help. Zero-touch enrollment shows this number to device users before device provisioning. Accepts numerals, spaces, the plus sign, hyphens, and parentheses.", +"type": "string" +}, +"customMessage": { +"description": "A message, containing one or two sentences, to help device users get help or give them more details about what\u2019s happening to their device. Zero-touch enrollment shows this message before the device is provisioned.", +"type": "string" +}, +"dpcExtras": { +"description": "The JSON-formatted EMM provisioning extras that are passed to the DPC.", +"type": "string" +}, +"dpcResourcePath": { +"description": "Required. The resource name of the selected DPC (device policy controller) in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs, call `customers.dpcs.list`.", +"type": "string" +}, +"forcedResetTime": { +"description": "Optional. The timeout before forcing factory reset the device if the device doesn't go through provisioning in the setup wizard, usually due to lack of network connectivity during setup wizard. Ranges from 0-6 hours, with 2 hours being the default if unset.", +"format": "google-duration", +"type": "string" +}, +"isDefault": { +"description": "Required. Whether this is the default configuration that zero-touch enrollment applies to any new devices the organization purchases in the future. Only one customer configuration can be the default. Setting this value to `true`, changes the previous default configuration's `isDefault` value to `false`.", +"type": "boolean" +}, +"name": { +"description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CreateCustomerRequest": { +"description": "Request message to create a customer.", +"id": "CreateCustomerRequest", +"properties": { +"customer": { +"$ref": "Company", +"description": "Required. The company data to populate the new customer. Must contain a value for `companyName` and at least one `owner_email` that's associated with a Google Account. The values for `companyId` and `name` must be empty." +} +}, +"type": "object" +}, +"CustomerApplyConfigurationRequest": { +"description": "Request message for customer to assign a configuration to device.", +"id": "CustomerApplyConfigurationRequest", +"properties": { +"configuration": { +"description": "Required. The configuration applied to the device in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.", +"type": "string" +}, +"device": { +"$ref": "DeviceReference", +"description": "Required. The device the configuration is applied to. There are custom validations in ApplyConfigurationRequestValidator" +} +}, +"type": "object" +}, +"CustomerListConfigurationsResponse": { +"description": "Response message of customer's listing configuration.", +"id": "CustomerListConfigurationsResponse", +"properties": { +"configurations": { +"description": "The configurations.", +"items": { +"$ref": "Configuration" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomerListCustomersResponse": { +"description": "Response message for listing my customers.", +"id": "CustomerListCustomersResponse", +"properties": { +"customers": { +"description": "The customer accounts the calling user is a member of.", +"items": { +"$ref": "Company" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token used to access the next page of results. Omitted if no further results are available.", +"type": "string" +} +}, +"type": "object" +}, +"CustomerListDevicesResponse": { +"description": "Response message of customer's liting devices.", +"id": "CustomerListDevicesResponse", +"properties": { +"devices": { +"description": "The customer's devices.", +"items": { +"$ref": "Device" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token used to access the next page of results. Omitted if no further results are available.", +"type": "string" +} +}, +"type": "object" +}, +"CustomerListDpcsResponse": { +"description": "Response message of customer's listing DPCs.", +"id": "CustomerListDpcsResponse", +"properties": { +"dpcs": { +"description": "The list of DPCs available to the customer that support zero-touch enrollment.", +"items": { +"$ref": "Dpc" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomerRemoveConfigurationRequest": { +"description": "Request message for customer to remove the configuration from device.", +"id": "CustomerRemoveConfigurationRequest", +"properties": { +"device": { +"$ref": "DeviceReference", +"description": "Required. The device to remove the configuration from. There are custom validations in RemoveConfigurationRequestValidator" +} +}, +"type": "object" +}, +"CustomerUnclaimDeviceRequest": { +"description": "Request message for customer to unclaim a device.", +"id": "CustomerUnclaimDeviceRequest", +"properties": { +"device": { +"$ref": "DeviceReference", +"description": "Required. The device to unclaim. There are custom validations in UnclaimDeviceRequestValidator." +} +}, +"type": "object" +}, +"Device": { +"description": "An Android or Chrome OS device registered for zero-touch enrollment.", +"id": "Device", +"properties": { +"claims": { +"description": "Output only. The provisioning claims for a device. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. Call `partners.devices.unclaim` or `partners.devices.unclaimAsync` to remove the device from zero-touch enrollment.", +"items": { +"$ref": "DeviceClaim" +}, +"readOnly": true, +"type": "array" +}, +"configuration": { +"description": "Not available to resellers.", +"type": "string" +}, +"deviceId": { +"description": "Output only. The ID of the device. Assigned by the server.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "The hardware IDs that identify a manufactured device. To learn more, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers)." +}, +"deviceMetadata": { +"$ref": "DeviceMetadata", +"description": "The metadata attached to the device. Structured as key-value pairs. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata)." +}, +"name": { +"description": "Output only. The API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`. Assigned by the server.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DeviceClaim": { +"description": "A record of a device claimed by a reseller for a customer. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. To learn more, read [Claim devices for customers](/zero-touch/guides/how-it-works#claim).", +"id": "DeviceClaim", +"properties": { +"additionalService": { +"description": "The Additional service registered for the device.", +"enum": [ +"ADDITIONAL_SERVICE_UNSPECIFIED", +"DEVICE_PROTECTION" +], +"enumDescriptions": [ +"No additional service.", +"Device protection service, also known as Android Enterprise Essentials. To claim a device with the device protection service you must enroll with the partnership team." +], +"type": "string" +}, +"googleWorkspaceCustomerId": { +"description": "The ID of the Google Workspace account that owns the Chrome OS device.", +"type": "string" +}, +"ownerCompanyId": { +"description": "The ID of the Customer that purchased the device.", +"format": "int64", +"type": "string" +}, +"resellerId": { +"description": "The ID of the reseller that claimed the device.", +"format": "int64", +"type": "string" +}, +"sectionType": { +"description": "Output only. The type of claim made on the device.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SECTION_TYPE_SIM_LOCK", +"SECTION_TYPE_ZERO_TOUCH" +], +"enumDescriptions": [ +"Unspecified section type.", +"SIM-lock section type.", +"Zero-touch enrollment section type." +], +"readOnly": true, +"type": "string" +}, +"vacationModeExpireTime": { +"description": "The timestamp when the device will exit \u2018vacation mode\u2019. This value is present iff the device is in 'vacation mode'.", +"format": "google-datetime", +"type": "string" +}, +"vacationModeStartTime": { +"description": "The timestamp when the device was put into \u2018vacation mode\u2019. This value is present iff the device is in 'vacation mode'.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"DeviceIdentifier": { +"description": "Encapsulates hardware and product IDs to identify a manufactured device. To understand requirements on identifier sets, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).", +"id": "DeviceIdentifier", +"properties": { +"chromeOsAttestedDeviceId": { +"description": "An identifier provided by OEMs, carried through the production and sales process. Only applicable to Chrome OS devices.", +"type": "string" +}, +"deviceType": { +"description": "The type of the device", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"DEVICE_TYPE_ANDROID", +"DEVICE_TYPE_CHROME_OS" +], +"enumDescriptions": [ +"Device type is not specified.", +"Android device", +"Chrome OS device" +], +"type": "string" +}, +"imei": { +"description": "The device\u2019s IMEI number. Validated on input.", +"type": "string" +}, +"imei2": { +"description": "The device\u2019s second IMEI number.", +"type": "string" +}, +"manufacturer": { +"description": "The device manufacturer\u2019s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [Android manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names).", +"type": "string" +}, +"meid": { +"description": "The device\u2019s MEID number.", +"type": "string" +}, +"meid2": { +"description": "The device\u2019s second MEID number.", +"type": "string" +}, +"model": { +"description": "The device model's name. Allowed values are listed in [Android models](/zero-touch/resources/manufacturer-names#model-names) and [Chrome OS models](https://support.google.com/chrome/a/answer/10130175#identify_compatible).", +"type": "string" +}, +"serialNumber": { +"description": "The manufacturer's serial number for the device. This value might not be unique across different device models.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceMetadata": { +"description": "Metadata entries that can be attached to a `Device`. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata).", +"id": "DeviceMetadata", +"properties": { +"entries": { +"additionalProperties": { +"type": "string" +}, +"description": "Metadata entries recorded as key-value pairs.", +"type": "object" +} +}, +"type": "object" +}, +"DeviceReference": { +"description": "A `DeviceReference` is an API abstraction that lets you supply a _device_ argument to a method using one of the following identifier types: * A numeric API resource ID. * Real-world hardware IDs, such as IMEI number, belonging to the manufactured device. Methods that operate on devices take a `DeviceReference` as a parameter type because it's more flexible for the caller. To learn more about device identifiers, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).", +"id": "DeviceReference", +"properties": { +"deviceId": { +"description": "The ID of the device.", +"format": "int64", +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "The hardware IDs of the device." +} +}, +"type": "object" +}, +"DevicesLongRunningOperationMetadata": { +"description": "Tracks the status of a long-running operation to asynchronously update a batch of reseller metadata attached to devices. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).", +"id": "DevicesLongRunningOperationMetadata", +"properties": { +"devicesCount": { +"description": "The number of metadata updates in the operation. This might be different from the number of updates in the request if the API can't parse some of the updates.", +"format": "int32", +"type": "integer" +}, +"processingStatus": { +"description": "The processing status of the operation.", +"enum": [ +"BATCH_PROCESS_STATUS_UNSPECIFIED", +"BATCH_PROCESS_PENDING", +"BATCH_PROCESS_IN_PROGRESS", +"BATCH_PROCESS_PROCESSED" +], +"enumDescriptions": [ +"Invalid code. Shouldn't be used.", +"Pending.", +"In progress.", +"Processed. This doesn't mean all items were processed successfully, you should check the `response` field for the result of every item." +], +"type": "string" +}, +"progress": { +"description": "The processing progress of the operation. Measured as a number from 0 to 100. A value of 10O doesn't always mean the operation completed\u2014check for the inclusion of a `done` field.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DevicesLongRunningOperationResponse": { +"description": "Tracks the status of a long-running operation to claim, unclaim, or attach metadata to devices. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).", +"id": "DevicesLongRunningOperationResponse", +"properties": { +"perDeviceStatus": { +"description": "The processing status for each device in the operation. One `PerDeviceStatus` per device. The list order matches the items in the original request.", +"items": { +"$ref": "OperationPerDevice" +}, +"type": "array" +}, +"successCount": { +"description": "A summary of how many items in the operation the server processed successfully. Updated as the operation progresses.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Dpc": { +"description": "An EMM's DPC ([device policy controller](http://developer.android.com/work/dpc/build-dpc.html)). Zero-touch enrollment installs a DPC (listed in the `Configuration`) on a device to maintain the customer's mobile policies. All the DPCs listed by the API support zero-touch enrollment and are available in Google Play.", +"id": "Dpc", +"properties": { +"dpcName": { +"description": "Output only. The title of the DPC app in Google Play. For example, _Google Apps Device Policy_. Useful in an application's user interface.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/dpcs/[DPC_ID]`. Assigned by the server. To maintain a reference to a DPC across customer accounts, persist and match the last path component (`DPC_ID`).", +"readOnly": true, +"type": "string" +}, +"packageName": { +"description": "Output only. The DPC's Android application ID that looks like a Java package name. Zero-touch enrollment installs the DPC app onto a device using this identifier.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"FindDevicesByDeviceIdentifierRequest": { +"description": "Request to find devices.", +"id": "FindDevicesByDeviceIdentifierRequest", +"properties": { +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. Required. The device identifier to search for." +}, +"limit": { +"description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.", +"format": "int64", +"type": "string" +}, +"pageToken": { +"description": "A token specifying which result page to return.", +"type": "string" +} +}, +"type": "object" +}, +"FindDevicesByDeviceIdentifierResponse": { +"description": "Response containing found devices.", +"id": "FindDevicesByDeviceIdentifierResponse", +"properties": { +"devices": { +"description": "Found devices.", +"items": { +"$ref": "Device" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token used to access the next page of results. Omitted if no further results are available.", +"type": "string" +}, +"totalSize": { +"description": "The total count of items in the list irrespective of pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FindDevicesByOwnerRequest": { +"description": "Request to find devices by customers.", +"id": "FindDevicesByOwnerRequest", +"properties": { +"customerId": { +"description": "The list of customer IDs to search for.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"googleWorkspaceCustomerId": { +"description": "The list of IDs of Google Workspace accounts to search for.", +"items": { +"type": "string" +}, +"type": "array" +}, +"limit": { +"description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.", +"format": "int64", +"type": "string" +}, +"pageToken": { +"description": "A token specifying which result page to return.", +"type": "string" +}, +"sectionType": { +"description": "Required. The section type of the device's provisioning record.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SECTION_TYPE_SIM_LOCK", +"SECTION_TYPE_ZERO_TOUCH" +], +"enumDescriptions": [ +"Unspecified section type.", +"SIM-lock section type.", +"Zero-touch enrollment section type." +], +"type": "string" +} +}, +"type": "object" +}, +"FindDevicesByOwnerResponse": { +"description": "Response containing found devices.", +"id": "FindDevicesByOwnerResponse", +"properties": { +"devices": { +"description": "The customer's devices.", +"items": { +"$ref": "Device" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token used to access the next page of results. Omitted if no further results are available.", +"type": "string" +}, +"totalSize": { +"description": "The total count of items in the list irrespective of pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GetDeviceSimLockStateRequest": { +"description": "Request to get a device's SIM lock status.", +"id": "GetDeviceSimLockStateRequest", +"properties": { +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. Required. The device identifier to search for." +} +}, +"type": "object" +}, +"GetDeviceSimLockStateResponse": { +"description": "Response containing a device's SimLock state.", +"id": "GetDeviceSimLockStateResponse", +"properties": { +"simLockState": { +"enum": [ +"SIM_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED_TO_PARTNER", +"LOCKED_TO_OTHER_PARTNER" +], +"enumDescriptions": [ +"Invalid code. Shouldn't be used.", +"Device is not SIM locked.", +"Device is SIM locked to the partner querying SIM lock state.", +"Device is SIM locked to a different partner." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleWorkspaceAccount": { +"description": "A Google Workspace customer.", +"id": "GoogleWorkspaceAccount", +"properties": { +"customerId": { +"description": "Required. The customer ID.", +"type": "string" +}, +"preProvisioningTokens": { +"description": "Output only. The pre-provisioning tokens previously used to claim devices.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ListCustomersResponse": { +"description": "Response message of all customers related to this partner.", +"id": "ListCustomersResponse", +"properties": { +"customers": { +"description": "List of customers related to this reseller partner.", +"items": { +"$ref": "Company" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Omitted if no further results are available.", +"type": "string" +}, +"totalSize": { +"description": "The total count of items in the list irrespective of pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListVendorCustomersResponse": { +"description": "Response message to list customers of the vendor.", +"id": "ListVendorCustomersResponse", +"properties": { +"customers": { +"description": "List of customers of the vendor.", +"items": { +"$ref": "Company" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Omitted if no further results are available.", +"type": "string" +}, +"totalSize": { +"description": "The total count of items in the list irrespective of pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListVendorsResponse": { +"description": "Response message to list vendors of the partner.", +"id": "ListVendorsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Omitted if no further results are available.", +"type": "string" +}, +"totalSize": { +"description": "The total count of items in the list irrespective of pagination.", +"format": "int32", +"type": "integer" +}, +"vendors": { +"description": "List of vendors of the reseller partner. Fields `name`, `companyId` and `companyName` are populated to the Company object.", +"items": { +"$ref": "Company" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "This field will always be not set if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`. In this case, error information for each device is set in `response.perDeviceStatus.result.status`." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "This field will contain a `DevicesLongRunningOperationResponse` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationPerDevice": { +"description": "A task for each device in the operation. Corresponds to each device change in the request.", +"id": "OperationPerDevice", +"properties": { +"claim": { +"$ref": "PartnerClaim", +"description": "A copy of the original device-claim request received by the server." +}, +"result": { +"$ref": "PerDeviceStatusInBatch", +"description": "The processing result for each device." +}, +"unclaim": { +"$ref": "PartnerUnclaim", +"description": "A copy of the original device-unclaim request received by the server." +}, +"updateMetadata": { +"$ref": "UpdateMetadataArguments", +"description": "A copy of the original metadata-update request received by the server." +} +}, +"type": "object" +}, +"PartnerClaim": { +"description": "Identifies one claim request.", +"id": "PartnerClaim", +"properties": { +"configurationId": { +"description": "Optional. The ID of the configuration applied to the device section.", +"format": "int64", +"type": "string" +}, +"customerId": { +"description": "The ID of the customer for whom the device is being claimed.", +"format": "int64", +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. Required. Device identifier of the device." +}, +"deviceMetadata": { +"$ref": "DeviceMetadata", +"description": "Required. The metadata to attach to the device at claim." +}, +"googleWorkspaceCustomerId": { +"description": "The Google Workspace customer ID.", +"type": "string" +}, +"preProvisioningToken": { +"description": "Optional. Must and can only be set for Chrome OS devices.", +"type": "string" +}, +"sectionType": { +"description": "Required. The section type of the device's provisioning record.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SECTION_TYPE_SIM_LOCK", +"SECTION_TYPE_ZERO_TOUCH" +], +"enumDescriptions": [ +"Unspecified section type.", +"SIM-lock section type.", +"Zero-touch enrollment section type." +], +"type": "string" +}, +"simlockProfileId": { +"description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PartnerUnclaim": { +"description": "Identifies one unclaim request.", +"id": "PartnerUnclaim", +"properties": { +"deviceId": { +"description": "Required. Device ID of the device.", +"format": "int64", +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. Device identifier of the device." +}, +"sectionType": { +"description": "Required. The section type of the device's provisioning record.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SECTION_TYPE_SIM_LOCK", +"SECTION_TYPE_ZERO_TOUCH" +], +"enumDescriptions": [ +"Unspecified section type.", +"SIM-lock section type.", +"Zero-touch enrollment section type." +], +"type": "string" +}, +"vacationModeDays": { +"description": "Optional. The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)", +"format": "int32", +"type": "integer" +}, +"vacationModeExpireTime": { +"description": "Optional. The expiration time of the vacation unlock.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"PerDeviceStatusInBatch": { +"description": "Captures the processing status for each device in the operation.", +"id": "PerDeviceStatusInBatch", +"properties": { +"deviceId": { +"description": "If processing succeeds, the device ID of the device.", +"format": "int64", +"type": "string" +}, +"errorIdentifier": { +"description": "If processing fails, the error type.", +"type": "string" +}, +"errorMessage": { +"description": "If processing fails, a developer message explaining what went wrong.", +"type": "string" +}, +"status": { +"description": "The result status of the device after processing.", +"enum": [ +"SINGLE_DEVICE_STATUS_UNSPECIFIED", +"SINGLE_DEVICE_STATUS_UNKNOWN_ERROR", +"SINGLE_DEVICE_STATUS_OTHER_ERROR", +"SINGLE_DEVICE_STATUS_SUCCESS", +"SINGLE_DEVICE_STATUS_PERMISSION_DENIED", +"SINGLE_DEVICE_STATUS_INVALID_DEVICE_IDENTIFIER", +"SINGLE_DEVICE_STATUS_INVALID_SECTION_TYPE", +"SINGLE_DEVICE_STATUS_SECTION_NOT_YOURS", +"SINGLE_DEVICE_STATUS_INVALID_TOKEN", +"SINGLE_DEVICE_STATUS_REVOKED_TOKEN", +"SINGLE_DEVICE_STATUS_DEVICE_LIMIT_EXCEEDED" +], +"enumDescriptions": [ +"Invalid code. Shouldn't be used.", +"Unknown error. We don't expect this error to occur here.", +"Other error. We know/expect this error, but there's no defined error code for the error.", +"Success.", +"Permission denied.", +"Invalid device identifier.", +"Invalid section type.", +"This section is claimed by another company.", +"Invalid pre-provisioning token.", +"Revoked pre-provisioning token.", +"Status used to indicate a failure due to a device limit being exceeded" +], +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"UnclaimDeviceRequest": { +"description": "Request message to unclaim a device.", +"id": "UnclaimDeviceRequest", +"properties": { +"deviceId": { +"description": "Required. The device ID returned by `ClaimDevice`.", +"format": "int64", +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. The device identifier you used when you claimed this device." +}, +"sectionType": { +"description": "Required. The section type of the device's provisioning record.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SECTION_TYPE_SIM_LOCK", +"SECTION_TYPE_ZERO_TOUCH" +], +"enumDescriptions": [ +"Unspecified section type.", +"SIM-lock section type.", +"Zero-touch enrollment section type." +], +"type": "string" +}, +"vacationModeDays": { +"description": "The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)", +"format": "int32", +"type": "integer" +}, +"vacationModeExpireTime": { +"description": "The expiration time of the vacation unlock.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UnclaimDevicesRequest": { +"description": "Request to unclaim devices asynchronously in batch.", +"id": "UnclaimDevicesRequest", +"properties": { +"unclaims": { +"description": "Required. The list of devices to unclaim.", +"items": { +"$ref": "PartnerUnclaim" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateDeviceMetadataInBatchRequest": { +"description": "Request to update device metadata in batch.", +"id": "UpdateDeviceMetadataInBatchRequest", +"properties": { +"updates": { +"description": "Required. The list of metadata updates.", +"items": { +"$ref": "UpdateMetadataArguments" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateDeviceMetadataRequest": { +"description": "Request to set metadata for a device.", +"id": "UpdateDeviceMetadataRequest", +"properties": { +"deviceMetadata": { +"$ref": "DeviceMetadata", +"description": "Required. The metadata to attach to the device." +} +}, +"type": "object" +}, +"UpdateMetadataArguments": { +"description": "Identifies metadata updates to one device.", +"id": "UpdateMetadataArguments", +"properties": { +"deviceId": { +"description": "Required. Device ID of the device.", +"format": "int64", +"type": "string" +}, +"deviceIdentifier": { +"$ref": "DeviceIdentifier", +"description": "Required. Device identifier." +}, +"deviceMetadata": { +"$ref": "DeviceMetadata", +"description": "Required. The metadata to update." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Android Device Provisioning Partner API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/androidpublisher.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/androidpublisher.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..d000a4cc3a393d05b351cf36b9e4674e4ade999f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/androidpublisher.v3.json @@ -0,0 +1,10065 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/androidpublisher": { +"description": "View and manage your Google Play Developer account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://androidpublisher.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Android Publisher", +"description": "Lets Android application developers access their Google Play accounts. At a high level, the expected workflow is to \"insert\" an Edit, make changes as necessary, and then \"commit\" it. ", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/android-publisher", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "androidpublisher:v3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://androidpublisher.mtls.googleapis.com/", +"name": "androidpublisher", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"applications": { +"methods": { +"dataSafety": { +"description": "Writes the Safety Labels declaration of an app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/dataSafety", +"httpMethod": "POST", +"id": "androidpublisher.applications.dataSafety", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/dataSafety", +"request": { +"$ref": "SafetyLabelsUpdateRequest" +}, +"response": { +"$ref": "SafetyLabelsUpdateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +}, +"resources": { +"deviceTierConfigs": { +"methods": { +"create": { +"description": "Creates a new device tier config for an app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", +"httpMethod": "POST", +"id": "androidpublisher.applications.deviceTierConfigs.create", +"parameterOrder": [ +"packageName" +], +"parameters": { +"allowUnknownDevices": { +"description": "Whether the service should accept device IDs that are unknown to Play's device catalog.", +"location": "query", +"type": "boolean" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", +"request": { +"$ref": "DeviceTierConfig" +}, +"response": { +"$ref": "DeviceTierConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Returns a particular device tier config.", +"flatPath": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}", +"httpMethod": "GET", +"id": "androidpublisher.applications.deviceTierConfigs.get", +"parameterOrder": [ +"packageName", +"deviceTierConfigId" +], +"parameters": { +"deviceTierConfigId": { +"description": "Required. Id of an existing device tier config.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}", +"response": { +"$ref": "DeviceTierConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Returns created device tier configs, ordered by descending creation time.", +"flatPath": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", +"httpMethod": "GET", +"id": "androidpublisher.applications.deviceTierConfigs.list", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of device tier configs to return. The service may return fewer than this value. If unspecified, at most 10 device tier configs will be returned. The maximum value for this field is 100; values above 100 will be coerced to 100. Device tier configs will be ordered by descending creation time.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDeviceTierConfigs` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", +"response": { +"$ref": "ListDeviceTierConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +} +}, +"apprecovery": { +"methods": { +"addTargeting": { +"description": "Incrementally update targeting for a recovery action. Note that only the criteria selected during the creation of recovery action can be expanded.", +"flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting", +"httpMethod": "POST", +"id": "androidpublisher.apprecovery.addTargeting", +"parameterOrder": [ +"packageName", +"appRecoveryId" +], +"parameters": { +"appRecoveryId": { +"description": "Required. ID corresponding to the app recovery action.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. Package name of the app for which recovery action is to be updated.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting", +"request": { +"$ref": "AddTargetingRequest" +}, +"response": { +"$ref": "AddTargetingResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"cancel": { +"description": "Cancel an already executing app recovery action. Note that this action changes status of the recovery action to CANCELED.", +"flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel", +"httpMethod": "POST", +"id": "androidpublisher.apprecovery.cancel", +"parameterOrder": [ +"packageName", +"appRecoveryId" +], +"parameters": { +"appRecoveryId": { +"description": "Required. ID corresponding to the app recovery action.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. Package name of the app for which recovery action cancellation is requested.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel", +"request": { +"$ref": "CancelAppRecoveryRequest" +}, +"response": { +"$ref": "CancelAppRecoveryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"create": { +"description": "Create an app recovery action with recovery status as DRAFT. Note that this action does not execute the recovery action.", +"flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries", +"httpMethod": "POST", +"id": "androidpublisher.apprecovery.create", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. Package name of the app on which recovery action is performed.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/appRecoveries", +"request": { +"$ref": "CreateDraftAppRecoveryRequest" +}, +"response": { +"$ref": "AppRecoveryAction" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"deploy": { +"description": "Deploy an already created app recovery action with recovery status DRAFT. Note that this action activates the recovery action for all targeted users and changes its status to ACTIVE.", +"flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy", +"httpMethod": "POST", +"id": "androidpublisher.apprecovery.deploy", +"parameterOrder": [ +"packageName", +"appRecoveryId" +], +"parameters": { +"appRecoveryId": { +"description": "Required. ID corresponding to the app recovery action to deploy.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. Package name of the app for which recovery action is deployed.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy", +"request": { +"$ref": "DeployAppRecoveryRequest" +}, +"response": { +"$ref": "DeployAppRecoveryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "List all app recovery action resources associated with a particular package name and app version.", +"flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries", +"httpMethod": "GET", +"id": "androidpublisher.apprecovery.list", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. Package name of the app for which list of recovery actions is requested.", +"location": "path", +"required": true, +"type": "string" +}, +"versionCode": { +"description": "Required. Version code targeted by the list of recovery actions.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/appRecoveries", +"response": { +"$ref": "ListAppRecoveriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"edits": { +"methods": { +"commit": { +"description": "Commits an app edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}:commit", +"httpMethod": "POST", +"id": "androidpublisher.edits.commit", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"changesNotSentForReview": { +"description": "Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI. These changes will be added to any other changes that are not yet sent for review.", +"location": "query", +"type": "boolean" +}, +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}:commit", +"response": { +"$ref": "AppEdit" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Deletes an app edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}", +"httpMethod": "DELETE", +"id": "androidpublisher.edits.delete", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Gets an app edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}", +"httpMethod": "GET", +"id": "androidpublisher.edits.get", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}", +"response": { +"$ref": "AppEdit" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"insert": { +"description": "Creates a new edit for an app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits", +"httpMethod": "POST", +"id": "androidpublisher.edits.insert", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits", +"request": { +"$ref": "AppEdit" +}, +"response": { +"$ref": "AppEdit" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"validate": { +"description": "Validates an app edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}:validate", +"httpMethod": "POST", +"id": "androidpublisher.edits.validate", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}:validate", +"response": { +"$ref": "AppEdit" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +}, +"resources": { +"apks": { +"methods": { +"addexternallyhosted": { +"description": "Creates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted", +"httpMethod": "POST", +"id": "androidpublisher.edits.apks.addexternallyhosted", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted", +"request": { +"$ref": "ApksAddExternallyHostedRequest" +}, +"response": { +"$ref": "ApksAddExternallyHostedResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all current APKs of the app and edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks", +"httpMethod": "GET", +"id": "androidpublisher.edits.apks.list", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks", +"response": { +"$ref": "ApksListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"upload": { +"description": "Uploads an APK and adds to the current edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks", +"httpMethod": "POST", +"id": "androidpublisher.edits.apks.upload", +"mediaUpload": { +"accept": [ +"application/octet-stream", +"application/vnd.android.package-archive" +], +"maxSize": "10737418240", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks" +} +} +}, +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks", +"response": { +"$ref": "Apk" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +}, +"bundles": { +"methods": { +"list": { +"description": "Lists all current Android App Bundles of the app and edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles", +"httpMethod": "GET", +"id": "androidpublisher.edits.bundles.list", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles", +"response": { +"$ref": "BundlesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"upload": { +"description": "Uploads a new Android App Bundle to this edit. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See [Timeouts and Errors](https://developers.google.com/api-client-library/java/google-api-java-client/errors) for an example in java.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles", +"httpMethod": "POST", +"id": "androidpublisher.edits.bundles.upload", +"mediaUpload": { +"accept": [ +"application/octet-stream" +], +"maxSize": "53687091200", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles" +} +} +}, +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"ackBundleInstallationWarning": { +"deprecated": true, +"description": "Deprecated. The installation warning has been removed, it's not necessary to set this field anymore.", +"location": "query", +"type": "boolean" +}, +"deviceTierConfigId": { +"description": "Device tier config (DTC) to be used for generating deliverables (APKs). Contains id of the DTC or \"LATEST\" for last uploaded DTC.", +"location": "query", +"type": "string" +}, +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles", +"response": { +"$ref": "Bundle" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +}, +"countryavailability": { +"methods": { +"get": { +"description": "Gets country availability.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/countryAvailability/{track}", +"httpMethod": "GET", +"id": "androidpublisher.edits.countryavailability.get", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "The track to read from.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/countryAvailability/{track}", +"response": { +"$ref": "TrackCountryAvailability" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"deobfuscationfiles": { +"methods": { +"upload": { +"description": "Uploads a new deobfuscation file and attaches to the specified APK.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}", +"httpMethod": "POST", +"id": "androidpublisher.edits.deobfuscationfiles.upload", +"mediaUpload": { +"accept": [ +"application/octet-stream" +], +"maxSize": "1677721600", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}" +} +} +}, +"parameterOrder": [ +"packageName", +"editId", +"apkVersionCode", +"deobfuscationFileType" +], +"parameters": { +"apkVersionCode": { +"description": "The version code of the APK whose Deobfuscation File is being uploaded.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"deobfuscationFileType": { +"description": "The type of the deobfuscation file.", +"enum": [ +"deobfuscationFileTypeUnspecified", +"proguard", +"nativeCode" +], +"enumDescriptions": [ +"Unspecified deobfuscation file type.", +"Proguard deobfuscation file type.", +"Native debugging symbols file type." +], +"location": "path", +"required": true, +"type": "string" +}, +"editId": { +"description": "Unique identifier for this edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Unique identifier for the Android app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}", +"response": { +"$ref": "DeobfuscationFilesUploadResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +}, +"details": { +"methods": { +"get": { +"description": "Gets details of an app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details", +"httpMethod": "GET", +"id": "androidpublisher.edits.details.get", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details", +"response": { +"$ref": "AppDetails" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Patches details of an app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details", +"httpMethod": "PATCH", +"id": "androidpublisher.edits.details.patch", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details", +"request": { +"$ref": "AppDetails" +}, +"response": { +"$ref": "AppDetails" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Updates details of an app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details", +"httpMethod": "PUT", +"id": "androidpublisher.edits.details.update", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details", +"request": { +"$ref": "AppDetails" +}, +"response": { +"$ref": "AppDetails" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"expansionfiles": { +"methods": { +"get": { +"description": "Fetches the expansion file configuration for the specified APK.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"httpMethod": "GET", +"id": "androidpublisher.edits.expansionfiles.get", +"parameterOrder": [ +"packageName", +"editId", +"apkVersionCode", +"expansionFileType" +], +"parameters": { +"apkVersionCode": { +"description": "The version code of the APK whose expansion file configuration is being read or modified.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"expansionFileType": { +"description": "The file type of the file configuration which is being read or modified.", +"enum": [ +"expansionFileTypeUnspecified", +"main", +"patch" +], +"enumDescriptions": [ +"Unspecified expansion file type.", +"Main expansion file.", +"Patch expansion file." +], +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"response": { +"$ref": "ExpansionFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Patches the APK's expansion file configuration to reference another APK's expansion file. To add a new expansion file use the Upload method.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"httpMethod": "PATCH", +"id": "androidpublisher.edits.expansionfiles.patch", +"parameterOrder": [ +"packageName", +"editId", +"apkVersionCode", +"expansionFileType" +], +"parameters": { +"apkVersionCode": { +"description": "The version code of the APK whose expansion file configuration is being read or modified.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"expansionFileType": { +"description": "The file type of the expansion file configuration which is being updated.", +"enum": [ +"expansionFileTypeUnspecified", +"main", +"patch" +], +"enumDescriptions": [ +"Unspecified expansion file type.", +"Main expansion file.", +"Patch expansion file." +], +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"request": { +"$ref": "ExpansionFile" +}, +"response": { +"$ref": "ExpansionFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Updates the APK's expansion file configuration to reference another APK's expansion file. To add a new expansion file use the Upload method.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"httpMethod": "PUT", +"id": "androidpublisher.edits.expansionfiles.update", +"parameterOrder": [ +"packageName", +"editId", +"apkVersionCode", +"expansionFileType" +], +"parameters": { +"apkVersionCode": { +"description": "The version code of the APK whose expansion file configuration is being read or modified.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"expansionFileType": { +"description": "The file type of the file configuration which is being read or modified.", +"enum": [ +"expansionFileTypeUnspecified", +"main", +"patch" +], +"enumDescriptions": [ +"Unspecified expansion file type.", +"Main expansion file.", +"Patch expansion file." +], +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"request": { +"$ref": "ExpansionFile" +}, +"response": { +"$ref": "ExpansionFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"upload": { +"description": "Uploads a new expansion file and attaches to the specified APK.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"httpMethod": "POST", +"id": "androidpublisher.edits.expansionfiles.upload", +"mediaUpload": { +"accept": [ +"application/octet-stream" +], +"maxSize": "2147483648", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}" +} +} +}, +"parameterOrder": [ +"packageName", +"editId", +"apkVersionCode", +"expansionFileType" +], +"parameters": { +"apkVersionCode": { +"description": "The version code of the APK whose expansion file configuration is being read or modified.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"expansionFileType": { +"description": "The file type of the expansion file configuration which is being updated.", +"enum": [ +"expansionFileTypeUnspecified", +"main", +"patch" +], +"enumDescriptions": [ +"Unspecified expansion file type.", +"Main expansion file.", +"Patch expansion file." +], +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", +"response": { +"$ref": "ExpansionFilesUploadResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +}, +"images": { +"methods": { +"delete": { +"description": "Deletes the image (specified by id) from the edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}", +"httpMethod": "DELETE", +"id": "androidpublisher.edits.images.delete", +"parameterOrder": [ +"packageName", +"editId", +"language", +"imageType", +"imageId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"imageId": { +"description": "Unique identifier an image within the set of images attached to this edit.", +"location": "path", +"required": true, +"type": "string" +}, +"imageType": { +"description": "Type of the Image.", +"enum": [ +"appImageTypeUnspecified", +"phoneScreenshots", +"sevenInchScreenshots", +"tenInchScreenshots", +"tvScreenshots", +"wearScreenshots", +"icon", +"featureGraphic", +"tvBanner" +], +"enumDescriptions": [ +"Unspecified type. Do not use.", +"Phone screenshot.", +"Seven inch screenshot.", +"Ten inch screenshot.", +"TV screenshot.", +"Wear screenshot.", +"Icon.", +"Feature graphic.", +"TV banner." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"deleteall": { +"description": "Deletes all images for the specified language and image type. Returns an empty response if no images are found.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}", +"httpMethod": "DELETE", +"id": "androidpublisher.edits.images.deleteall", +"parameterOrder": [ +"packageName", +"editId", +"language", +"imageType" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"imageType": { +"description": "Type of the Image. Providing an image type that refers to no images is a no-op.", +"enum": [ +"appImageTypeUnspecified", +"phoneScreenshots", +"sevenInchScreenshots", +"tenInchScreenshots", +"tvScreenshots", +"wearScreenshots", +"icon", +"featureGraphic", +"tvBanner" +], +"enumDescriptions": [ +"Unspecified type. Do not use.", +"Phone screenshot.", +"Seven inch screenshot.", +"Ten inch screenshot.", +"TV screenshot.", +"Wear screenshot.", +"Icon.", +"Feature graphic.", +"TV banner." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German). Providing a language that is not supported by the App is a no-op.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}", +"response": { +"$ref": "ImagesDeleteAllResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all images. The response may be empty.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}", +"httpMethod": "GET", +"id": "androidpublisher.edits.images.list", +"parameterOrder": [ +"packageName", +"editId", +"language", +"imageType" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"imageType": { +"description": "Type of the Image. Providing an image type that refers to no images will return an empty response.", +"enum": [ +"appImageTypeUnspecified", +"phoneScreenshots", +"sevenInchScreenshots", +"tenInchScreenshots", +"tvScreenshots", +"wearScreenshots", +"icon", +"featureGraphic", +"tvBanner" +], +"enumDescriptions": [ +"Unspecified type. Do not use.", +"Phone screenshot.", +"Seven inch screenshot.", +"Ten inch screenshot.", +"TV screenshot.", +"Wear screenshot.", +"Icon.", +"Feature graphic.", +"TV banner." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German). There must be a store listing for the specified language.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}", +"response": { +"$ref": "ImagesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"upload": { +"description": "Uploads an image of the specified language and image type, and adds to the edit.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}", +"httpMethod": "POST", +"id": "androidpublisher.edits.images.upload", +"mediaUpload": { +"accept": [ +"image/*" +], +"maxSize": "15728640", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}" +} +} +}, +"parameterOrder": [ +"packageName", +"editId", +"language", +"imageType" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"imageType": { +"description": "Type of the Image.", +"enum": [ +"appImageTypeUnspecified", +"phoneScreenshots", +"sevenInchScreenshots", +"tenInchScreenshots", +"tvScreenshots", +"wearScreenshots", +"icon", +"featureGraphic", +"tvBanner" +], +"enumDescriptions": [ +"Unspecified type. Do not use.", +"Phone screenshot.", +"Seven inch screenshot.", +"Ten inch screenshot.", +"TV screenshot.", +"Wear screenshot.", +"Icon.", +"Feature graphic.", +"TV banner." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German). Providing a language that is not supported by the App is a no-op.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}", +"response": { +"$ref": "ImagesUploadResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +}, +"listings": { +"methods": { +"delete": { +"description": "Deletes a localized store listing.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"httpMethod": "DELETE", +"id": "androidpublisher.edits.listings.delete", +"parameterOrder": [ +"packageName", +"editId", +"language" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"deleteall": { +"description": "Deletes all store listings.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings", +"httpMethod": "DELETE", +"id": "androidpublisher.edits.listings.deleteall", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Gets a localized store listing.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"httpMethod": "GET", +"id": "androidpublisher.edits.listings.get", +"parameterOrder": [ +"packageName", +"editId", +"language" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"response": { +"$ref": "Listing" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all localized store listings.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings", +"httpMethod": "GET", +"id": "androidpublisher.edits.listings.list", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings", +"response": { +"$ref": "ListingsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Patches a localized store listing.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"httpMethod": "PATCH", +"id": "androidpublisher.edits.listings.patch", +"parameterOrder": [ +"packageName", +"editId", +"language" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"request": { +"$ref": "Listing" +}, +"response": { +"$ref": "Listing" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Creates or updates a localized store listing.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"httpMethod": "PUT", +"id": "androidpublisher.edits.listings.update", +"parameterOrder": [ +"packageName", +"editId", +"language" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}", +"request": { +"$ref": "Listing" +}, +"response": { +"$ref": "Listing" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"testers": { +"methods": { +"get": { +"description": "Gets testers. Note: Testers resource does not support email lists.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", +"httpMethod": "GET", +"id": "androidpublisher.edits.testers.get", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "The track to read from.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", +"response": { +"$ref": "Testers" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Patches testers. Note: Testers resource does not support email lists.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", +"httpMethod": "PATCH", +"id": "androidpublisher.edits.testers.patch", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "The track to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", +"request": { +"$ref": "Testers" +}, +"response": { +"$ref": "Testers" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Updates testers. Note: Testers resource does not support email lists.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", +"httpMethod": "PUT", +"id": "androidpublisher.edits.testers.update", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "The track to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", +"request": { +"$ref": "Testers" +}, +"response": { +"$ref": "Testers" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"tracks": { +"methods": { +"create": { +"description": "Creates a new track.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks", +"httpMethod": "POST", +"id": "androidpublisher.edits.tracks.create", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Required. Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks", +"request": { +"$ref": "TrackConfig" +}, +"response": { +"$ref": "Track" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Gets a track.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", +"httpMethod": "GET", +"id": "androidpublisher.edits.tracks.get", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "Identifier of the track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", +"response": { +"$ref": "Track" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all tracks.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks", +"httpMethod": "GET", +"id": "androidpublisher.edits.tracks.list", +"parameterOrder": [ +"packageName", +"editId" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks", +"response": { +"$ref": "TracksListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Patches a track.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", +"httpMethod": "PATCH", +"id": "androidpublisher.edits.tracks.patch", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "Identifier of the track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", +"request": { +"$ref": "Track" +}, +"response": { +"$ref": "Track" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Updates a track.", +"flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", +"httpMethod": "PUT", +"id": "androidpublisher.edits.tracks.update", +"parameterOrder": [ +"packageName", +"editId", +"track" +], +"parameters": { +"editId": { +"description": "Identifier of the edit.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"track": { +"description": "Identifier of the track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", +"request": { +"$ref": "Track" +}, +"response": { +"$ref": "Track" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +} +}, +"externaltransactions": { +"methods": { +"createexternaltransaction": { +"description": "Creates a new external transaction.", +"flatPath": "androidpublisher/v3/applications/{applicationsId}/externalTransactions", +"httpMethod": "POST", +"id": "androidpublisher.externaltransactions.createexternaltransaction", +"parameterOrder": [ +"parent" +], +"parameters": { +"externalTransactionId": { +"description": "Required. The id to use for the external transaction. Must be unique across all other transactions for the app. This value should be 1-63 characters and valid characters are /a-zA-Z0-9_-/. Do not use this field to store any Personally Identifiable Information (PII) such as emails. Attempting to store PII in this field may result in requests being blocked.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource where this external transaction will be created. Format: applications/{package_name}", +"location": "path", +"pattern": "^applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+parent}/externalTransactions", +"request": { +"$ref": "ExternalTransaction" +}, +"response": { +"$ref": "ExternalTransaction" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"getexternaltransaction": { +"description": "Gets an existing external transaction.", +"flatPath": "androidpublisher/v3/applications/{applicationsId}/externalTransactions/{externalTransactionsId}", +"httpMethod": "GET", +"id": "androidpublisher.externaltransactions.getexternaltransaction", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the external transaction to retrieve. Format: applications/{package_name}/externalTransactions/{external_transaction}", +"location": "path", +"pattern": "^applications/[^/]+/externalTransactions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+name}", +"response": { +"$ref": "ExternalTransaction" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"refundexternaltransaction": { +"description": "Refunds or partially refunds an existing external transaction.", +"flatPath": "androidpublisher/v3/applications/{applicationsId}/externalTransactions/{externalTransactionsId}:refund", +"httpMethod": "POST", +"id": "androidpublisher.externaltransactions.refundexternaltransaction", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the external transaction that will be refunded. Format: applications/{package_name}/externalTransactions/{external_transaction}", +"location": "path", +"pattern": "^applications/[^/]+/externalTransactions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+name}:refund", +"request": { +"$ref": "RefundExternalTransactionRequest" +}, +"response": { +"$ref": "ExternalTransaction" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"generatedapks": { +"methods": { +"download": { +"description": "Downloads a single signed APK generated from an app bundle.", +"flatPath": "androidpublisher/v3/applications/{packageName}/generatedApks/{versionCode}/downloads/{downloadId}:download", +"httpMethod": "GET", +"id": "androidpublisher.generatedapks.download", +"parameterOrder": [ +"packageName", +"versionCode", +"downloadId" +], +"parameters": { +"downloadId": { +"description": "Download ID, which uniquely identifies the APK to download. Can be obtained from the response of `generatedapks.list` method.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"versionCode": { +"description": "Version code of the app bundle.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/generatedApks/{versionCode}/downloads/{downloadId}:download", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"list": { +"description": "Returns download metadata for all APKs that were generated from a given app bundle.", +"flatPath": "androidpublisher/v3/applications/{packageName}/generatedApks/{versionCode}", +"httpMethod": "GET", +"id": "androidpublisher.generatedapks.list", +"parameterOrder": [ +"packageName", +"versionCode" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"versionCode": { +"description": "Version code of the app bundle.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/generatedApks/{versionCode}", +"response": { +"$ref": "GeneratedApksListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"grants": { +"methods": { +"create": { +"description": "Grant access for a user to the given package.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users/{usersId}/grants", +"httpMethod": "POST", +"id": "androidpublisher.grants.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The user which needs permission. Format: developers/{developer}/users/{user}", +"location": "path", +"pattern": "^developers/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+parent}/grants", +"request": { +"$ref": "Grant" +}, +"response": { +"$ref": "Grant" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Removes all access for the user to the given package or developer account.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users/{usersId}/grants/{grantsId}", +"httpMethod": "DELETE", +"id": "androidpublisher.grants.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the grant to delete. Format: developers/{developer}/users/{email}/grants/{package_name}", +"location": "path", +"pattern": "^developers/[^/]+/users/[^/]+/grants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+name}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Updates access for the user to the given package.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users/{usersId}/grants/{grantsId}", +"httpMethod": "PATCH", +"id": "androidpublisher.grants.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for this grant, following the pattern \"developers/{developer}/users/{email}/grants/{package_name}\". If this grant is for a draft app, the app ID will be used in this resource name instead of the package name.", +"location": "path", +"pattern": "^developers/[^/]+/users/[^/]+/grants/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/{+name}", +"request": { +"$ref": "Grant" +}, +"response": { +"$ref": "Grant" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"inappproducts": { +"methods": { +"batchDelete": { +"description": "Deletes in-app products (managed products or subscriptions). Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput. This method should not be used to delete subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts:batchDelete", +"httpMethod": "POST", +"id": "androidpublisher.inappproducts.batchDelete", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts:batchDelete", +"request": { +"$ref": "InappproductsBatchDeleteRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchGet": { +"description": "Reads multiple in-app products, which can be managed products or subscriptions. This method should not be used to retrieve subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts:batchGet", +"httpMethod": "GET", +"id": "androidpublisher.inappproducts.batchGet", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app products.", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts:batchGet", +"response": { +"$ref": "InappproductsBatchGetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchUpdate": { +"description": "Updates or inserts one or more in-app products (managed products or subscriptions). Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput. This method should no longer be used to update subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts:batchUpdate", +"httpMethod": "POST", +"id": "androidpublisher.inappproducts.batchUpdate", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts:batchUpdate", +"request": { +"$ref": "InappproductsBatchUpdateRequest" +}, +"response": { +"$ref": "InappproductsBatchUpdateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Deletes an in-app product (a managed product or a subscription). This method should no longer be used to delete subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"httpMethod": "DELETE", +"id": "androidpublisher.inappproducts.delete", +"parameterOrder": [ +"packageName", +"sku" +], +"parameters": { +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"location": "query", +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Gets an in-app product, which can be a managed product or a subscription. This method should no longer be used to retrieve subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"httpMethod": "GET", +"id": "androidpublisher.inappproducts.get", +"parameterOrder": [ +"packageName", +"sku" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"response": { +"$ref": "InAppProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"insert": { +"description": "Creates an in-app product (a managed product or a subscription). This method should no longer be used to create subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts", +"httpMethod": "POST", +"id": "androidpublisher.inappproducts.insert", +"parameterOrder": [ +"packageName" +], +"parameters": { +"autoConvertMissingPrices": { +"description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", +"location": "query", +"type": "boolean" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts", +"request": { +"$ref": "InAppProduct" +}, +"response": { +"$ref": "InAppProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all in-app products - both managed products and subscriptions. If an app has a large number of in-app products, the response may be paginated. In this case the response field `tokenPagination.nextPageToken` will be set and the caller should provide its value as a `token` request parameter to retrieve the next page. This method should no longer be used to retrieve subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts", +"httpMethod": "GET", +"id": "androidpublisher.inappproducts.list", +"parameterOrder": [ +"packageName" +], +"parameters": { +"maxResults": { +"deprecated": true, +"description": "Deprecated and ignored. The page size is determined by the server.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"startIndex": { +"deprecated": true, +"description": "Deprecated and ignored. Set the `token` parameter to retrieve the next page.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Pagination token. If empty, list starts at the first product.", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts", +"response": { +"$ref": "InappproductsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Patches an in-app product (a managed product or a subscription). This method should no longer be used to update subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"httpMethod": "PATCH", +"id": "androidpublisher.inappproducts.patch", +"parameterOrder": [ +"packageName", +"sku" +], +"parameters": { +"autoConvertMissingPrices": { +"description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", +"location": "query", +"type": "boolean" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"location": "query", +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"request": { +"$ref": "InAppProduct" +}, +"response": { +"$ref": "InAppProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Updates an in-app product (a managed product or a subscription). This method should no longer be used to update subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", +"flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"httpMethod": "PUT", +"id": "androidpublisher.inappproducts.update", +"parameterOrder": [ +"packageName", +"sku" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the in-app product with the given package_name and sku doesn't exist, the in-app product will be created.", +"location": "query", +"type": "boolean" +}, +"autoConvertMissingPrices": { +"description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", +"location": "query", +"type": "boolean" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"location": "query", +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", +"request": { +"$ref": "InAppProduct" +}, +"response": { +"$ref": "InAppProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"internalappsharingartifacts": { +"methods": { +"uploadapk": { +"description": "Uploads an APK to internal app sharing. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See [Timeouts and Errors](https://developers.google.com/api-client-library/java/google-api-java-client/errors) for an example in java.", +"flatPath": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk", +"httpMethod": "POST", +"id": "androidpublisher.internalappsharingartifacts.uploadapk", +"mediaUpload": { +"accept": [ +"application/octet-stream", +"application/vnd.android.package-archive" +], +"maxSize": "1073741824", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk" +} +} +}, +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk", +"response": { +"$ref": "InternalAppSharingArtifact" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +}, +"uploadbundle": { +"description": "Uploads an app bundle to internal app sharing. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See [Timeouts and Errors](https://developers.google.com/api-client-library/java/google-api-java-client/errors) for an example in java.", +"flatPath": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle", +"httpMethod": "POST", +"id": "androidpublisher.internalappsharingartifacts.uploadbundle", +"mediaUpload": { +"accept": [ +"application/octet-stream" +], +"maxSize": "10737418240", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle" +}, +"simple": { +"multipart": true, +"path": "/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle" +} +} +}, +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle", +"response": { +"$ref": "InternalAppSharingArtifact" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +}, +"monetization": { +"methods": { +"convertRegionPrices": { +"description": "Calculates the region prices, using today's exchange rate and country-specific pricing patterns, based on the price in the request for a set of regions.", +"flatPath": "androidpublisher/v3/applications/{packageName}/pricing:convertRegionPrices", +"httpMethod": "POST", +"id": "androidpublisher.monetization.convertRegionPrices", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. The app package name.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/pricing:convertRegionPrices", +"request": { +"$ref": "ConvertRegionPricesRequest" +}, +"response": { +"$ref": "ConvertRegionPricesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +}, +"resources": { +"subscriptions": { +"methods": { +"archive": { +"deprecated": true, +"description": "Deprecated: subscription archiving is not supported.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}:archive", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.archive", +"parameterOrder": [ +"packageName", +"productId" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) of the app of the subscription to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The unique product ID of the subscription to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}:archive", +"request": { +"$ref": "ArchiveSubscriptionRequest" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchGet": { +"description": "Reads one or more subscriptions.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions:batchGet", +"httpMethod": "GET", +"id": "androidpublisher.monetization.subscriptions.batchGet", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) for which the subscriptions should be retrieved. Must be equal to the package_name field on all the requests.", +"location": "path", +"required": true, +"type": "string" +}, +"productIds": { +"description": "Required. A list of up to 100 subscription product IDs to retrieve. All the IDs must be different.", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions:batchGet", +"response": { +"$ref": "BatchGetSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchUpdate": { +"description": "Updates a batch of subscriptions. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions:batchUpdate", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.batchUpdate", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) for which the subscriptions should be updated. Must be equal to the package_name field on all the Subscription resources.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions:batchUpdate", +"request": { +"$ref": "BatchUpdateSubscriptionsRequest" +}, +"response": { +"$ref": "BatchUpdateSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"create": { +"description": "Creates a new subscription. Newly added base plans will remain in draft state until activated.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.create", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) for which the subscription should be created. Must be equal to the package_name field on the Subscription resource.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The ID to use for the subscription. For the requirements on this format, see the documentation of the product_id field on the Subscription resource.", +"location": "query", +"type": "string" +}, +"regionsVersion.version": { +"description": "Required. A string representing the version of available regions being used for the specified resource. Regional prices for the resource have to be specified according to the information published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions", +"request": { +"$ref": "Subscription" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Deletes a subscription. A subscription can only be deleted if it has never had a base plan published.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", +"httpMethod": "DELETE", +"id": "androidpublisher.monetization.subscriptions.delete", +"parameterOrder": [ +"packageName", +"productId" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) of the app of the subscription to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The unique product ID of the subscription to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Reads a single subscription.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", +"httpMethod": "GET", +"id": "androidpublisher.monetization.subscriptions.get", +"parameterOrder": [ +"packageName", +"productId" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) of the subscription to get.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The unique product ID of the subscription to get.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all subscriptions under a given app.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions", +"httpMethod": "GET", +"id": "androidpublisher.monetization.subscriptions.list", +"parameterOrder": [ +"packageName" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) for which the subscriptions should be read.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of subscriptions to return. The service may return fewer than this value. If unspecified, at most 50 subscriptions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSubscriptions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscriptions` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"showArchived": { +"deprecated": true, +"description": "Deprecated: subscription archiving is not supported.", +"location": "query", +"type": "boolean" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions", +"response": { +"$ref": "ListSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Updates an existing subscription.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", +"httpMethod": "PATCH", +"id": "androidpublisher.monetization.subscriptions.patch", +"parameterOrder": [ +"packageName", +"productId" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, and the subscription with the given package_name and product_id doesn't exist, the subscription will be created. If a new subscription is created, update_mask is ignored.", +"location": "query", +"type": "boolean" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"location": "query", +"type": "string" +}, +"packageName": { +"description": "Immutable. Package name of the parent app.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Immutable. Unique product ID of the product. Unique within the parent app. Product IDs must be composed of lower-case letters (a-z), numbers (0-9), underscores (_) and dots (.). It must start with a lower-case letter or number, and be between 1 and 40 (inclusive) characters in length.", +"location": "path", +"required": true, +"type": "string" +}, +"regionsVersion.version": { +"description": "Required. A string representing the version of available regions being used for the specified resource. Regional prices for the resource have to be specified according to the information published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", +"request": { +"$ref": "Subscription" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +}, +"resources": { +"basePlans": { +"methods": { +"activate": { +"description": "Activates a base plan. Once activated, base plans will be available to new subscribers.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:activate", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.activate", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The unique base plan ID of the base plan to activate.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the base plan to activate.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the base plan to activate.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:activate", +"request": { +"$ref": "ActivateBasePlanRequest" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchMigratePrices": { +"description": "Batch variant of the MigrateBasePlanPrices endpoint. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchMigratePrices", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.batchMigratePrices", +"parameterOrder": [ +"packageName", +"productId" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) for which the subscriptions should be created or updated. Must be equal to the package_name field on all the Subscription resources.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this batch update spans multiple subscriptions, set this field to \"-\". Must be set.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchMigratePrices", +"request": { +"$ref": "BatchMigrateBasePlanPricesRequest" +}, +"response": { +"$ref": "BatchMigrateBasePlanPricesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchUpdateStates": { +"description": "Activates or deactivates base plans across one or multiple subscriptions. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchUpdateStates", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.batchUpdateStates", +"parameterOrder": [ +"packageName", +"productId" +], +"parameters": { +"packageName": { +"description": "Required. The parent app (package name) of the updated base plans.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The product ID of the parent subscription, if all updated base plans belong to the same subscription. If this batch update spans multiple subscriptions, set this field to \"-\". Must be set.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchUpdateStates", +"request": { +"$ref": "BatchUpdateBasePlanStatesRequest" +}, +"response": { +"$ref": "BatchUpdateBasePlanStatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"deactivate": { +"description": "Deactivates a base plan. Once deactivated, the base plan will become unavailable to new subscribers, but existing subscribers will maintain their subscription", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:deactivate", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.deactivate", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The unique base plan ID of the base plan to deactivate.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the base plan to deactivate.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the base plan to deactivate.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:deactivate", +"request": { +"$ref": "DeactivateBasePlanRequest" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Deletes a base plan. Can only be done for draft base plans. This action is irreversible.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}", +"httpMethod": "DELETE", +"id": "androidpublisher.monetization.subscriptions.basePlans.delete", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The unique offer ID of the base plan to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the base plan to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the base plan to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"migratePrices": { +"description": "Migrates subscribers from one or more legacy price cohorts to the current price. Requests result in Google Play notifying affected subscribers. Only up to 250 simultaneous legacy price cohorts are supported.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:migratePrices", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.migratePrices", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The unique base plan ID of the base plan to update prices on.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. Package name of the parent app. Must be equal to the package_name field on the Subscription resource.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The ID of the subscription to update. Must be equal to the product_id field on the Subscription resource.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:migratePrices", +"request": { +"$ref": "MigrateBasePlanPricesRequest" +}, +"response": { +"$ref": "MigrateBasePlanPricesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +}, +"resources": { +"offers": { +"methods": { +"activate": { +"description": "Activates a subscription offer. Once activated, subscription offers will be available to new subscribers.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:activate", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.activate", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId", +"offerId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to activate.", +"location": "path", +"required": true, +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to activate.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to activate.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to activate.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:activate", +"request": { +"$ref": "ActivateSubscriptionOfferRequest" +}, +"response": { +"$ref": "SubscriptionOffer" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchGet": { +"description": "Reads one or more subscription offers.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchGet", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.batchGet", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) for which the offers should be read. May be specified as '-' to read offers from multiple base plans.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) for which the subscriptions should be created or updated. Must be equal to the package_name field on all the requests.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchGet", +"request": { +"$ref": "BatchGetSubscriptionOffersRequest" +}, +"response": { +"$ref": "BatchGetSubscriptionOffersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchUpdate": { +"description": "Updates a batch of subscription offers. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdate", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.batchUpdate", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) for which the offers should be updated. May be specified as '-' to update offers from multiple base plans.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the updated subscription offers. Must be equal to the package_name field on all the updated SubscriptionOffer resources.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdate", +"request": { +"$ref": "BatchUpdateSubscriptionOffersRequest" +}, +"response": { +"$ref": "BatchUpdateSubscriptionOffersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"batchUpdateStates": { +"description": "Updates a batch of subscription offer states. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdateStates", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.batchUpdateStates", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) for which the offers should be updated. May be specified as '-' to update offers from multiple base plans.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the updated subscription offers. Must be equal to the package_name field on all the updated SubscriptionOffer resources.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdateStates", +"request": { +"$ref": "BatchUpdateSubscriptionOfferStatesRequest" +}, +"response": { +"$ref": "BatchUpdateSubscriptionOfferStatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"create": { +"description": "Creates a new subscription offer. Only auto-renewing base plans can have subscription offers. The offer state will be DRAFT until it is activated.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.create", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) for which the offer should be created. Must be equal to the base_plan_id field on the SubscriptionOffer resource.", +"location": "path", +"required": true, +"type": "string" +}, +"offerId": { +"description": "Required. The ID to use for the offer. For the requirements on this format, see the documentation of the offer_id field on the SubscriptionOffer resource.", +"location": "query", +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) for which the offer should be created. Must be equal to the package_name field on the Subscription resource.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) for which the offer should be created. Must be equal to the product_id field on the SubscriptionOffer resource.", +"location": "path", +"required": true, +"type": "string" +}, +"regionsVersion.version": { +"description": "Required. A string representing the version of available regions being used for the specified resource. Regional prices for the resource have to be specified according to the information published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", +"request": { +"$ref": "SubscriptionOffer" +}, +"response": { +"$ref": "SubscriptionOffer" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"deactivate": { +"description": "Deactivates a subscription offer. Once deactivated, existing subscribers will maintain their subscription, but the offer will become unavailable to new subscribers.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:deactivate", +"httpMethod": "POST", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.deactivate", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId", +"offerId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to deactivate.", +"location": "path", +"required": true, +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to deactivate.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to deactivate.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to deactivate.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:deactivate", +"request": { +"$ref": "DeactivateSubscriptionOfferRequest" +}, +"response": { +"$ref": "SubscriptionOffer" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Deletes a subscription offer. Can only be done for draft offers. This action is irreversible.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", +"httpMethod": "DELETE", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.delete", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId", +"offerId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Reads a single offer", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", +"httpMethod": "GET", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.get", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId", +"offerId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to get.", +"location": "path", +"required": true, +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to get.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to get.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to get.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", +"response": { +"$ref": "SubscriptionOffer" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all offers under a given subscription.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", +"httpMethod": "GET", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.list", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId" +], +"parameters": { +"basePlanId": { +"description": "Required. The parent base plan (ID) for which the offers should be read. May be specified as '-' to read all offers under a subscription or an app. Must be specified as '-' if product_id is specified as '-'.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) for which the subscriptions should be read.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of subscriptions to return. The service may return fewer than this value. If unspecified, at most 50 subscriptions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSubscriptionsOffers` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscriptionOffers` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) for which the offers should be read. May be specified as '-' to read all offers under an app.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", +"response": { +"$ref": "ListSubscriptionOffersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Updates an existing subscription offer.", +"flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", +"httpMethod": "PATCH", +"id": "androidpublisher.monetization.subscriptions.basePlans.offers.patch", +"parameterOrder": [ +"packageName", +"productId", +"basePlanId", +"offerId" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, and the subscription offer with the given package_name, product_id, base_plan_id and offer_id doesn't exist, an offer will be created. If a new offer is created, update_mask is ignored.", +"location": "query", +"type": "boolean" +}, +"basePlanId": { +"description": "Required. Immutable. The ID of the base plan to which this offer is an extension.", +"location": "path", +"required": true, +"type": "string" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"location": "query", +"type": "string" +}, +"offerId": { +"description": "Required. Immutable. Unique ID of this subscription offer. Must be unique within the base plan.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "Required. Immutable. The package name of the app the parent subscription belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. Immutable. The ID of the parent subscription this offer belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"regionsVersion.version": { +"description": "Required. A string representing the version of available regions being used for the specified resource. Regional prices for the resource have to be specified according to the information published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", +"request": { +"$ref": "SubscriptionOffer" +}, +"response": { +"$ref": "SubscriptionOffer" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +} +} +} +} +} +}, +"orders": { +"methods": { +"refund": { +"description": "Refunds a user's subscription or in-app purchase order. Orders older than 3 years cannot be refunded.", +"flatPath": "androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund", +"httpMethod": "POST", +"id": "androidpublisher.orders.refund", +"parameterOrder": [ +"packageName", +"orderId" +], +"parameters": { +"orderId": { +"description": "The order ID provided to the user when the subscription or in-app order was purchased.", +"location": "path", +"required": true, +"type": "string" +}, +"packageName": { +"description": "The package name of the application for which this subscription or in-app item was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"revoke": { +"description": "Whether to revoke the purchased item. If set to true, access to the subscription or in-app item will be terminated immediately. If the item is a recurring subscription, all future payments will also be terminated. Consumed in-app items need to be handled by developer's app. (optional).", +"location": "query", +"type": "boolean" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"purchases": { +"resources": { +"products": { +"methods": { +"acknowledge": { +"description": "Acknowledges a purchase of an inapp item.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge", +"httpMethod": "POST", +"id": "androidpublisher.purchases.products.acknowledge", +"parameterOrder": [ +"packageName", +"productId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The inapp product SKU (for example, 'com.some.thing.inapp1').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the inapp product was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge", +"request": { +"$ref": "ProductPurchasesAcknowledgeRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"consume": { +"description": "Consumes a purchase for an inapp item.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:consume", +"httpMethod": "POST", +"id": "androidpublisher.purchases.products.consume", +"parameterOrder": [ +"packageName", +"productId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The inapp product SKU (for example, 'com.some.thing.inapp1').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the inapp product was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:consume", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Checks the purchase and consumption status of an inapp item.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}", +"httpMethod": "GET", +"id": "androidpublisher.purchases.products.get", +"parameterOrder": [ +"packageName", +"productId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The inapp product SKU (for example, 'com.some.thing.inapp1').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the inapp product was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}", +"response": { +"$ref": "ProductPurchase" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"subscriptions": { +"methods": { +"acknowledge": { +"description": "Acknowledges a subscription purchase.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge", +"httpMethod": "POST", +"id": "androidpublisher.purchases.subscriptions.acknowledge", +"parameterOrder": [ +"packageName", +"subscriptionId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "The purchased subscription ID (for example, 'monthly001').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge", +"request": { +"$ref": "SubscriptionPurchasesAcknowledgeRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"cancel": { +"description": "Cancels a user's subscription purchase. The subscription remains valid until its expiration time.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel", +"httpMethod": "POST", +"id": "androidpublisher.purchases.subscriptions.cancel", +"parameterOrder": [ +"packageName", +"subscriptionId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "The purchased subscription ID (for example, 'monthly001').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"defer": { +"description": "Defers a user's subscription purchase until a specified future expiration time.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer", +"httpMethod": "POST", +"id": "androidpublisher.purchases.subscriptions.defer", +"parameterOrder": [ +"packageName", +"subscriptionId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "The purchased subscription ID (for example, 'monthly001').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer", +"request": { +"$ref": "SubscriptionPurchasesDeferRequest" +}, +"response": { +"$ref": "SubscriptionPurchasesDeferResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Checks whether a user's subscription purchase is valid and returns its expiry time.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}", +"httpMethod": "GET", +"id": "androidpublisher.purchases.subscriptions.get", +"parameterOrder": [ +"packageName", +"subscriptionId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "The purchased subscription ID (for example, 'monthly001').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}", +"response": { +"$ref": "SubscriptionPurchase" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"refund": { +"description": "Refunds a user's subscription purchase, but the subscription remains valid until its expiration time and it will continue to recur.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund", +"httpMethod": "POST", +"id": "androidpublisher.purchases.subscriptions.refund", +"parameterOrder": [ +"packageName", +"subscriptionId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "\"The purchased subscription ID (for example, 'monthly001').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"revoke": { +"description": "Refunds and immediately revokes a user's subscription purchase. Access to the subscription will be terminated immediately and it will stop recurring.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke", +"httpMethod": "POST", +"id": "androidpublisher.purchases.subscriptions.revoke", +"parameterOrder": [ +"packageName", +"subscriptionId", +"token" +], +"parameters": { +"packageName": { +"description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "The purchased subscription ID (for example, 'monthly001').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"subscriptionsv2": { +"methods": { +"get": { +"description": "Get metadata about a subscription", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}", +"httpMethod": "GET", +"id": "androidpublisher.purchases.subscriptionsv2.get", +"parameterOrder": [ +"packageName", +"token" +], +"parameters": { +"packageName": { +"description": "The package of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "Required. The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}", +"response": { +"$ref": "SubscriptionPurchaseV2" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"revoke": { +"description": "Revoke a subscription purchase for the user.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}:revoke", +"httpMethod": "POST", +"id": "androidpublisher.purchases.subscriptionsv2.revoke", +"parameterOrder": [ +"packageName", +"token" +], +"parameters": { +"packageName": { +"description": "Required. The package of the application for which this subscription was purchased (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"token": { +"description": "Required. The token provided to the user's device when the subscription was purchased.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}:revoke", +"request": { +"$ref": "RevokeSubscriptionPurchaseRequest" +}, +"response": { +"$ref": "RevokeSubscriptionPurchaseResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"voidedpurchases": { +"methods": { +"list": { +"description": "Lists the purchases that were canceled, refunded or charged-back.", +"flatPath": "androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases", +"httpMethod": "GET", +"id": "androidpublisher.purchases.voidedpurchases.list", +"parameterOrder": [ +"packageName" +], +"parameters": { +"endTime": { +"description": "The time, in milliseconds since the Epoch, of the newest voided purchase that you want to see in the response. The value of this parameter cannot be greater than the current time and is ignored if a pagination token is set. Default value is current time. Note: This filter is applied on the time at which the record is seen as voided by our systems and not the actual voided time returned in the response.", +"format": "int64", +"location": "query", +"type": "string" +}, +"includeQuantityBasedPartialRefund": { +"description": "Optional. Whether to include voided purchases of quantity-based partial refunds, which are applicable only to multi-quantity purchases. If true, additional voided purchases may be returned with voidedQuantity that indicates the refund quantity of a quantity-based partial refund. The default value is false.", +"location": "query", +"type": "boolean" +}, +"maxResults": { +"description": "Defines how many results the list operation should return. The default number depends on the resource collection.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"packageName": { +"description": "The package name of the application for which voided purchases need to be returned (for example, 'com.some.thing').", +"location": "path", +"required": true, +"type": "string" +}, +"startIndex": { +"description": "Defines the index of the first element to return. This can only be used if indexed paging is enabled.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"startTime": { +"description": "The time, in milliseconds since the Epoch, of the oldest voided purchase that you want to see in the response. The value of this parameter cannot be older than 30 days and is ignored if a pagination token is set. Default value is current time minus 30 days. Note: This filter is applied on the time at which the record is seen as voided by our systems and not the actual voided time returned in the response.", +"format": "int64", +"location": "query", +"type": "string" +}, +"token": { +"description": "Defines the token of the page to return, usually taken from TokenPagination. This can only be used if token paging is enabled.", +"location": "query", +"type": "string" +}, +"type": { +"description": "The type of voided purchases that you want to see in the response. Possible values are: 0. Only voided in-app product purchases will be returned in the response. This is the default value. 1. Both voided in-app purchases and voided subscription purchases will be returned in the response. Note: Before requesting to receive voided subscription purchases, you must switch to use orderId in the response which uniquely identifies one-time purchases and subscriptions. Otherwise, you will receive multiple subscription orders with the same PurchaseToken, because subscription renewal orders share the same PurchaseToken.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases", +"response": { +"$ref": "VoidedPurchasesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +} +}, +"reviews": { +"methods": { +"get": { +"description": "Gets a single review.", +"flatPath": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}", +"httpMethod": "GET", +"id": "androidpublisher.reviews.get", +"parameterOrder": [ +"packageName", +"reviewId" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"reviewId": { +"description": "Unique identifier for a review.", +"location": "path", +"required": true, +"type": "string" +}, +"translationLanguage": { +"description": "Language localization code.", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}", +"response": { +"$ref": "Review" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all reviews.", +"flatPath": "androidpublisher/v3/applications/{packageName}/reviews", +"httpMethod": "GET", +"id": "androidpublisher.reviews.list", +"parameterOrder": [ +"packageName" +], +"parameters": { +"maxResults": { +"description": "How many results the list operation should return.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"startIndex": { +"description": "The index of the first element to return.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Pagination token. If empty, list starts at the first review.", +"location": "query", +"type": "string" +}, +"translationLanguage": { +"description": "Language localization code.", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/reviews", +"response": { +"$ref": "ReviewsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"reply": { +"description": "Replies to a single review, or updates an existing reply.", +"flatPath": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:reply", +"httpMethod": "POST", +"id": "androidpublisher.reviews.reply", +"parameterOrder": [ +"packageName", +"reviewId" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"reviewId": { +"description": "Unique identifier for a review.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:reply", +"request": { +"$ref": "ReviewsReplyRequest" +}, +"response": { +"$ref": "ReviewsReplyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"systemapks": { +"resources": { +"variants": { +"methods": { +"create": { +"description": "Creates an APK which is suitable for inclusion in a system image from an already uploaded Android App Bundle.", +"flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants", +"httpMethod": "POST", +"id": "androidpublisher.systemapks.variants.create", +"parameterOrder": [ +"packageName", +"versionCode" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"versionCode": { +"description": "The version code of the App Bundle.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants", +"request": { +"$ref": "Variant" +}, +"response": { +"$ref": "Variant" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"download": { +"description": "Downloads a previously created system APK which is suitable for inclusion in a system image.", +"flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}:download", +"httpMethod": "GET", +"id": "androidpublisher.systemapks.variants.download", +"parameterOrder": [ +"packageName", +"versionCode", +"variantId" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"variantId": { +"description": "The ID of a previously created system APK variant.", +"format": "uint32", +"location": "path", +"required": true, +"type": "integer" +}, +"versionCode": { +"description": "The version code of the App Bundle.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}:download", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"get": { +"description": "Returns a previously created system APK variant.", +"flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}", +"httpMethod": "GET", +"id": "androidpublisher.systemapks.variants.get", +"parameterOrder": [ +"packageName", +"versionCode", +"variantId" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"variantId": { +"description": "The ID of a previously created system APK variant.", +"format": "uint32", +"location": "path", +"required": true, +"type": "integer" +}, +"versionCode": { +"description": "The version code of the App Bundle.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}", +"response": { +"$ref": "Variant" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Returns the list of previously created system APK variants.", +"flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants", +"httpMethod": "GET", +"id": "androidpublisher.systemapks.variants.list", +"parameterOrder": [ +"packageName", +"versionCode" +], +"parameters": { +"packageName": { +"description": "Package name of the app.", +"location": "path", +"required": true, +"type": "string" +}, +"versionCode": { +"description": "The version code of the App Bundle.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants", +"response": { +"$ref": "SystemApksListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +} +}, +"users": { +"methods": { +"create": { +"description": "Grant access for a user to the given developer account.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users", +"httpMethod": "POST", +"id": "androidpublisher.users.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The developer account to add the user to. Format: developers/{developer}", +"location": "path", +"pattern": "^developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+parent}/users", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"delete": { +"description": "Removes all access for the user to the given developer account.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users/{usersId}", +"httpMethod": "DELETE", +"id": "androidpublisher.users.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the user to delete. Format: developers/{developer}/users/{email}", +"location": "path", +"pattern": "^developers/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+name}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Lists all users with access to a developer account.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users", +"httpMethod": "GET", +"id": "androidpublisher.users.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return. This must be set to -1 to disable pagination.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token received from a previous call to this method, in order to retrieve further results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The developer account to fetch users from. Format: developers/{developer}", +"location": "path", +"pattern": "^developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "androidpublisher/v3/{+parent}/users", +"response": { +"$ref": "ListUsersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"patch": { +"description": "Updates access for the user to the developer account.", +"flatPath": "androidpublisher/v3/developers/{developersId}/users/{usersId}", +"httpMethod": "PATCH", +"id": "androidpublisher.users.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for this user, following the pattern \"developers/{developer}/users/{email}\".", +"location": "path", +"pattern": "^developers/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "androidpublisher/v3/{+name}", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +}, +"revision": "20250102", +"rootUrl": "https://androidpublisher.googleapis.com/", +"schemas": { +"Abi": { +"description": "Represents an Abi.", +"id": "Abi", +"properties": { +"alias": { +"description": "Alias for an abi.", +"enum": [ +"UNSPECIFIED_CPU_ARCHITECTURE", +"ARMEABI", +"ARMEABI_V7A", +"ARM64_V8A", +"X86", +"X86_64", +"RISCV64" +], +"enumDescriptions": [ +"Unspecified abi.", +"ARMEABI abi.", +"ARMEABI_V7A abi.", +"ARM64_V8A abi.", +"X86 abi.", +"X86_64 abi.", +"RISCV64 abi." +], +"type": "string" +} +}, +"type": "object" +}, +"AbiTargeting": { +"description": "Targeting based on Abi.", +"id": "AbiTargeting", +"properties": { +"alternatives": { +"description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", +"items": { +"$ref": "Abi" +}, +"type": "array" +}, +"value": { +"description": "Value of an abi.", +"items": { +"$ref": "Abi" +}, +"type": "array" +} +}, +"type": "object" +}, +"AcquisitionTargetingRule": { +"description": "Represents a targeting rule of the form: User never had {scope} before.", +"id": "AcquisitionTargetingRule", +"properties": { +"scope": { +"$ref": "TargetingRuleScope", +"description": "Required. The scope of subscriptions this rule considers. Only allows \"this subscription\" and \"any subscription in app\"." +} +}, +"type": "object" +}, +"ActivateBasePlanRequest": { +"description": "Request message for ActivateBasePlan.", +"id": "ActivateBasePlanRequest", +"properties": { +"basePlanId": { +"description": "Required. The unique base plan ID of the base plan to activate.", +"type": "string" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the base plan to activate.", +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the base plan to activate.", +"type": "string" +} +}, +"type": "object" +}, +"ActivateSubscriptionOfferRequest": { +"description": "Request message for ActivateSubscriptionOffer.", +"id": "ActivateSubscriptionOfferRequest", +"properties": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to activate.", +"type": "string" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to activate.", +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to activate.", +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to activate.", +"type": "string" +} +}, +"type": "object" +}, +"AddTargetingRequest": { +"description": "Request message for AddTargeting.", +"id": "AddTargetingRequest", +"properties": { +"targetingUpdate": { +"$ref": "TargetingUpdate", +"description": "Specifies targeting updates such as regions, android sdk versions etc." +} +}, +"type": "object" +}, +"AddTargetingResponse": { +"description": "Response message for AddTargeting.", +"id": "AddTargetingResponse", +"properties": {}, +"type": "object" +}, +"AllUsers": { +"description": "Object representation to describe all set of users.", +"id": "AllUsers", +"properties": { +"isAllUsersRequested": { +"description": "Required. Set to true if all set of users are needed.", +"type": "boolean" +} +}, +"type": "object" +}, +"AndroidSdks": { +"description": "Android api level targeting data for app recovery action targeting.", +"id": "AndroidSdks", +"properties": { +"sdkLevels": { +"description": "Android api levels of devices targeted by recovery action. See https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels for different api levels in android.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Apk": { +"description": "Information about an APK. The resource for ApksService.", +"id": "Apk", +"properties": { +"binary": { +"$ref": "ApkBinary", +"description": "Information about the binary payload of this APK." +}, +"versionCode": { +"description": "The version code of the APK, as specified in the manifest file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ApkBinary": { +"description": "Represents the binary payload of an APK.", +"id": "ApkBinary", +"properties": { +"sha1": { +"description": "A sha1 hash of the APK payload, encoded as a hex string and matching the output of the sha1sum command.", +"type": "string" +}, +"sha256": { +"description": "A sha256 hash of the APK payload, encoded as a hex string and matching the output of the sha256sum command.", +"type": "string" +} +}, +"type": "object" +}, +"ApkDescription": { +"description": "Description of the created apks.", +"id": "ApkDescription", +"properties": { +"assetSliceMetadata": { +"$ref": "SplitApkMetadata", +"description": "Set only for asset slices." +}, +"instantApkMetadata": { +"$ref": "SplitApkMetadata", +"description": "Set only for Instant split APKs." +}, +"path": { +"description": "Path of the Apk, will be in the following format: .apk where DownloadId is the ID used to download the apk using GeneratedApks.Download API.", +"type": "string" +}, +"splitApkMetadata": { +"$ref": "SplitApkMetadata", +"description": "Set only for Split APKs." +}, +"standaloneApkMetadata": { +"$ref": "StandaloneApkMetadata", +"description": "Set only for standalone APKs." +}, +"targeting": { +"$ref": "ApkTargeting", +"description": "Apk-level targeting." +} +}, +"type": "object" +}, +"ApkSet": { +"description": "A set of apks representing a module.", +"id": "ApkSet", +"properties": { +"apkDescription": { +"description": "Description of the generated apks.", +"items": { +"$ref": "ApkDescription" +}, +"type": "array" +}, +"moduleMetadata": { +"$ref": "ModuleMetadata", +"description": "Metadata about the module represented by this ApkSet" +} +}, +"type": "object" +}, +"ApkTargeting": { +"description": "Represents a set of apk-level targetings.", +"id": "ApkTargeting", +"properties": { +"abiTargeting": { +"$ref": "AbiTargeting", +"description": "The abi that the apk targets" +}, +"languageTargeting": { +"$ref": "LanguageTargeting", +"description": "The language that the apk targets" +}, +"multiAbiTargeting": { +"$ref": "MultiAbiTargeting", +"description": "Multi-api-level targeting." +}, +"screenDensityTargeting": { +"$ref": "ScreenDensityTargeting", +"description": "The screen density that this apk supports." +}, +"sdkVersionTargeting": { +"$ref": "SdkVersionTargeting", +"description": "The sdk version that the apk targets" +}, +"textureCompressionFormatTargeting": { +"$ref": "TextureCompressionFormatTargeting", +"description": "Texture-compression-format-level targeting" +} +}, +"type": "object" +}, +"ApksAddExternallyHostedRequest": { +"description": "Request to create a new externally hosted APK.", +"id": "ApksAddExternallyHostedRequest", +"properties": { +"externallyHostedApk": { +"$ref": "ExternallyHostedApk", +"description": "The definition of the externally-hosted APK and where it is located." +} +}, +"type": "object" +}, +"ApksAddExternallyHostedResponse": { +"description": "Response for creating a new externally hosted APK.", +"id": "ApksAddExternallyHostedResponse", +"properties": { +"externallyHostedApk": { +"$ref": "ExternallyHostedApk", +"description": "The definition of the externally-hosted APK and where it is located." +} +}, +"type": "object" +}, +"ApksListResponse": { +"description": "Response listing all APKs.", +"id": "ApksListResponse", +"properties": { +"apks": { +"description": "All APKs.", +"items": { +"$ref": "Apk" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this response (\"androidpublisher#apksListResponse\").", +"type": "string" +} +}, +"type": "object" +}, +"AppDetails": { +"description": "The app details. The resource for DetailsService.", +"id": "AppDetails", +"properties": { +"contactEmail": { +"description": "The user-visible support email for this app.", +"type": "string" +}, +"contactPhone": { +"description": "The user-visible support telephone number for this app.", +"type": "string" +}, +"contactWebsite": { +"description": "The user-visible website for this app.", +"type": "string" +}, +"defaultLanguage": { +"description": "Default language code, in BCP 47 format (eg \"en-US\").", +"type": "string" +} +}, +"type": "object" +}, +"AppEdit": { +"description": "An app edit. The resource for EditsService.", +"id": "AppEdit", +"properties": { +"expiryTimeSeconds": { +"description": "Output only. The time (as seconds since Epoch) at which the edit will expire and will be no longer valid for use.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. Identifier of the edit. Can be used in subsequent API calls.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AppRecoveryAction": { +"description": "Information about an app recovery action.", +"id": "AppRecoveryAction", +"properties": { +"appRecoveryId": { +"description": "ID corresponding to the app recovery action.", +"format": "int64", +"type": "string" +}, +"cancelTime": { +"description": "Timestamp of when the app recovery action is canceled by the developer. Only set if the recovery action has been canceled.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Timestamp of when the app recovery action is created by the developer. It is always set after creation of the recovery action.", +"format": "google-datetime", +"type": "string" +}, +"deployTime": { +"description": "Timestamp of when the app recovery action is deployed to the users. Only set if the recovery action has been deployed.", +"format": "google-datetime", +"type": "string" +}, +"lastUpdateTime": { +"description": "Timestamp of when the developer last updated recovery action. In case the action is cancelled, it corresponds to cancellation time. It is always set after creation of the recovery action.", +"format": "google-datetime", +"type": "string" +}, +"remoteInAppUpdateData": { +"$ref": "RemoteInAppUpdateData", +"description": "Data about the remote in-app update action such as such as recovered user base, recoverable user base etc. Set only if the recovery action type is Remote In-App Update." +}, +"status": { +"description": "The status of the recovery action.", +"enum": [ +"RECOVERY_STATUS_UNSPECIFIED", +"RECOVERY_STATUS_ACTIVE", +"RECOVERY_STATUS_CANCELED", +"RECOVERY_STATUS_DRAFT", +"RECOVERY_STATUS_GENERATION_IN_PROGRESS", +"RECOVERY_STATUS_GENERATION_FAILED" +], +"enumDescriptions": [ +"RecoveryStatus is unspecified.", +"The app recovery action has not been canceled since it has been created.", +"The recovery action has been canceled. The action cannot be resumed.", +"The recovery action is in the draft state and has not yet been deployed to users.", +"The recovery action is generating recovery apks.", +"The app recovery action generation has failed." +], +"type": "string" +}, +"targeting": { +"$ref": "Targeting", +"description": "Specifies targeting criteria for the recovery action such as regions, android sdk versions, app versions etc." +} +}, +"type": "object" +}, +"AppVersionList": { +"description": "Data format for a list of app versions.", +"id": "AppVersionList", +"properties": { +"versionCodes": { +"description": "List of app version codes.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AppVersionRange": { +"description": "Data format for a continuous range of app versions.", +"id": "AppVersionRange", +"properties": { +"versionCodeEnd": { +"description": "Highest app version in the range, inclusive.", +"format": "int64", +"type": "string" +}, +"versionCodeStart": { +"description": "Lowest app version in the range, inclusive.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ArchiveSubscriptionRequest": { +"deprecated": true, +"description": "Deprecated: subscription archiving is not supported.", +"id": "ArchiveSubscriptionRequest", +"properties": {}, +"type": "object" +}, +"AssetModuleMetadata": { +"description": "Metadata of an asset module.", +"id": "AssetModuleMetadata", +"properties": { +"deliveryType": { +"description": "Indicates the delivery type for persistent install.", +"enum": [ +"UNKNOWN_DELIVERY_TYPE", +"INSTALL_TIME", +"ON_DEMAND", +"FAST_FOLLOW" +], +"enumDescriptions": [ +"Unspecified delivery type.", +"This module will always be downloaded as part of the initial install of the app.", +"This module is requested on-demand, which means it will not be part of the initial install, and will only be sent when requested by the client.", +"This module will be downloaded immediately after initial install finishes. The app can be opened before these modules are downloaded." +], +"type": "string" +}, +"name": { +"description": "Module name.", +"type": "string" +} +}, +"type": "object" +}, +"AssetSliceSet": { +"description": "Set of asset slices belonging to a single asset module.", +"id": "AssetSliceSet", +"properties": { +"apkDescription": { +"description": "Asset slices.", +"items": { +"$ref": "ApkDescription" +}, +"type": "array" +}, +"assetModuleMetadata": { +"$ref": "AssetModuleMetadata", +"description": "Module level metadata." +} +}, +"type": "object" +}, +"AutoRenewingBasePlanType": { +"description": "Represents a base plan that automatically renews at the end of its subscription period.", +"id": "AutoRenewingBasePlanType", +"properties": { +"accountHoldDuration": { +"description": "Optional. Account hold period of the subscription, specified in ISO 8601 format. Acceptable values must be in days and between P0D and P60D. If not specified, the default value is P30D. The sum of gracePeriodDuration and accountHoldDuration must be between P30D and P60D days, inclusive.", +"type": "string" +}, +"billingPeriodDuration": { +"description": "Required. Immutable. Subscription period, specified in ISO 8601 format. For a list of acceptable billing periods, refer to the help center. The duration is immutable after the base plan is created.", +"type": "string" +}, +"gracePeriodDuration": { +"description": "Grace period of the subscription, specified in ISO 8601 format. Acceptable values must be in days and between P0D and the lesser of 30D and base plan billing period. If not specified, a default value will be used based on the billing period. The sum of gracePeriodDuration and accountHoldDuration must be between P30D and P60D days, inclusive.", +"type": "string" +}, +"legacyCompatible": { +"description": "Whether the renewing base plan is backward compatible. The backward compatible base plan is returned by the Google Play Billing Library deprecated method querySkuDetailsAsync(). Only one renewing base plan can be marked as legacy compatible for a given subscription.", +"type": "boolean" +}, +"legacyCompatibleSubscriptionOfferId": { +"description": "Subscription offer id which is legacy compatible. The backward compatible subscription offer is returned by the Google Play Billing Library deprecated method querySkuDetailsAsync(). Only one subscription offer can be marked as legacy compatible for a given renewing base plan. To have no Subscription offer as legacy compatible set this field as empty string.", +"type": "string" +}, +"prorationMode": { +"description": "The proration mode for the base plan determines what happens when a user switches to this plan from another base plan. If unspecified, defaults to CHARGE_ON_NEXT_BILLING_DATE.", +"enum": [ +"SUBSCRIPTION_PRORATION_MODE_UNSPECIFIED", +"SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE", +"SUBSCRIPTION_PRORATION_MODE_CHARGE_FULL_PRICE_IMMEDIATELY" +], +"enumDescriptions": [ +"Unspecified mode.", +"Users will be charged for their new base plan at the end of their current billing period.", +"Users will be charged for their new base plan immediately and in full. Any remaining period of their existing subscription will be used to extend the duration of the new billing plan." +], +"type": "string" +}, +"resubscribeState": { +"description": "Whether users should be able to resubscribe to this base plan in Google Play surfaces. Defaults to RESUBSCRIBE_STATE_ACTIVE if not specified.", +"enum": [ +"RESUBSCRIBE_STATE_UNSPECIFIED", +"RESUBSCRIBE_STATE_ACTIVE", +"RESUBSCRIBE_STATE_INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"Resubscribe is active.", +"Resubscribe is inactive." +], +"type": "string" +} +}, +"type": "object" +}, +"AutoRenewingPlan": { +"description": "Information related to an auto renewing plan.", +"id": "AutoRenewingPlan", +"properties": { +"autoRenewEnabled": { +"description": "If the subscription is currently set to auto-renew, e.g. the user has not canceled the subscription", +"type": "boolean" +}, +"installmentDetails": { +"$ref": "InstallmentPlan", +"description": "The installment plan commitment and state related info for the auto renewing plan." +}, +"priceChangeDetails": { +"$ref": "SubscriptionItemPriceChangeDetails", +"description": "The information of the last price change for the item since subscription signup." +}, +"recurringPrice": { +"$ref": "Money", +"description": "The current recurring price of the auto renewing plan." +} +}, +"type": "object" +}, +"BasePlan": { +"description": "A single base plan for a subscription.", +"id": "BasePlan", +"properties": { +"autoRenewingBasePlanType": { +"$ref": "AutoRenewingBasePlanType", +"description": "Set when the base plan automatically renews at a regular interval." +}, +"basePlanId": { +"description": "Required. Immutable. The unique identifier of this base plan. Must be unique within the subscription, and conform with RFC-1034. That is, this ID can only contain lower-case letters (a-z), numbers (0-9), and hyphens (-), and be at most 63 characters.", +"type": "string" +}, +"installmentsBasePlanType": { +"$ref": "InstallmentsBasePlanType", +"description": "Set for installments base plans where a user is committed to a specified number of payments." +}, +"offerTags": { +"description": "List of up to 20 custom tags specified for this base plan, and returned to the app through the billing library. Subscription offers for this base plan will also receive these offer tags in the billing library.", +"items": { +"$ref": "OfferTag" +}, +"type": "array" +}, +"otherRegionsConfig": { +"$ref": "OtherRegionsBasePlanConfig", +"description": "Pricing information for any new locations Play may launch in the future. If omitted, the BasePlan will not be automatically available any new locations Play may launch in the future." +}, +"prepaidBasePlanType": { +"$ref": "PrepaidBasePlanType", +"description": "Set when the base plan does not automatically renew at the end of the billing period." +}, +"regionalConfigs": { +"description": "Region-specific information for this base plan.", +"items": { +"$ref": "RegionalBasePlanConfig" +}, +"type": "array" +}, +"state": { +"description": "Output only. The state of the base plan, i.e. whether it's active. Draft and inactive base plans can be activated or deleted. Active base plans can be made inactive. Inactive base plans can be canceled. This field cannot be changed by updating the resource. Use the dedicated endpoints instead.", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The base plan is currently in a draft state, and hasn't been activated. It can be safely deleted at this point.", +"The base plan is active and available for new subscribers.", +"The base plan is inactive and only available for existing subscribers." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BatchGetSubscriptionOffersRequest": { +"description": "Request message for BatchGetSubscriptionOffers endpoint.", +"id": "BatchGetSubscriptionOffersRequest", +"properties": { +"requests": { +"description": "Required. A list of update requests of up to 100 elements. All requests must update different subscriptions.", +"items": { +"$ref": "GetSubscriptionOfferRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchGetSubscriptionOffersResponse": { +"description": "Response message for BatchGetSubscriptionOffers endpoint.", +"id": "BatchGetSubscriptionOffersResponse", +"properties": { +"subscriptionOffers": { +"items": { +"$ref": "SubscriptionOffer" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchGetSubscriptionsResponse": { +"description": "Response message for BatchGetSubscriptions endpoint.", +"id": "BatchGetSubscriptionsResponse", +"properties": { +"subscriptions": { +"description": "The list of requested subscriptions, in the same order as the request.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchMigrateBasePlanPricesRequest": { +"description": "Request message for BatchMigrateBasePlanPrices.", +"id": "BatchMigrateBasePlanPricesRequest", +"properties": { +"requests": { +"description": "Required. Up to 100 price migration requests. All requests must update different base plans.", +"items": { +"$ref": "MigrateBasePlanPricesRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchMigrateBasePlanPricesResponse": { +"description": "Response message for BatchMigrateBasePlanPrices.", +"id": "BatchMigrateBasePlanPricesResponse", +"properties": { +"responses": { +"description": "Contains one response per requested price migration, in the same order as the request.", +"items": { +"$ref": "MigrateBasePlanPricesResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateBasePlanStatesRequest": { +"description": "Request message for BatchUpdateBasePlanStates.", +"id": "BatchUpdateBasePlanStatesRequest", +"properties": { +"requests": { +"description": "Required. The update request list of up to 100 elements. All requests must update different base plans.", +"items": { +"$ref": "UpdateBasePlanStateRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateBasePlanStatesResponse": { +"description": "Response message for BatchUpdateBasePlanStates.", +"id": "BatchUpdateBasePlanStatesResponse", +"properties": { +"subscriptions": { +"description": "The list of updated subscriptions. This list will match the requests one to one, in the same order.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSubscriptionOfferStatesRequest": { +"description": "Request message for BatchUpdateSubscriptionOfferStates.", +"id": "BatchUpdateSubscriptionOfferStatesRequest", +"properties": { +"requests": { +"description": "Required. The update request list of up to 100 elements. All requests must update different offers.", +"items": { +"$ref": "UpdateSubscriptionOfferStateRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSubscriptionOfferStatesResponse": { +"description": "Response message for BatchUpdateSubscriptionOfferStates.", +"id": "BatchUpdateSubscriptionOfferStatesResponse", +"properties": { +"subscriptionOffers": { +"description": "The updated subscription offers list.", +"items": { +"$ref": "SubscriptionOffer" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSubscriptionOffersRequest": { +"description": "Request message for BatchUpdateSubscriptionOffers.", +"id": "BatchUpdateSubscriptionOffersRequest", +"properties": { +"requests": { +"description": "Required. A list of update requests of up to 100 elements. All requests must update different subscription offers.", +"items": { +"$ref": "UpdateSubscriptionOfferRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSubscriptionOffersResponse": { +"description": "Response message for BatchUpdateSubscriptionOffers.", +"id": "BatchUpdateSubscriptionOffersResponse", +"properties": { +"subscriptionOffers": { +"description": "The updated subscription offers list.", +"items": { +"$ref": "SubscriptionOffer" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSubscriptionsRequest": { +"description": "Request message for BatchUpdateSubscription.", +"id": "BatchUpdateSubscriptionsRequest", +"properties": { +"requests": { +"description": "Required. A list of update requests of up to 100 elements. All requests must update different subscriptions.", +"items": { +"$ref": "UpdateSubscriptionRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSubscriptionsResponse": { +"description": "Response message for BatchUpdateSubscription.", +"id": "BatchUpdateSubscriptionsResponse", +"properties": { +"subscriptions": { +"description": "The updated subscriptions list.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"Bundle": { +"description": "Information about an app bundle. The resource for BundlesService.", +"id": "Bundle", +"properties": { +"sha1": { +"description": "A sha1 hash of the upload payload, encoded as a hex string and matching the output of the sha1sum command.", +"type": "string" +}, +"sha256": { +"description": "A sha256 hash of the upload payload, encoded as a hex string and matching the output of the sha256sum command.", +"type": "string" +}, +"versionCode": { +"description": "The version code of the Android App Bundle, as specified in the Android App Bundle's base module APK manifest file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BundlesListResponse": { +"description": "Response listing all app bundles.", +"id": "BundlesListResponse", +"properties": { +"bundles": { +"description": "All app bundles.", +"items": { +"$ref": "Bundle" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this response (\"androidpublisher#bundlesListResponse\").", +"type": "string" +} +}, +"type": "object" +}, +"CancelAppRecoveryRequest": { +"description": "Request message for CancelAppRecovery.", +"id": "CancelAppRecoveryRequest", +"properties": {}, +"type": "object" +}, +"CancelAppRecoveryResponse": { +"description": "Response message for CancelAppRecovery.", +"id": "CancelAppRecoveryResponse", +"properties": {}, +"type": "object" +}, +"CancelSurveyResult": { +"description": "Result of the cancel survey when the subscription was canceled by the user.", +"id": "CancelSurveyResult", +"properties": { +"reason": { +"description": "The reason the user selected in the cancel survey.", +"enum": [ +"CANCEL_SURVEY_REASON_UNSPECIFIED", +"CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE", +"CANCEL_SURVEY_REASON_TECHNICAL_ISSUES", +"CANCEL_SURVEY_REASON_COST_RELATED", +"CANCEL_SURVEY_REASON_FOUND_BETTER_APP", +"CANCEL_SURVEY_REASON_OTHERS" +], +"enumDescriptions": [ +"Unspecified cancel survey reason.", +"Not enough usage of the subscription.", +"Technical issues while using the app.", +"Cost related issues.", +"The user found a better app.", +"Other reasons." +], +"type": "string" +}, +"reasonUserInput": { +"description": "Only set for CANCEL_SURVEY_REASON_OTHERS. This is the user's freeform response to the survey.", +"type": "string" +} +}, +"type": "object" +}, +"CanceledStateContext": { +"description": "Information specific to a subscription in the SUBSCRIPTION_STATE_CANCELED or SUBSCRIPTION_STATE_EXPIRED state.", +"id": "CanceledStateContext", +"properties": { +"developerInitiatedCancellation": { +"$ref": "DeveloperInitiatedCancellation", +"description": "Subscription was canceled by the developer." +}, +"replacementCancellation": { +"$ref": "ReplacementCancellation", +"description": "Subscription was replaced by a new subscription." +}, +"systemInitiatedCancellation": { +"$ref": "SystemInitiatedCancellation", +"description": "Subscription was canceled by the system, for example because of a billing problem." +}, +"userInitiatedCancellation": { +"$ref": "UserInitiatedCancellation", +"description": "Subscription was canceled by user." +} +}, +"type": "object" +}, +"Comment": { +"description": "An entry of conversation between user and developer.", +"id": "Comment", +"properties": { +"developerComment": { +"$ref": "DeveloperComment", +"description": "A comment from a developer." +}, +"userComment": { +"$ref": "UserComment", +"description": "A comment from a user." +} +}, +"type": "object" +}, +"ConvertRegionPricesRequest": { +"description": "Request message for ConvertRegionPrices.", +"id": "ConvertRegionPricesRequest", +"properties": { +"price": { +"$ref": "Money", +"description": "The intital price to convert other regions from. Tax exclusive." +} +}, +"type": "object" +}, +"ConvertRegionPricesResponse": { +"description": "Response message for ConvertRegionPrices.", +"id": "ConvertRegionPricesResponse", +"properties": { +"convertedOtherRegionsPrice": { +"$ref": "ConvertedOtherRegionsPrice", +"description": "Converted other regions prices in USD and EUR, to use for countries where Play doesn't support a country's local currency." +}, +"convertedRegionPrices": { +"additionalProperties": { +"$ref": "ConvertedRegionPrice" +}, +"description": "Map from region code to converted region price.", +"type": "object" +} +}, +"type": "object" +}, +"ConvertedOtherRegionsPrice": { +"description": "Converted other regions prices.", +"id": "ConvertedOtherRegionsPrice", +"properties": { +"eurPrice": { +"$ref": "Money", +"description": "Price in EUR to use for the \"Other regions\" location exclusive of taxes." +}, +"usdPrice": { +"$ref": "Money", +"description": "Price in USD to use for the \"Other regions\" location exclusive of taxes." +} +}, +"type": "object" +}, +"ConvertedRegionPrice": { +"description": "A converted region price.", +"id": "ConvertedRegionPrice", +"properties": { +"price": { +"$ref": "Money", +"description": "The converted price tax inclusive." +}, +"regionCode": { +"description": "The region code of the region.", +"type": "string" +}, +"taxAmount": { +"$ref": "Money", +"description": "The tax amount of the converted price." +} +}, +"type": "object" +}, +"CountryTargeting": { +"description": "Country targeting specification.", +"id": "CountryTargeting", +"properties": { +"countries": { +"description": "Countries to target, specified as two letter [CLDR codes](https://unicode.org/cldr/charts/latest/supplemental/territory_containment_un_m_49.html).", +"items": { +"type": "string" +}, +"type": "array" +}, +"includeRestOfWorld": { +"description": "Include \"rest of world\" as well as explicitly targeted countries.", +"type": "boolean" +} +}, +"type": "object" +}, +"CreateDraftAppRecoveryRequest": { +"description": "Request message for CreateDraftAppRecovery.", +"id": "CreateDraftAppRecoveryRequest", +"properties": { +"remoteInAppUpdate": { +"$ref": "RemoteInAppUpdate", +"description": "Action type is remote in-app update. As a consequence of this action, a downloadable recovery module is also created for testing purposes." +}, +"targeting": { +"$ref": "Targeting", +"description": "Specifies targeting criteria for the recovery action such as regions, android sdk versions, app versions etc." +} +}, +"type": "object" +}, +"DeactivateBasePlanRequest": { +"description": "Request message for DeactivateBasePlan.", +"id": "DeactivateBasePlanRequest", +"properties": { +"basePlanId": { +"description": "Required. The unique base plan ID of the base plan to deactivate.", +"type": "string" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the base plan to deactivate.", +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the base plan to deactivate.", +"type": "string" +} +}, +"type": "object" +}, +"DeactivateSubscriptionOfferRequest": { +"description": "Request message for DeactivateSubscriptionOffer.", +"id": "DeactivateSubscriptionOfferRequest", +"properties": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to deactivate.", +"type": "string" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to deactivate.", +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to deactivate.", +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to deactivate.", +"type": "string" +} +}, +"type": "object" +}, +"DeferredItemReplacement": { +"description": "Information related to deferred item replacement.", +"id": "DeferredItemReplacement", +"properties": { +"productId": { +"description": "The product_id going to replace the existing product_id.", +"type": "string" +} +}, +"type": "object" +}, +"DeobfuscationFile": { +"description": "Represents a deobfuscation file.", +"id": "DeobfuscationFile", +"properties": { +"symbolType": { +"description": "The type of the deobfuscation file.", +"enum": [ +"deobfuscationFileTypeUnspecified", +"proguard", +"nativeCode" +], +"enumDescriptions": [ +"Unspecified deobfuscation file type.", +"Proguard deobfuscation file type.", +"Native debugging symbols file type." +], +"type": "string" +} +}, +"type": "object" +}, +"DeobfuscationFilesUploadResponse": { +"description": "Responses for the upload.", +"id": "DeobfuscationFilesUploadResponse", +"properties": { +"deobfuscationFile": { +"$ref": "DeobfuscationFile", +"description": "The uploaded Deobfuscation File configuration." +} +}, +"type": "object" +}, +"DeployAppRecoveryRequest": { +"description": "Request message for DeployAppRecovery.", +"id": "DeployAppRecoveryRequest", +"properties": {}, +"type": "object" +}, +"DeployAppRecoveryResponse": { +"description": "Response message for DeployAppRecovery.", +"id": "DeployAppRecoveryResponse", +"properties": {}, +"type": "object" +}, +"DeveloperComment": { +"description": "Developer entry from conversation between user and developer.", +"id": "DeveloperComment", +"properties": { +"lastModified": { +"$ref": "Timestamp", +"description": "The last time at which this comment was updated." +}, +"text": { +"description": "The content of the comment, i.e. reply body.", +"type": "string" +} +}, +"type": "object" +}, +"DeveloperInitiatedCancellation": { +"description": "Information specific to cancellations initiated by developers.", +"id": "DeveloperInitiatedCancellation", +"properties": {}, +"type": "object" +}, +"DeviceFeature": { +"description": "Represents a device feature.", +"id": "DeviceFeature", +"properties": { +"featureName": { +"description": "Name of the feature.", +"type": "string" +}, +"featureVersion": { +"description": "The feature version specified by android:glEsVersion or android:version in in the AndroidManifest.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeviceFeatureTargeting": { +"description": "Targeting for a device feature.", +"id": "DeviceFeatureTargeting", +"properties": { +"requiredFeature": { +"$ref": "DeviceFeature", +"description": "Feature of the device." +} +}, +"type": "object" +}, +"DeviceGroup": { +"description": "A group of devices. A group is defined by a set of device selectors. A device belongs to the group if it matches any selector (logical OR).", +"id": "DeviceGroup", +"properties": { +"deviceSelectors": { +"description": "Device selectors for this group. A device matching any of the selectors is included in this group.", +"items": { +"$ref": "DeviceSelector" +}, +"type": "array" +}, +"name": { +"description": "The name of the group.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceId": { +"description": "Identifier of a device.", +"id": "DeviceId", +"properties": { +"buildBrand": { +"description": "Value of Build.BRAND.", +"type": "string" +}, +"buildDevice": { +"description": "Value of Build.DEVICE.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceMetadata": { +"description": "Characteristics of the user's device.", +"id": "DeviceMetadata", +"properties": { +"cpuMake": { +"description": "Device CPU make, e.g. \"Qualcomm\"", +"type": "string" +}, +"cpuModel": { +"description": "Device CPU model, e.g. \"MSM8974\"", +"type": "string" +}, +"deviceClass": { +"description": "Device class (e.g. tablet)", +"type": "string" +}, +"glEsVersion": { +"description": "OpenGL version", +"format": "int32", +"type": "integer" +}, +"manufacturer": { +"description": "Device manufacturer (e.g. Motorola)", +"type": "string" +}, +"nativePlatform": { +"description": "Comma separated list of native platforms (e.g. \"arm\", \"arm7\")", +"type": "string" +}, +"productName": { +"description": "Device model name (e.g. Droid)", +"type": "string" +}, +"ramMb": { +"description": "Device RAM in Megabytes, e.g. \"2048\"", +"format": "int32", +"type": "integer" +}, +"screenDensityDpi": { +"description": "Screen density in DPI", +"format": "int32", +"type": "integer" +}, +"screenHeightPx": { +"description": "Screen height in pixels", +"format": "int32", +"type": "integer" +}, +"screenWidthPx": { +"description": "Screen width in pixels", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeviceRam": { +"description": "Conditions about a device's RAM capabilities.", +"id": "DeviceRam", +"properties": { +"maxBytes": { +"description": "Maximum RAM in bytes (bound excluded).", +"format": "int64", +"type": "string" +}, +"minBytes": { +"description": "Minimum RAM in bytes (bound included).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DeviceSelector": { +"description": "Selector for a device group. A selector consists of a set of conditions on the device that should all match (logical AND) to determine a device group eligibility. For instance, if a selector specifies RAM conditions, device model inclusion and device model exclusion, a device is considered to match if: device matches RAM conditions AND device matches one of the included device models AND device doesn't match excluded device models", +"id": "DeviceSelector", +"properties": { +"deviceRam": { +"$ref": "DeviceRam", +"description": "Conditions on the device's RAM." +}, +"excludedDeviceIds": { +"description": "Device models excluded by this selector, even if they match all other conditions.", +"items": { +"$ref": "DeviceId" +}, +"type": "array" +}, +"forbiddenSystemFeatures": { +"description": "A device that has any of these system features is excluded by this selector, even if it matches all other conditions.", +"items": { +"$ref": "SystemFeature" +}, +"type": "array" +}, +"includedDeviceIds": { +"description": "Device models included by this selector.", +"items": { +"$ref": "DeviceId" +}, +"type": "array" +}, +"requiredSystemFeatures": { +"description": "A device needs to have all these system features to be included by the selector.", +"items": { +"$ref": "SystemFeature" +}, +"type": "array" +}, +"systemOnChips": { +"description": "Optional. The SoCs included by this selector. Only works for Android S+ devices.", +"items": { +"$ref": "SystemOnChip" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeviceSpec": { +"description": "The device spec used to generate a system APK.", +"id": "DeviceSpec", +"properties": { +"screenDensity": { +"description": "Screen dpi.", +"format": "uint32", +"type": "integer" +}, +"supportedAbis": { +"description": "Supported ABI architectures in the order of preference. The values should be the string as reported by the platform, e.g. \"armeabi-v7a\", \"x86_64\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"supportedLocales": { +"description": "All installed locales represented as BCP-47 strings, e.g. \"en-US\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeviceTier": { +"description": "A single device tier. Devices matching any of the device groups in device_group_names are considered to match the tier.", +"id": "DeviceTier", +"properties": { +"deviceGroupNames": { +"description": "Groups of devices included in this tier. These groups must be defined explicitly under device_groups in this configuration.", +"items": { +"type": "string" +}, +"type": "array" +}, +"level": { +"description": "The priority level of the tier. Tiers are evaluated in descending order of level: the highest level tier has the highest priority. The highest tier matching a given device is selected for that device. You should use a contiguous range of levels for your tiers in a tier set; tier levels in a tier set must be unique. For instance, if your tier set has 4 tiers (including the global fallback), you should define tiers 1, 2 and 3 in this configuration. Note: tier 0 is implicitly defined as a global fallback and selected for devices that don't match any of the tiers explicitly defined here. You mustn't define level 0 explicitly in this configuration.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeviceTierConfig": { +"description": "Configuration describing device targeting criteria for the content of an app.", +"id": "DeviceTierConfig", +"properties": { +"deviceGroups": { +"description": "Definition of device groups for the app.", +"items": { +"$ref": "DeviceGroup" +}, +"type": "array" +}, +"deviceTierConfigId": { +"description": "Output only. The device tier config ID.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"deviceTierSet": { +"$ref": "DeviceTierSet", +"description": "Definition of the set of device tiers for the app." +}, +"userCountrySets": { +"description": "Definition of user country sets for the app.", +"items": { +"$ref": "UserCountrySet" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeviceTierSet": { +"description": "A set of device tiers. A tier set determines what variation of app content gets served to a specific device, for device-targeted content. You should assign a priority level to each tier, which determines the ordering by which they are evaluated by Play. See the documentation of DeviceTier.level for more details.", +"id": "DeviceTierSet", +"properties": { +"deviceTiers": { +"description": "Device tiers belonging to the set.", +"items": { +"$ref": "DeviceTier" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExpansionFile": { +"description": "An expansion file. The resource for ExpansionFilesService.", +"id": "ExpansionFile", +"properties": { +"fileSize": { +"description": "If set, this field indicates that this APK has an expansion file uploaded to it: this APK does not reference another APK's expansion file. The field's value is the size of the uploaded expansion file in bytes.", +"format": "int64", +"type": "string" +}, +"referencesVersion": { +"description": "If set, this APK's expansion file references another APK's expansion file. The file_size field will not be set.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ExpansionFilesUploadResponse": { +"description": "Response for uploading an expansion file.", +"id": "ExpansionFilesUploadResponse", +"properties": { +"expansionFile": { +"$ref": "ExpansionFile", +"description": "The uploaded expansion file configuration." +} +}, +"type": "object" +}, +"ExternalAccountIdentifiers": { +"description": "User account identifier in the third-party service.", +"id": "ExternalAccountIdentifiers", +"properties": { +"externalAccountId": { +"description": "User account identifier in the third-party service. Only present if account linking happened as part of the subscription purchase flow.", +"type": "string" +}, +"obfuscatedExternalAccountId": { +"description": "An obfuscated version of the id that is uniquely associated with the user's account in your app. Present for the following purchases: * If account linking happened as part of the subscription purchase flow. * It was specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid when the purchase was made.", +"type": "string" +}, +"obfuscatedExternalProfileId": { +"description": "An obfuscated version of the id that is uniquely associated with the user's profile in your app. Only present if specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid when the purchase was made.", +"type": "string" +} +}, +"type": "object" +}, +"ExternalSubscription": { +"description": "Details of an external subscription.", +"id": "ExternalSubscription", +"properties": { +"subscriptionType": { +"description": "Required. The type of the external subscription.", +"enum": [ +"SUBSCRIPTION_TYPE_UNSPECIFIED", +"RECURRING", +"PREPAID" +], +"enumDescriptions": [ +"Unspecified, do not use.", +"This is a recurring subscription where the user is charged every billing cycle.", +"This is a prepaid subscription where the user pays up front." +], +"type": "string" +} +}, +"type": "object" +}, +"ExternalTransaction": { +"description": "The details of an external transaction.", +"id": "ExternalTransaction", +"properties": { +"createTime": { +"description": "Output only. The time when this transaction was created. This is the time when Google was notified of the transaction.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"currentPreTaxAmount": { +"$ref": "Price", +"description": "Output only. The current transaction amount before tax. This represents the current pre-tax amount including any refunds that may have been applied to this transaction.", +"readOnly": true +}, +"currentTaxAmount": { +"$ref": "Price", +"description": "Output only. The current tax amount. This represents the current tax amount including any refunds that may have been applied to this transaction.", +"readOnly": true +}, +"externalTransactionId": { +"description": "Output only. The id of this transaction. All transaction ids under the same package name must be unique. Set when creating the external transaction.", +"readOnly": true, +"type": "string" +}, +"oneTimeTransaction": { +"$ref": "OneTimeExternalTransaction", +"description": "This is a one-time transaction and not part of a subscription." +}, +"originalPreTaxAmount": { +"$ref": "Price", +"description": "Required. The original transaction amount before taxes. This represents the pre-tax amount originally notified to Google before any refunds were applied." +}, +"originalTaxAmount": { +"$ref": "Price", +"description": "Required. The original tax amount. This represents the tax amount originally notified to Google before any refunds were applied." +}, +"packageName": { +"description": "Output only. The resource name of the external transaction. The package name of the application the inapp products were sold (for example, 'com.some.app').", +"readOnly": true, +"type": "string" +}, +"recurringTransaction": { +"$ref": "RecurringExternalTransaction", +"description": "This transaction is part of a recurring series of transactions." +}, +"testPurchase": { +"$ref": "ExternalTransactionTestPurchase", +"description": "Output only. If set, this transaction was a test purchase. Google will not charge for a test transaction.", +"readOnly": true +}, +"transactionProgramCode": { +"description": "Optional. The transaction program code, used to help determine service fee for eligible apps participating in partner programs. Developers participating in the Play Media Experience Program (https://play.google.com/console/about/programs/mediaprogram/) must provide the program code when reporting alternative billing transactions. If you are an eligible developer, please contact your BDM for more information on how to set this field. Note: this field can not be used for external offers transactions.", +"format": "int32", +"type": "integer" +}, +"transactionState": { +"description": "Output only. The current state of the transaction.", +"enum": [ +"TRANSACTION_STATE_UNSPECIFIED", +"TRANSACTION_REPORTED", +"TRANSACTION_CANCELED" +], +"enumDescriptions": [ +"Unspecified transaction state. Not used.", +"The transaction has been successfully reported to Google.", +"The transaction has been fully refunded." +], +"readOnly": true, +"type": "string" +}, +"transactionTime": { +"description": "Required. The time when the transaction was completed.", +"format": "google-datetime", +"type": "string" +}, +"userTaxAddress": { +"$ref": "ExternalTransactionAddress", +"description": "Required. User address for tax computation." +} +}, +"type": "object" +}, +"ExternalTransactionAddress": { +"description": "User's address for the external transaction.", +"id": "ExternalTransactionAddress", +"properties": { +"administrativeArea": { +"description": "Optional. Top-level administrative subdivision of the country/region. Only required for transactions in India. Valid values are \"ANDAMAN AND NICOBAR ISLANDS\", \"ANDHRA PRADESH\", \"ARUNACHAL PRADESH\", \"ASSAM\", \"BIHAR\", \"CHANDIGARH\", \"CHHATTISGARH\", \"DADRA AND NAGAR HAVELI\", \"DADRA AND NAGAR HAVELI AND DAMAN AND DIU\", \"DAMAN AND DIU\", \"DELHI\", \"GOA\", \"GUJARAT\", \"HARYANA\", \"HIMACHAL PRADESH\", \"JAMMU AND KASHMIR\", \"JHARKHAND\", \"KARNATAKA\", \"KERALA\", \"LADAKH\", \"LAKSHADWEEP\", \"MADHYA PRADESH\", \"MAHARASHTRA\", \"MANIPUR\", \"MEGHALAYA\", \"MIZORAM\", \"NAGALAND\", \"ODISHA\", \"PUDUCHERRY\", \"PUNJAB\", \"RAJASTHAN\", \"SIKKIM\", \"TAMIL NADU\", \"TELANGANA\", \"TRIPURA\", \"UTTAR PRADESH\", \"UTTARAKHAND\", and \"WEST BENGAL\".", +"type": "string" +}, +"regionCode": { +"description": "Required. Two letter region code based on ISO-3166-1 Alpha-2 (UN region codes).", +"type": "string" +} +}, +"type": "object" +}, +"ExternalTransactionTestPurchase": { +"description": "Represents a transaction performed using a test account. These transactions will not be charged by Google.", +"id": "ExternalTransactionTestPurchase", +"properties": {}, +"type": "object" +}, +"ExternallyHostedApk": { +"description": "Defines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.", +"id": "ExternallyHostedApk", +"properties": { +"applicationLabel": { +"description": "The application label.", +"type": "string" +}, +"certificateBase64s": { +"description": "A certificate (or array of certificates if a certificate-chain is used) used to sign this APK, represented as a base64 encoded byte array.", +"items": { +"type": "string" +}, +"type": "array" +}, +"externallyHostedUrl": { +"description": "The URL at which the APK is hosted. This must be an https URL.", +"type": "string" +}, +"fileSha1Base64": { +"description": "The sha1 checksum of this APK, represented as a base64 encoded byte array.", +"type": "string" +}, +"fileSha256Base64": { +"description": "The sha256 checksum of this APK, represented as a base64 encoded byte array.", +"type": "string" +}, +"fileSize": { +"description": "The file size in bytes of this APK.", +"format": "int64", +"type": "string" +}, +"iconBase64": { +"description": "The icon image from the APK, as a base64 encoded byte array.", +"type": "string" +}, +"maximumSdk": { +"description": "The maximum SDK supported by this APK (optional).", +"format": "int32", +"type": "integer" +}, +"minimumSdk": { +"description": "The minimum SDK targeted by this APK.", +"format": "int32", +"type": "integer" +}, +"nativeCodes": { +"description": "The native code environments supported by this APK (optional).", +"items": { +"type": "string" +}, +"type": "array" +}, +"packageName": { +"description": "The package name.", +"type": "string" +}, +"usesFeatures": { +"description": "The features required by this APK (optional).", +"items": { +"type": "string" +}, +"type": "array" +}, +"usesPermissions": { +"description": "The permissions requested by this APK.", +"items": { +"$ref": "UsesPermission" +}, +"type": "array" +}, +"versionCode": { +"description": "The version code of this APK.", +"format": "int32", +"type": "integer" +}, +"versionName": { +"description": "The version name of this APK.", +"type": "string" +} +}, +"type": "object" +}, +"FullRefund": { +"description": "A full refund of the remaining amount of a transaction.", +"id": "FullRefund", +"properties": {}, +"type": "object" +}, +"GeneratedApksListResponse": { +"description": "Response to list generated APKs.", +"id": "GeneratedApksListResponse", +"properties": { +"generatedApks": { +"description": "All generated APKs, grouped by the APK signing key.", +"items": { +"$ref": "GeneratedApksPerSigningKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"GeneratedApksPerSigningKey": { +"description": "Download metadata for split, standalone and universal APKs, as well as asset pack slices, signed with a given key.", +"id": "GeneratedApksPerSigningKey", +"properties": { +"certificateSha256Hash": { +"description": "SHA256 hash of the APK signing public key certificate.", +"type": "string" +}, +"generatedAssetPackSlices": { +"description": "List of asset pack slices which will be served for this app bundle, signed with a key corresponding to certificate_sha256_hash.", +"items": { +"$ref": "GeneratedAssetPackSlice" +}, +"type": "array" +}, +"generatedRecoveryModules": { +"description": "Generated recovery apks for recovery actions signed with a key corresponding to certificate_sha256_hash. This includes all generated recovery APKs, also those in draft or cancelled state. This field is not set if no recovery actions were created for this signing key.", +"items": { +"$ref": "GeneratedRecoveryApk" +}, +"type": "array" +}, +"generatedSplitApks": { +"description": "List of generated split APKs, signed with a key corresponding to certificate_sha256_hash.", +"items": { +"$ref": "GeneratedSplitApk" +}, +"type": "array" +}, +"generatedStandaloneApks": { +"description": "List of generated standalone APKs, signed with a key corresponding to certificate_sha256_hash.", +"items": { +"$ref": "GeneratedStandaloneApk" +}, +"type": "array" +}, +"generatedUniversalApk": { +"$ref": "GeneratedUniversalApk", +"description": "Generated universal APK, signed with a key corresponding to certificate_sha256_hash. This field is not set if no universal APK was generated for this signing key." +}, +"targetingInfo": { +"$ref": "TargetingInfo", +"description": "Contains targeting information about the generated apks." +} +}, +"type": "object" +}, +"GeneratedAssetPackSlice": { +"description": "Download metadata for an asset pack slice.", +"id": "GeneratedAssetPackSlice", +"properties": { +"downloadId": { +"description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", +"type": "string" +}, +"moduleName": { +"description": "Name of the module that this asset slice belongs to.", +"type": "string" +}, +"sliceId": { +"description": "Asset slice ID.", +"type": "string" +}, +"version": { +"description": "Asset module version.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GeneratedRecoveryApk": { +"description": "Download metadata for an app recovery module.", +"id": "GeneratedRecoveryApk", +"properties": { +"downloadId": { +"description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", +"type": "string" +}, +"moduleName": { +"description": "Name of the module which recovery apk belongs to.", +"type": "string" +}, +"recoveryId": { +"description": "ID of the recovery action.", +"format": "int64", +"type": "string" +}, +"recoveryStatus": { +"description": "The status of the recovery action corresponding to the recovery apk.", +"enum": [ +"RECOVERY_STATUS_UNSPECIFIED", +"RECOVERY_STATUS_ACTIVE", +"RECOVERY_STATUS_CANCELED", +"RECOVERY_STATUS_DRAFT", +"RECOVERY_STATUS_GENERATION_IN_PROGRESS", +"RECOVERY_STATUS_GENERATION_FAILED" +], +"enumDescriptions": [ +"RecoveryStatus is unspecified.", +"The app recovery action has not been canceled since it has been created.", +"The recovery action has been canceled. The action cannot be resumed.", +"The recovery action is in the draft state and has not yet been deployed to users.", +"The recovery action is generating recovery apks.", +"The app recovery action generation has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GeneratedSplitApk": { +"description": "Download metadata for a split APK.", +"id": "GeneratedSplitApk", +"properties": { +"downloadId": { +"description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", +"type": "string" +}, +"moduleName": { +"description": "Name of the module that this APK belongs to.", +"type": "string" +}, +"splitId": { +"description": "Split ID. Empty for the main split of the base module.", +"type": "string" +}, +"variantId": { +"description": "ID of the generated variant.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GeneratedStandaloneApk": { +"description": "Download metadata for a standalone APK.", +"id": "GeneratedStandaloneApk", +"properties": { +"downloadId": { +"description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", +"type": "string" +}, +"variantId": { +"description": "ID of the generated variant.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GeneratedUniversalApk": { +"description": "Download metadata for a universal APK.", +"id": "GeneratedUniversalApk", +"properties": { +"downloadId": { +"description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", +"type": "string" +} +}, +"type": "object" +}, +"GetSubscriptionOfferRequest": { +"description": "Request message for GetSubscriptionOffer.", +"id": "GetSubscriptionOfferRequest", +"properties": { +"basePlanId": { +"description": "Required. The parent base plan (ID) of the offer to get.", +"type": "string" +}, +"offerId": { +"description": "Required. The unique offer ID of the offer to get.", +"type": "string" +}, +"packageName": { +"description": "Required. The parent app (package name) of the offer to get.", +"type": "string" +}, +"productId": { +"description": "Required. The parent subscription (ID) of the offer to get.", +"type": "string" +} +}, +"type": "object" +}, +"Grant": { +"description": "An access grant resource.", +"id": "Grant", +"properties": { +"appLevelPermissions": { +"description": "The permissions granted to the user for this app.", +"items": { +"enum": [ +"APP_LEVEL_PERMISSION_UNSPECIFIED", +"CAN_ACCESS_APP", +"CAN_VIEW_FINANCIAL_DATA", +"CAN_MANAGE_PERMISSIONS", +"CAN_REPLY_TO_REVIEWS", +"CAN_MANAGE_PUBLIC_APKS", +"CAN_MANAGE_TRACK_APKS", +"CAN_MANAGE_TRACK_USERS", +"CAN_MANAGE_PUBLIC_LISTING", +"CAN_MANAGE_DRAFT_APPS", +"CAN_MANAGE_ORDERS", +"CAN_MANAGE_APP_CONTENT", +"CAN_VIEW_NON_FINANCIAL_DATA", +"CAN_VIEW_APP_QUALITY", +"CAN_MANAGE_DEEPLINKS" +], +"enumDeprecated": [ +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unknown or unspecified permission.", +"View app information (read-only). Deprecated: Try defining a more granular capability. Otherwise, check AppLevelPermission.CAN_VIEW_NON_FINANCIAL_DATA.", +"View financial data.", +"Admin (all permissions).", +"Reply to reviews.", +"Release to production, exclude devices, and use app signing by Google Play.", +"Release to testing tracks.", +"Manage testing tracks and edit tester lists.", +"Manage store presence.", +"Edit and delete draft apps.", +"Manage orders and subscriptions.", +"Manage policy related pages.", +"View app information (read-only).", +"View app quality data such as Vitals, Crashes etc.", +"Manage the deep links setup of an app." +], +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Required. Resource name for this grant, following the pattern \"developers/{developer}/users/{email}/grants/{package_name}\". If this grant is for a draft app, the app ID will be used in this resource name instead of the package name.", +"type": "string" +}, +"packageName": { +"description": "Immutable. The package name of the app. This will be empty for draft apps.", +"type": "string" +} +}, +"type": "object" +}, +"Image": { +"description": "An uploaded image. The resource for ImagesService.", +"id": "Image", +"properties": { +"id": { +"description": "A unique id representing this image.", +"type": "string" +}, +"sha1": { +"description": "A sha1 hash of the image.", +"type": "string" +}, +"sha256": { +"description": "A sha256 hash of the image.", +"type": "string" +}, +"url": { +"description": "A URL that will serve a preview of the image.", +"type": "string" +} +}, +"type": "object" +}, +"ImagesDeleteAllResponse": { +"description": "Response for deleting all images.", +"id": "ImagesDeleteAllResponse", +"properties": { +"deleted": { +"description": "The deleted images.", +"items": { +"$ref": "Image" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImagesListResponse": { +"description": "Response listing all images.", +"id": "ImagesListResponse", +"properties": { +"images": { +"description": "All listed Images.", +"items": { +"$ref": "Image" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImagesUploadResponse": { +"description": "Response for uploading an image.", +"id": "ImagesUploadResponse", +"properties": { +"image": { +"$ref": "Image", +"description": "The uploaded image." +} +}, +"type": "object" +}, +"InAppProduct": { +"description": "An in-app product. The resource for InappproductsService.", +"id": "InAppProduct", +"properties": { +"defaultLanguage": { +"description": "Default language of the localized data, as defined by BCP-47. e.g. \"en-US\".", +"type": "string" +}, +"defaultPrice": { +"$ref": "Price", +"description": "Default price. Cannot be zero, as in-app products are never free. Always in the developer's Checkout merchant currency." +}, +"gracePeriod": { +"description": "Grace period of the subscription, specified in ISO 8601 format. Allows developers to give their subscribers a grace period when the payment for the new recurrence period is declined. Acceptable values are P0D (zero days), P3D (three days), P7D (seven days), P14D (14 days), and P30D (30 days).", +"type": "string" +}, +"listings": { +"additionalProperties": { +"$ref": "InAppProductListing" +}, +"description": "List of localized title and description data. Map key is the language of the localized data, as defined by BCP-47, e.g. \"en-US\".", +"type": "object" +}, +"managedProductTaxesAndComplianceSettings": { +"$ref": "ManagedProductTaxAndComplianceSettings", +"description": "Details about taxes and legal compliance. Only applicable to managed products." +}, +"packageName": { +"description": "Package name of the parent app.", +"type": "string" +}, +"prices": { +"additionalProperties": { +"$ref": "Price" +}, +"description": "Prices per buyer region. None of these can be zero, as in-app products are never free. Map key is region code, as defined by ISO 3166-2.", +"type": "object" +}, +"purchaseType": { +"description": "The type of the product, e.g. a recurring subscription.", +"enum": [ +"purchaseTypeUnspecified", +"managedUser", +"subscription" +], +"enumDescriptions": [ +"Unspecified purchase type.", +"The default product type - one time purchase.", +"In-app product with a recurring period." +], +"type": "string" +}, +"sku": { +"description": "Stock-keeping-unit (SKU) of the product, unique within an app.", +"type": "string" +}, +"status": { +"description": "The status of the product, e.g. whether it's active.", +"enum": [ +"statusUnspecified", +"active", +"inactive" +], +"enumDescriptions": [ +"Unspecified status.", +"The product is published and active in the store.", +"The product is not published and therefore inactive in the store." +], +"type": "string" +}, +"subscriptionPeriod": { +"description": "Subscription period, specified in ISO 8601 format. Acceptable values are P1W (one week), P1M (one month), P3M (three months), P6M (six months), and P1Y (one year).", +"type": "string" +}, +"subscriptionTaxesAndComplianceSettings": { +"$ref": "SubscriptionTaxAndComplianceSettings", +"description": "Details about taxes and legal compliance. Only applicable to subscription products." +}, +"trialPeriod": { +"description": "Trial period, specified in ISO 8601 format. Acceptable values are anything between P7D (seven days) and P999D (999 days).", +"type": "string" +} +}, +"type": "object" +}, +"InAppProductListing": { +"description": "Store listing of a single in-app product.", +"id": "InAppProductListing", +"properties": { +"benefits": { +"description": "Localized entitlement benefits for a subscription.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "Description for the store listing.", +"type": "string" +}, +"title": { +"description": "Title for the store listing.", +"type": "string" +} +}, +"type": "object" +}, +"InappproductsBatchDeleteRequest": { +"description": "Request to delete multiple in-app products.", +"id": "InappproductsBatchDeleteRequest", +"properties": { +"requests": { +"description": "Individual delete requests. At least one request is required. Can contain up to 100 requests. All requests must correspond to different in-app products.", +"items": { +"$ref": "InappproductsDeleteRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"InappproductsBatchGetResponse": { +"description": "Response message for BatchGetSubscriptions endpoint.", +"id": "InappproductsBatchGetResponse", +"properties": { +"inappproduct": { +"description": "The list of requested in-app products, in the same order as the request.", +"items": { +"$ref": "InAppProduct" +}, +"type": "array" +} +}, +"type": "object" +}, +"InappproductsBatchUpdateRequest": { +"description": "Request to update or insert one or more in-app products.", +"id": "InappproductsBatchUpdateRequest", +"properties": { +"requests": { +"description": "Required. Individual update requests. At least one request is required. Can contain up to 100 requests. All requests must correspond to different in-app products.", +"items": { +"$ref": "InappproductsUpdateRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"InappproductsBatchUpdateResponse": { +"description": "Response for a batch in-app product update.", +"id": "InappproductsBatchUpdateResponse", +"properties": { +"inappproducts": { +"description": "The updated or inserted in-app products.", +"items": { +"$ref": "InAppProduct" +}, +"type": "array" +} +}, +"type": "object" +}, +"InappproductsDeleteRequest": { +"description": "Request to delete an in-app product.", +"id": "InappproductsDeleteRequest", +"properties": { +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app product.", +"type": "string" +} +}, +"type": "object" +}, +"InappproductsListResponse": { +"description": "Response listing all in-app products.", +"id": "InappproductsListResponse", +"properties": { +"inappproduct": { +"description": "All in-app products.", +"items": { +"$ref": "InAppProduct" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this response (\"androidpublisher#inappproductsListResponse\").", +"type": "string" +}, +"pageInfo": { +"$ref": "PageInfo", +"deprecated": true, +"description": "Deprecated and unset." +}, +"tokenPagination": { +"$ref": "TokenPagination", +"description": "Pagination token, to handle a number of products that is over one page." +} +}, +"type": "object" +}, +"InappproductsUpdateRequest": { +"description": "Request to update an in-app product.", +"id": "InappproductsUpdateRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the in-app product with the given package_name and sku doesn't exist, the in-app product will be created.", +"type": "boolean" +}, +"autoConvertMissingPrices": { +"description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", +"type": "boolean" +}, +"inappproduct": { +"$ref": "InAppProduct", +"description": "The new in-app product." +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"packageName": { +"description": "Package name of the app.", +"type": "string" +}, +"sku": { +"description": "Unique identifier for the in-app product.", +"type": "string" +} +}, +"type": "object" +}, +"InstallmentPlan": { +"description": "Information to a installment plan.", +"id": "InstallmentPlan", +"properties": { +"initialCommittedPaymentsCount": { +"description": "Total number of payments the user is initially committed for.", +"format": "int32", +"type": "integer" +}, +"pendingCancellation": { +"$ref": "PendingCancellation", +"description": "If present, this installment plan is pending to be canceled. The cancellation will happen only after the user finished all committed payments." +}, +"remainingCommittedPaymentsCount": { +"description": "Total number of committed payments remaining to be paid for in this renewal cycle.", +"format": "int32", +"type": "integer" +}, +"subsequentCommittedPaymentsCount": { +"description": "Total number of payments the user will be committed for after each commitment period. Empty means the installment plan will fall back to a normal auto-renew subscription after initial commitment.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"InstallmentsBasePlanType": { +"description": "Represents an installments base plan where a user commits to a specified number of payments.", +"id": "InstallmentsBasePlanType", +"properties": { +"accountHoldDuration": { +"description": "Optional. Account hold period of the subscription, specified in ISO 8601 format. Acceptable values must be in days and between P0D and P60D. If not specified, the default value is P30D. The sum of gracePeriodDuration and accountHoldDuration must be between P30D and P60D days, inclusive.", +"type": "string" +}, +"billingPeriodDuration": { +"description": "Required. Immutable. Subscription period, specified in ISO 8601 format. For a list of acceptable billing periods, refer to the help center. The duration is immutable after the base plan is created.", +"type": "string" +}, +"committedPaymentsCount": { +"description": "Required. Immutable. The number of payments the user is committed to. It is immutable after the base plan is created.", +"format": "int32", +"type": "integer" +}, +"gracePeriodDuration": { +"description": "Grace period of the subscription, specified in ISO 8601 format. Acceptable values must be in days and between P0D and the lesser of 30D and base plan billing period. If not specified, a default value will be used based on the billing period. The sum of gracePeriodDuration and accountHoldDuration must be between P30D and P60D days, inclusive.", +"type": "string" +}, +"prorationMode": { +"description": "The proration mode for the base plan determines what happens when a user switches to this plan from another base plan. If unspecified, defaults to CHARGE_ON_NEXT_BILLING_DATE.", +"enum": [ +"SUBSCRIPTION_PRORATION_MODE_UNSPECIFIED", +"SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE", +"SUBSCRIPTION_PRORATION_MODE_CHARGE_FULL_PRICE_IMMEDIATELY" +], +"enumDescriptions": [ +"Unspecified mode.", +"Users will be charged for their new base plan at the end of their current billing period.", +"Users will be charged for their new base plan immediately and in full. Any remaining period of their existing subscription will be used to extend the duration of the new billing plan." +], +"type": "string" +}, +"renewalType": { +"description": "Required. Immutable. Installments base plan renewal type. Determines the behavior at the end of the initial commitment. The renewal type is immutable after the base plan is created.", +"enum": [ +"RENEWAL_TYPE_UNSPECIFIED", +"RENEWAL_TYPE_RENEWS_WITHOUT_COMMITMENT", +"RENEWAL_TYPE_RENEWS_WITH_COMMITMENT" +], +"enumDescriptions": [ +"Unspecified state.", +"Renews periodically for the billing period duration without commitment.", +"Renews with the commitment of the same duration as the initial one." +], +"type": "string" +}, +"resubscribeState": { +"description": "Whether users should be able to resubscribe to this base plan in Google Play surfaces. Defaults to RESUBSCRIBE_STATE_ACTIVE if not specified.", +"enum": [ +"RESUBSCRIBE_STATE_UNSPECIFIED", +"RESUBSCRIBE_STATE_ACTIVE", +"RESUBSCRIBE_STATE_INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"Resubscribe is active.", +"Resubscribe is inactive." +], +"type": "string" +} +}, +"type": "object" +}, +"InternalAppSharingArtifact": { +"description": "An artifact resource which gets created when uploading an APK or Android App Bundle through internal app sharing.", +"id": "InternalAppSharingArtifact", +"properties": { +"certificateFingerprint": { +"description": "The sha256 fingerprint of the certificate used to sign the generated artifact.", +"type": "string" +}, +"downloadUrl": { +"description": "The download URL generated for the uploaded artifact. Users that are authorized to download can follow the link to the Play Store app to install it.", +"type": "string" +}, +"sha256": { +"description": "The sha256 hash of the artifact represented as a lowercase hexadecimal number, matching the output of the sha256sum command.", +"type": "string" +} +}, +"type": "object" +}, +"IntroductoryPriceInfo": { +"description": "Contains the introductory price information for a subscription.", +"id": "IntroductoryPriceInfo", +"properties": { +"introductoryPriceAmountMicros": { +"description": "Introductory price of the subscription, not including tax. The currency is the same as price_currency_code. Price is expressed in micro-units, where 1,000,000 micro-units represents one unit of the currency. For example, if the subscription price is \u20ac1.99, price_amount_micros is 1990000.", +"format": "int64", +"type": "string" +}, +"introductoryPriceCurrencyCode": { +"description": "ISO 4217 currency code for the introductory subscription price. For example, if the price is specified in British pounds sterling, price_currency_code is \"GBP\".", +"type": "string" +}, +"introductoryPriceCycles": { +"description": "The number of billing period to offer introductory pricing.", +"format": "int32", +"type": "integer" +}, +"introductoryPricePeriod": { +"description": "Introductory price period, specified in ISO 8601 format. Common values are (but not limited to) \"P1W\" (one week), \"P1M\" (one month), \"P3M\" (three months), \"P6M\" (six months), and \"P1Y\" (one year).", +"type": "string" +} +}, +"type": "object" +}, +"LanguageTargeting": { +"description": "Targeting based on language.", +"id": "LanguageTargeting", +"properties": { +"alternatives": { +"description": "Alternative languages.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "ISO-639: 2 or 3 letter language code.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListAppRecoveriesResponse": { +"description": "Response message for ListAppRecoveries. -- api-linter: core::0158::response-next-page-token-field=disabled", +"id": "ListAppRecoveriesResponse", +"properties": { +"recoveryActions": { +"description": "List of recovery actions associated with the requested package name.", +"items": { +"$ref": "AppRecoveryAction" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDeviceTierConfigsResponse": { +"description": "Response listing existing device tier configs.", +"id": "ListDeviceTierConfigsResponse", +"properties": { +"deviceTierConfigs": { +"description": "Device tier configs created by the developer.", +"items": { +"$ref": "DeviceTierConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListSubscriptionOffersResponse": { +"description": "Response message for ListSubscriptionOffers.", +"id": "ListSubscriptionOffersResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"subscriptionOffers": { +"description": "The subscription offers from the specified subscription.", +"items": { +"$ref": "SubscriptionOffer" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSubscriptionsResponse": { +"description": "Response message for ListSubscriptions.", +"id": "ListSubscriptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"subscriptions": { +"description": "The subscriptions from the specified app.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsersResponse": { +"description": "A response containing one or more users with access to an account.", +"id": "ListUsersResponse", +"properties": { +"nextPageToken": { +"description": "A token to pass to subsequent calls in order to retrieve subsequent results. This will not be set if there are no more results to return.", +"type": "string" +}, +"users": { +"description": "The resulting users.", +"items": { +"$ref": "User" +}, +"type": "array" +} +}, +"type": "object" +}, +"Listing": { +"description": "A localized store listing. The resource for ListingsService.", +"id": "Listing", +"properties": { +"fullDescription": { +"description": "Full description of the app.", +"type": "string" +}, +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"type": "string" +}, +"shortDescription": { +"description": "Short description of the app.", +"type": "string" +}, +"title": { +"description": "Localized title of the app.", +"type": "string" +}, +"video": { +"description": "URL of a promotional YouTube video for the app.", +"type": "string" +} +}, +"type": "object" +}, +"ListingsListResponse": { +"description": "Response listing all localized listings.", +"id": "ListingsListResponse", +"properties": { +"kind": { +"description": "The kind of this response (\"androidpublisher#listingsListResponse\").", +"type": "string" +}, +"listings": { +"description": "All localized listings.", +"items": { +"$ref": "Listing" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalizedText": { +"description": "Localized text in given language.", +"id": "LocalizedText", +"properties": { +"language": { +"description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).", +"type": "string" +}, +"text": { +"description": "The text in the given language.", +"type": "string" +} +}, +"type": "object" +}, +"ManagedProductTaxAndComplianceSettings": { +"description": "Details about taxation and legal compliance for managed products.", +"id": "ManagedProductTaxAndComplianceSettings", +"properties": { +"eeaWithdrawalRightType": { +"description": "Digital content or service classification for products distributed to users in the European Economic Area (EEA). The withdrawal regime under EEA consumer laws depends on this classification. Refer to the [Help Center article](https://support.google.com/googleplay/android-developer/answer/10463498) for more information.", +"enum": [ +"WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED", +"WITHDRAWAL_RIGHT_DIGITAL_CONTENT", +"WITHDRAWAL_RIGHT_SERVICE" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"isTokenizedDigitalAsset": { +"description": "Whether this in-app product is declared as a product representing a tokenized digital asset.", +"type": "boolean" +}, +"taxRateInfoByRegionCode": { +"additionalProperties": { +"$ref": "RegionalTaxRateInfo" +}, +"description": "A mapping from region code to tax rate details. The keys are region codes as defined by Unicode's \"CLDR\".", +"type": "object" +} +}, +"type": "object" +}, +"MigrateBasePlanPricesRequest": { +"description": "Request message for MigrateBasePlanPrices.", +"id": "MigrateBasePlanPricesRequest", +"properties": { +"basePlanId": { +"description": "Required. The unique base plan ID of the base plan to update prices on.", +"type": "string" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"packageName": { +"description": "Required. Package name of the parent app. Must be equal to the package_name field on the Subscription resource.", +"type": "string" +}, +"productId": { +"description": "Required. The ID of the subscription to update. Must be equal to the product_id field on the Subscription resource.", +"type": "string" +}, +"regionalPriceMigrations": { +"description": "Required. The regional prices to update.", +"items": { +"$ref": "RegionalPriceMigrationConfig" +}, +"type": "array" +}, +"regionsVersion": { +"$ref": "RegionsVersion", +"description": "Required. The version of the available regions being used for the regional_price_migrations." +} +}, +"type": "object" +}, +"MigrateBasePlanPricesResponse": { +"description": "Response message for MigrateBasePlanPrices.", +"id": "MigrateBasePlanPricesResponse", +"properties": {}, +"type": "object" +}, +"ModuleMetadata": { +"description": "Metadata of a module.", +"id": "ModuleMetadata", +"properties": { +"deliveryType": { +"description": "Indicates the delivery type (e.g. on-demand) of the module.", +"enum": [ +"UNKNOWN_DELIVERY_TYPE", +"INSTALL_TIME", +"ON_DEMAND", +"FAST_FOLLOW" +], +"enumDescriptions": [ +"Unspecified delivery type.", +"This module will always be downloaded as part of the initial install of the app.", +"This module is requested on-demand, which means it will not be part of the initial install, and will only be sent when requested by the client.", +"This module will be downloaded immediately after initial install finishes. The app can be opened before these modules are downloaded." +], +"type": "string" +}, +"dependencies": { +"description": "Names of the modules that this module directly depends on. Each module implicitly depends on the base module.", +"items": { +"type": "string" +}, +"type": "array" +}, +"moduleType": { +"description": "Indicates the type of this feature module.", +"enum": [ +"UNKNOWN_MODULE_TYPE", +"FEATURE_MODULE" +], +"enumDescriptions": [ +"Unknown feature module.", +"Regular feature module." +], +"type": "string" +}, +"name": { +"description": "Module name.", +"type": "string" +}, +"targeting": { +"$ref": "ModuleTargeting", +"description": "The targeting that makes a conditional module installed. Relevant only for Split APKs." +} +}, +"type": "object" +}, +"ModuleTargeting": { +"description": "Targeting on the module level.", +"id": "ModuleTargeting", +"properties": { +"deviceFeatureTargeting": { +"description": "Targeting for device features.", +"items": { +"$ref": "DeviceFeatureTargeting" +}, +"type": "array" +}, +"sdkVersionTargeting": { +"$ref": "SdkVersionTargeting", +"description": "The sdk version that the variant targets" +}, +"userCountriesTargeting": { +"$ref": "UserCountriesTargeting", +"description": "Countries-level targeting" +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MultiAbi": { +"description": "Represents a list of ABIs.", +"id": "MultiAbi", +"properties": { +"abi": { +"description": "A list of targeted ABIs, as represented by the Android Platform", +"items": { +"$ref": "Abi" +}, +"type": "array" +} +}, +"type": "object" +}, +"MultiAbiTargeting": { +"description": "Targeting based on multiple abis.", +"id": "MultiAbiTargeting", +"properties": { +"alternatives": { +"description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", +"items": { +"$ref": "MultiAbi" +}, +"type": "array" +}, +"value": { +"description": "Value of a multi abi.", +"items": { +"$ref": "MultiAbi" +}, +"type": "array" +} +}, +"type": "object" +}, +"OfferDetails": { +"description": "Offer details information related to a purchase line item.", +"id": "OfferDetails", +"properties": { +"basePlanId": { +"description": "The base plan ID. Present for all base plan and offers.", +"type": "string" +}, +"offerId": { +"description": "The offer ID. Only present for discounted offers.", +"type": "string" +}, +"offerTags": { +"description": "The latest offer tags associated with the offer. It includes tags inherited from the base plan.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"OfferTag": { +"description": "Represents a custom tag specified for a product offer.", +"id": "OfferTag", +"properties": { +"tag": { +"description": "Must conform with RFC-1034. That is, this string can only contain lower-case letters (a-z), numbers (0-9), and hyphens (-), and be at most 20 characters.", +"type": "string" +} +}, +"type": "object" +}, +"OneTimeCode": { +"description": "A single use promotion code.", +"id": "OneTimeCode", +"properties": {}, +"type": "object" +}, +"OneTimeExternalTransaction": { +"description": "Represents a one-time transaction.", +"id": "OneTimeExternalTransaction", +"properties": { +"externalTransactionToken": { +"description": "Input only. Provided during the call to Create. Retrieved from the client when the alternative billing flow is launched.", +"type": "string" +} +}, +"type": "object" +}, +"OtherRecurringProduct": { +"description": "Details of a recurring external transaction product which doesn't belong to any other more specific category.", +"id": "OtherRecurringProduct", +"properties": {}, +"type": "object" +}, +"OtherRegionsBasePlanConfig": { +"description": "Pricing information for any new locations Play may launch in.", +"id": "OtherRegionsBasePlanConfig", +"properties": { +"eurPrice": { +"$ref": "Money", +"description": "Required. Price in EUR to use for any new locations Play may launch in." +}, +"newSubscriberAvailability": { +"description": "Whether the base plan is available for new subscribers in any new locations Play may launch in. If not specified, this will default to false.", +"type": "boolean" +}, +"usdPrice": { +"$ref": "Money", +"description": "Required. Price in USD to use for any new locations Play may launch in." +} +}, +"type": "object" +}, +"OtherRegionsSubscriptionOfferConfig": { +"description": "Configuration for any new locations Play may launch in specified on a subscription offer.", +"id": "OtherRegionsSubscriptionOfferConfig", +"properties": { +"otherRegionsNewSubscriberAvailability": { +"description": "Whether the subscription offer in any new locations Play may launch in the future. If not specified, this will default to false.", +"type": "boolean" +} +}, +"type": "object" +}, +"OtherRegionsSubscriptionOfferPhaseConfig": { +"description": "Configuration for any new locations Play may launch in for a single offer phase.", +"id": "OtherRegionsSubscriptionOfferPhaseConfig", +"properties": { +"absoluteDiscounts": { +"$ref": "OtherRegionsSubscriptionOfferPhasePrices", +"description": "The absolute amount of money subtracted from the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a $1 absolute discount for a phase of a duration of 3 months would correspond to a price of $2. The resulting price may not be smaller than the minimum price allowed for any new locations Play may launch in." +}, +"free": { +"$ref": "OtherRegionsSubscriptionOfferPhaseFreePriceOverride", +"description": "Set to specify this offer is free to obtain." +}, +"otherRegionsPrices": { +"$ref": "OtherRegionsSubscriptionOfferPhasePrices", +"description": "The absolute price the user pays for this offer phase. The price must not be smaller than the minimum price allowed for any new locations Play may launch in." +}, +"relativeDiscount": { +"description": "The fraction of the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a 50% discount for a phase of a duration of 3 months would correspond to a price of $1.50. The discount must be specified as a fraction strictly larger than 0 and strictly smaller than 1. The resulting price will be rounded to the nearest billable unit (e.g. cents for USD). The relative discount is considered invalid if the discounted price ends up being smaller than the minimum price allowed in any new locations Play may launch in.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"OtherRegionsSubscriptionOfferPhaseFreePriceOverride": { +"description": "Represents the free price override configuration for any new locations Play may launch for a single offer phase.", +"id": "OtherRegionsSubscriptionOfferPhaseFreePriceOverride", +"properties": {}, +"type": "object" +}, +"OtherRegionsSubscriptionOfferPhasePrices": { +"description": "Pricing information for any new locations Play may launch in.", +"id": "OtherRegionsSubscriptionOfferPhasePrices", +"properties": { +"eurPrice": { +"$ref": "Money", +"description": "Required. Price in EUR to use for any new locations Play may launch in." +}, +"usdPrice": { +"$ref": "Money", +"description": "Required. Price in USD to use for any new locations Play may launch in." +} +}, +"type": "object" +}, +"PageInfo": { +"description": "Information about the current page. List operations that supports paging return only one \"page\" of results. This protocol buffer message describes the page that has been returned.", +"id": "PageInfo", +"properties": { +"resultPerPage": { +"description": "Maximum number of results returned in one page. ! The number of results included in the API response.", +"format": "int32", +"type": "integer" +}, +"startIndex": { +"description": "Index of the first result returned in the current page.", +"format": "int32", +"type": "integer" +}, +"totalResults": { +"description": "Total number of results available on the backend ! The total number of results in the result set.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PartialRefund": { +"description": "A partial refund of a transaction.", +"id": "PartialRefund", +"properties": { +"refundId": { +"description": "Required. A unique id distinguishing this partial refund. If the refund is successful, subsequent refunds with the same id will fail. Must be unique across refunds for one individual transaction.", +"type": "string" +}, +"refundPreTaxAmount": { +"$ref": "Price", +"description": "Required. The pre-tax amount of the partial refund. Should be less than the remaining pre-tax amount of the transaction." +} +}, +"type": "object" +}, +"PausedStateContext": { +"description": "Information specific to a subscription in paused state.", +"id": "PausedStateContext", +"properties": { +"autoResumeTime": { +"description": "Time at which the subscription will be automatically resumed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"PendingCancellation": { +"description": "This is an indicator of whether there is a pending cancellation on the virtual installment plan. The cancellation will happen only after the user finished all committed payments.", +"id": "PendingCancellation", +"properties": {}, +"type": "object" +}, +"PrepaidBasePlanType": { +"description": "Represents a base plan that does not automatically renew at the end of the base plan, and must be manually renewed by the user.", +"id": "PrepaidBasePlanType", +"properties": { +"billingPeriodDuration": { +"description": "Required. Immutable. Subscription period, specified in ISO 8601 format. For a list of acceptable billing periods, refer to the help center. The duration is immutable after the base plan is created.", +"type": "string" +}, +"timeExtension": { +"description": "Whether users should be able to extend this prepaid base plan in Google Play surfaces. Defaults to TIME_EXTENSION_ACTIVE if not specified.", +"enum": [ +"TIME_EXTENSION_UNSPECIFIED", +"TIME_EXTENSION_ACTIVE", +"TIME_EXTENSION_INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"Time extension is active. Users are allowed to top-up or extend their prepaid plan.", +"Time extension is inactive. Users cannot top-up or extend their prepaid plan." +], +"type": "string" +} +}, +"type": "object" +}, +"PrepaidPlan": { +"description": "Information related to a prepaid plan.", +"id": "PrepaidPlan", +"properties": { +"allowExtendAfterTime": { +"description": "If present, this is the time after which top up purchases are allowed for the prepaid plan. Will not be present for expired prepaid plans.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Price": { +"description": "Definition of a price, i.e. currency and units.", +"id": "Price", +"properties": { +"currency": { +"description": "3 letter Currency code, as defined by ISO 4217. See java/com/google/common/money/CurrencyCode.java", +"type": "string" +}, +"priceMicros": { +"description": "Price in 1/million of the currency base unit, represented as a string.", +"type": "string" +} +}, +"type": "object" +}, +"ProductPurchase": { +"description": "A ProductPurchase resource indicates the status of a user's inapp product purchase.", +"id": "ProductPurchase", +"properties": { +"acknowledgementState": { +"description": "The acknowledgement state of the inapp product. Possible values are: 0. Yet to be acknowledged 1. Acknowledged", +"format": "int32", +"type": "integer" +}, +"consumptionState": { +"description": "The consumption state of the inapp product. Possible values are: 0. Yet to be consumed 1. Consumed", +"format": "int32", +"type": "integer" +}, +"developerPayload": { +"description": "A developer-specified string that contains supplemental information about an order.", +"type": "string" +}, +"kind": { +"description": "This kind represents an inappPurchase object in the androidpublisher service.", +"type": "string" +}, +"obfuscatedExternalAccountId": { +"description": "An obfuscated version of the id that is uniquely associated with the user's account in your app. Only present if specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid when the purchase was made.", +"type": "string" +}, +"obfuscatedExternalProfileId": { +"description": "An obfuscated version of the id that is uniquely associated with the user's profile in your app. Only present if specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid when the purchase was made.", +"type": "string" +}, +"orderId": { +"description": "The order id associated with the purchase of the inapp product.", +"type": "string" +}, +"productId": { +"description": "The inapp product SKU. May not be present.", +"type": "string" +}, +"purchaseState": { +"description": "The purchase state of the order. Possible values are: 0. Purchased 1. Canceled 2. Pending", +"format": "int32", +"type": "integer" +}, +"purchaseTimeMillis": { +"description": "The time the product was purchased, in milliseconds since the epoch (Jan 1, 1970).", +"format": "int64", +"type": "string" +}, +"purchaseToken": { +"description": "The purchase token generated to identify this purchase. May not be present.", +"type": "string" +}, +"purchaseType": { +"description": "The type of purchase of the inapp product. This field is only set if this purchase was not made using the standard in-app billing flow. Possible values are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e. purchased using a promo code). Does not include Play Points purchases. 2. Rewarded (i.e. from watching a video ad instead of paying)", +"format": "int32", +"type": "integer" +}, +"quantity": { +"description": "The quantity associated with the purchase of the inapp product. If not present, the quantity is 1.", +"format": "int32", +"type": "integer" +}, +"refundableQuantity": { +"description": "The quantity eligible for refund, i.e. quantity that hasn't been refunded. The value reflects quantity-based partial refunds and full refunds.", +"format": "int32", +"type": "integer" +}, +"regionCode": { +"description": "ISO 3166-1 alpha-2 billing region code of the user at the time the product was granted.", +"type": "string" +} +}, +"type": "object" +}, +"ProductPurchasesAcknowledgeRequest": { +"description": "Request for the product.purchases.acknowledge API.", +"id": "ProductPurchasesAcknowledgeRequest", +"properties": { +"developerPayload": { +"description": "Payload to attach to the purchase.", +"type": "string" +} +}, +"type": "object" +}, +"RecurringExternalTransaction": { +"description": "Represents a transaction that is part of a recurring series of payments. This can be a subscription or a one-time product with multiple payments (such as preorder).", +"id": "RecurringExternalTransaction", +"properties": { +"externalSubscription": { +"$ref": "ExternalSubscription", +"description": "Details of an external subscription." +}, +"externalTransactionToken": { +"description": "Input only. Provided during the call to Create. Retrieved from the client when the alternative billing flow is launched. Required only for the initial purchase.", +"type": "string" +}, +"initialExternalTransactionId": { +"description": "The external transaction id of the first transaction of this recurring series of transactions. For example, for a subscription this would be the transaction id of the first payment. Required when creating recurring external transactions.", +"type": "string" +}, +"migratedTransactionProgram": { +"description": "Input only. Provided during the call to Create. Must only be used when migrating a subscription from manual monthly reporting to automated reporting.", +"enum": [ +"EXTERNAL_TRANSACTION_PROGRAM_UNSPECIFIED", +"USER_CHOICE_BILLING", +"ALTERNATIVE_BILLING_ONLY" +], +"enumDescriptions": [ +"Unspecified transaction program. Not used.", +"User choice billing, where a user may choose between Google Play Billing developer-managed billing.", +"Alternative billing only, where users may only use developer-manager billing." +], +"type": "string" +}, +"otherRecurringProduct": { +"$ref": "OtherRecurringProduct", +"description": "Details of a recurring external transaction product which doesn't belong to any other specific category." +} +}, +"type": "object" +}, +"RefundExternalTransactionRequest": { +"description": "A request to refund an existing external transaction.", +"id": "RefundExternalTransactionRequest", +"properties": { +"fullRefund": { +"$ref": "FullRefund", +"description": "A full-amount refund." +}, +"partialRefund": { +"$ref": "PartialRefund", +"description": "A partial refund." +}, +"refundTime": { +"description": "Required. The time that the transaction was refunded.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RegionalBasePlanConfig": { +"description": "Configuration for a base plan specific to a region.", +"id": "RegionalBasePlanConfig", +"properties": { +"newSubscriberAvailability": { +"description": "Whether the base plan in the specified region is available for new subscribers. Existing subscribers will not have their subscription canceled if this value is set to false. If not specified, this will default to false.", +"type": "boolean" +}, +"price": { +"$ref": "Money", +"description": "The price of the base plan in the specified region. Must be set if the base plan is available to new subscribers. Must be set in the currency that is linked to the specified region." +}, +"regionCode": { +"description": "Required. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", +"type": "string" +} +}, +"type": "object" +}, +"RegionalPriceMigrationConfig": { +"description": "Configuration for migration of a legacy price cohort.", +"id": "RegionalPriceMigrationConfig", +"properties": { +"oldestAllowedPriceVersionTime": { +"description": "Required. Subscribers in all legacy price cohorts before this time will be migrated to the current price. Subscribers in any newer price cohorts are unaffected. Affected subscribers will receive one or more notifications from Google Play about the price change. Price decreases occur at the subscriber's next billing date. Price increases occur at the subscriber's next billing date following a notification period that varies by region and price increase type.", +"format": "google-datetime", +"type": "string" +}, +"priceIncreaseType": { +"description": "Optional. The requested type of price increase", +"enum": [ +"PRICE_INCREASE_TYPE_UNSPECIFIED", +"PRICE_INCREASE_TYPE_OPT_IN", +"PRICE_INCREASE_TYPE_OPT_OUT" +], +"enumDescriptions": [ +"Unspecified state.", +"Subscribers must accept the price increase or their subscription is canceled.", +"Subscribers are notified but do not have to accept the price increase. Opt-out price increases not meeting regional, frequency, and amount limits will proceed as opt-in price increase. The first opt-out price increase for each app must be initiated in the Google Play Console." +], +"type": "string" +}, +"regionCode": { +"description": "Required. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", +"type": "string" +} +}, +"type": "object" +}, +"RegionalSubscriptionOfferConfig": { +"description": "Configuration for a subscription offer in a single region.", +"id": "RegionalSubscriptionOfferConfig", +"properties": { +"newSubscriberAvailability": { +"description": "Whether the subscription offer in the specified region is available for new subscribers. Existing subscribers will not have their subscription cancelled if this value is set to false. If not specified, this will default to false.", +"type": "boolean" +}, +"regionCode": { +"description": "Required. Immutable. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", +"type": "string" +} +}, +"type": "object" +}, +"RegionalSubscriptionOfferPhaseConfig": { +"description": "Configuration for a single phase of a subscription offer in a single region.", +"id": "RegionalSubscriptionOfferPhaseConfig", +"properties": { +"absoluteDiscount": { +"$ref": "Money", +"description": "The absolute amount of money subtracted from the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a $1 absolute discount for a phase of a duration of 3 months would correspond to a price of $2. The resulting price may not be smaller than the minimum price allowed for this region." +}, +"free": { +"$ref": "RegionalSubscriptionOfferPhaseFreePriceOverride", +"description": "Set to specify this offer is free to obtain." +}, +"price": { +"$ref": "Money", +"description": "The absolute price the user pays for this offer phase. The price must not be smaller than the minimum price allowed for this region." +}, +"regionCode": { +"description": "Required. Immutable. The region to which this config applies.", +"type": "string" +}, +"relativeDiscount": { +"description": "The fraction of the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a 50% discount for a phase of a duration of 3 months would correspond to a price of $1.50. The discount must be specified as a fraction strictly larger than 0 and strictly smaller than 1. The resulting price will be rounded to the nearest billable unit (e.g. cents for USD). The relative discount is considered invalid if the discounted price ends up being smaller than the minimum price allowed in this region.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"RegionalSubscriptionOfferPhaseFreePriceOverride": { +"description": "Represents the free price override configuration for a single phase of a subscription offer", +"id": "RegionalSubscriptionOfferPhaseFreePriceOverride", +"properties": {}, +"type": "object" +}, +"RegionalTaxRateInfo": { +"description": "Specified details about taxation in a given geographical region.", +"id": "RegionalTaxRateInfo", +"properties": { +"eligibleForStreamingServiceTaxRate": { +"description": "You must tell us if your app contains streaming products to correctly charge US state and local sales tax. Field only supported in the United States.", +"type": "boolean" +}, +"streamingTaxType": { +"description": "To collect communications or amusement taxes in the United States, choose the appropriate tax category. [Learn more](https://support.google.com/googleplay/android-developer/answer/10463498#streaming_tax).", +"enum": [ +"STREAMING_TAX_TYPE_UNSPECIFIED", +"STREAMING_TAX_TYPE_TELCO_VIDEO_RENTAL", +"STREAMING_TAX_TYPE_TELCO_VIDEO_SALES", +"STREAMING_TAX_TYPE_TELCO_VIDEO_MULTI_CHANNEL", +"STREAMING_TAX_TYPE_TELCO_AUDIO_RENTAL", +"STREAMING_TAX_TYPE_TELCO_AUDIO_SALES", +"STREAMING_TAX_TYPE_TELCO_AUDIO_MULTI_CHANNEL" +], +"enumDescriptions": [ +"No telecommunications tax collected.", +"US-specific telecommunications tax tier for video streaming, on demand, rentals / subscriptions / pay-per-view.", +"US-specific telecommunications tax tier for video streaming of pre-recorded content like movies, tv shows.", +"US-specific telecommunications tax tier for video streaming of multi-channel programming.", +"US-specific telecommunications tax tier for audio streaming, rental / subscription.", +"US-specific telecommunications tax tier for audio streaming, sale / permanent download.", +"US-specific telecommunications tax tier for multi channel audio streaming like radio." +], +"type": "string" +}, +"taxTier": { +"description": "Tax tier to specify reduced tax rate. Developers who sell digital news, magazines, newspapers, books, or audiobooks in various regions may be eligible for reduced tax rates. [Learn more](https://support.google.com/googleplay/android-developer/answer/10463498).", +"enum": [ +"TAX_TIER_UNSPECIFIED", +"TAX_TIER_BOOKS_1", +"TAX_TIER_NEWS_1", +"TAX_TIER_NEWS_2", +"TAX_TIER_MUSIC_OR_AUDIO_1", +"TAX_TIER_LIVE_OR_BROADCAST_1" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"Regions": { +"description": "Region targeting data for app recovery action targeting.", +"id": "Regions", +"properties": { +"regionCode": { +"description": "Regions targeted by the recovery action. Region codes are ISO 3166 Alpha-2 country codes. For example, US stands for United States of America. See https://www.iso.org/iso-3166-country-codes.html for the complete list of country codes.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RegionsVersion": { +"description": "The version of the available regions being used for the specified resource.", +"id": "RegionsVersion", +"properties": { +"version": { +"description": "Required. A string representing the version of available regions being used for the specified resource. Regional prices for the resource have to be specified according to the information published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", +"type": "string" +} +}, +"type": "object" +}, +"RemoteInAppUpdate": { +"description": "Object representation for Remote in-app update action type.", +"id": "RemoteInAppUpdate", +"properties": { +"isRemoteInAppUpdateRequested": { +"description": "Required. Set to true if Remote In-App Update action type is needed.", +"type": "boolean" +} +}, +"type": "object" +}, +"RemoteInAppUpdateData": { +"description": "Data related to Remote In-App Update action such as recovered user count, affected user count etc.", +"id": "RemoteInAppUpdateData", +"properties": { +"remoteAppUpdateDataPerBundle": { +"description": "Data related to the recovery action at bundle level.", +"items": { +"$ref": "RemoteInAppUpdateDataPerBundle" +}, +"type": "array" +} +}, +"type": "object" +}, +"RemoteInAppUpdateDataPerBundle": { +"description": "Data related to the recovery action at bundle level.", +"id": "RemoteInAppUpdateDataPerBundle", +"properties": { +"recoveredDeviceCount": { +"description": "Total number of devices which have been rescued.", +"format": "int64", +"type": "string" +}, +"totalDeviceCount": { +"description": "Total number of devices affected by this recovery action associated with bundle of the app.", +"format": "int64", +"type": "string" +}, +"versionCode": { +"description": "Version Code corresponding to the target bundle.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReplacementCancellation": { +"description": "Information specific to cancellations caused by subscription replacement.", +"id": "ReplacementCancellation", +"properties": {}, +"type": "object" +}, +"RestrictedPaymentCountries": { +"description": "Countries where the purchase of this product is restricted to payment methods registered in the same country. If empty, no payment location restrictions are imposed.", +"id": "RestrictedPaymentCountries", +"properties": { +"regionCodes": { +"description": "Required. Region codes to impose payment restrictions on, as defined by ISO 3166-2, e.g. \"US\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Review": { +"description": "An Android app review.", +"id": "Review", +"properties": { +"authorName": { +"description": "The name of the user who wrote the review.", +"type": "string" +}, +"comments": { +"description": "A repeated field containing comments for the review.", +"items": { +"$ref": "Comment" +}, +"type": "array" +}, +"reviewId": { +"description": "Unique identifier for this review.", +"type": "string" +} +}, +"type": "object" +}, +"ReviewReplyResult": { +"description": "The result of replying/updating a reply to review.", +"id": "ReviewReplyResult", +"properties": { +"lastEdited": { +"$ref": "Timestamp", +"description": "The time at which the reply took effect." +}, +"replyText": { +"description": "The reply text that was applied.", +"type": "string" +} +}, +"type": "object" +}, +"ReviewsListResponse": { +"description": "Response listing reviews.", +"id": "ReviewsListResponse", +"properties": { +"pageInfo": { +"$ref": "PageInfo", +"description": "Information about the current page." +}, +"reviews": { +"description": "List of reviews.", +"items": { +"$ref": "Review" +}, +"type": "array" +}, +"tokenPagination": { +"$ref": "TokenPagination", +"description": "Pagination token, to handle a number of products that is over one page." +} +}, +"type": "object" +}, +"ReviewsReplyRequest": { +"description": "Request to reply to review or update existing reply.", +"id": "ReviewsReplyRequest", +"properties": { +"replyText": { +"description": "The text to set as the reply. Replies of more than approximately 350 characters will be rejected. HTML tags will be stripped.", +"type": "string" +} +}, +"type": "object" +}, +"ReviewsReplyResponse": { +"description": "Response on status of replying to a review.", +"id": "ReviewsReplyResponse", +"properties": { +"result": { +"$ref": "ReviewReplyResult", +"description": "The result of replying/updating a reply to review." +} +}, +"type": "object" +}, +"RevocationContext": { +"description": "Revocation context of the purchases.subscriptionsv2.revoke API.", +"id": "RevocationContext", +"properties": { +"fullRefund": { +"$ref": "RevocationContextFullRefund", +"description": "Optional. Used when users should be refunded the full amount of the latest order of the subscription." +}, +"proratedRefund": { +"$ref": "RevocationContextProratedRefund", +"description": "Optional. Used when users should be refunded a prorated amount they paid for their subscription based on the amount of time remaining in a subscription." +} +}, +"type": "object" +}, +"RevocationContextFullRefund": { +"description": "Used to determine if the refund type in the RevocationContext is a full refund.", +"id": "RevocationContextFullRefund", +"properties": {}, +"type": "object" +}, +"RevocationContextProratedRefund": { +"description": "Used to determine if the refund type in the RevocationContext is a prorated refund.", +"id": "RevocationContextProratedRefund", +"properties": {}, +"type": "object" +}, +"RevokeSubscriptionPurchaseRequest": { +"description": "Request for the purchases.subscriptionsv2.revoke API.", +"id": "RevokeSubscriptionPurchaseRequest", +"properties": { +"revocationContext": { +"$ref": "RevocationContext", +"description": "Required. Additional details around the subscription revocation." +} +}, +"type": "object" +}, +"RevokeSubscriptionPurchaseResponse": { +"description": "Response for the purchases.subscriptionsv2.revoke API.", +"id": "RevokeSubscriptionPurchaseResponse", +"properties": {}, +"type": "object" +}, +"SafetyLabelsUpdateRequest": { +"description": "Request to update Safety Labels of an app.", +"id": "SafetyLabelsUpdateRequest", +"properties": { +"safetyLabels": { +"description": "Required. Contents of the CSV file containing Data Safety responses. For the format of this file, see the Help Center documentation at https://support.google.com/googleplay/android-developer/answer/10787469?#zippy=%2Cunderstand-the-csv-format To download an up to date template, follow the steps at https://support.google.com/googleplay/android-developer/answer/10787469?#zippy=%2Cexport-to-a-csv-file", +"type": "string" +} +}, +"type": "object" +}, +"SafetyLabelsUpdateResponse": { +"description": "Response for SafetyLabelsUpdate rpc.", +"id": "SafetyLabelsUpdateResponse", +"properties": {}, +"type": "object" +}, +"ScreenDensity": { +"description": "Represents a screen density.", +"id": "ScreenDensity", +"properties": { +"densityAlias": { +"description": "Alias for a screen density.", +"enum": [ +"DENSITY_UNSPECIFIED", +"NODPI", +"LDPI", +"MDPI", +"TVDPI", +"HDPI", +"XHDPI", +"XXHDPI", +"XXXHDPI" +], +"enumDescriptions": [ +"Unspecified screen density.", +"NODPI screen density.", +"LDPI screen density.", +"MDPI screen density.", +"TVDPI screen density.", +"HDPI screen density.", +"XHDPI screen density.", +"XXHDPI screen density.", +"XXXHDPI screen density." +], +"type": "string" +}, +"densityDpi": { +"description": "Value for density dpi.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ScreenDensityTargeting": { +"description": "Targeting based on screen density.", +"id": "ScreenDensityTargeting", +"properties": { +"alternatives": { +"description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", +"items": { +"$ref": "ScreenDensity" +}, +"type": "array" +}, +"value": { +"description": "Value of a screen density.", +"items": { +"$ref": "ScreenDensity" +}, +"type": "array" +} +}, +"type": "object" +}, +"SdkVersion": { +"description": "Represents an sdk version.", +"id": "SdkVersion", +"properties": { +"min": { +"description": "Inclusive minimum value of an sdk version.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SdkVersionTargeting": { +"description": "Targeting based on sdk version.", +"id": "SdkVersionTargeting", +"properties": { +"alternatives": { +"description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", +"items": { +"$ref": "SdkVersion" +}, +"type": "array" +}, +"value": { +"description": "Value of an sdk version.", +"items": { +"$ref": "SdkVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"SignupPromotion": { +"description": "The promotion applied on this item when purchased.", +"id": "SignupPromotion", +"properties": { +"oneTimeCode": { +"$ref": "OneTimeCode", +"description": "A one-time code was applied." +}, +"vanityCode": { +"$ref": "VanityCode", +"description": "A vanity code was applied." +} +}, +"type": "object" +}, +"SplitApkMetadata": { +"description": "Holds data specific to Split APKs.", +"id": "SplitApkMetadata", +"properties": { +"isMasterSplit": { +"description": "Indicates whether this APK is the main split of the module.", +"type": "boolean" +}, +"splitId": { +"description": "Id of the split.", +"type": "string" +} +}, +"type": "object" +}, +"SplitApkVariant": { +"description": "Variant is a group of APKs that covers a part of the device configuration space. APKs from multiple variants are never combined on one device.", +"id": "SplitApkVariant", +"properties": { +"apkSet": { +"description": "Set of APKs, one set per module.", +"items": { +"$ref": "ApkSet" +}, +"type": "array" +}, +"targeting": { +"$ref": "VariantTargeting", +"description": "Variant-level targeting." +}, +"variantNumber": { +"description": "Number of the variant, starting at 0 (unless overridden). A device will receive APKs from the first variant that matches the device configuration, with higher variant numbers having priority over lower variant numbers.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"StandaloneApkMetadata": { +"description": "Holds data specific to Standalone APKs.", +"id": "StandaloneApkMetadata", +"properties": { +"fusedModuleName": { +"description": "Names of the modules fused in this standalone APK.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SubscribeWithGoogleInfo": { +"description": "Information associated with purchases made with 'Subscribe with Google'.", +"id": "SubscribeWithGoogleInfo", +"properties": { +"emailAddress": { +"description": "The email address of the user when the subscription was purchased.", +"type": "string" +}, +"familyName": { +"description": "The family name of the user when the subscription was purchased.", +"type": "string" +}, +"givenName": { +"description": "The given name of the user when the subscription was purchased.", +"type": "string" +}, +"profileId": { +"description": "The Google profile id of the user when the subscription was purchased.", +"type": "string" +}, +"profileName": { +"description": "The profile name of the user when the subscription was purchased.", +"type": "string" +} +}, +"type": "object" +}, +"Subscription": { +"description": "A single subscription for an app.", +"id": "Subscription", +"properties": { +"archived": { +"deprecated": true, +"description": "Output only. Deprecated: subscription archiving is not supported.", +"readOnly": true, +"type": "boolean" +}, +"basePlans": { +"description": "The set of base plans for this subscription. Represents the prices and duration of the subscription if no other offers apply.", +"items": { +"$ref": "BasePlan" +}, +"type": "array" +}, +"listings": { +"description": "Required. List of localized listings for this subscription. Must contain at least an entry for the default language of the parent app.", +"items": { +"$ref": "SubscriptionListing" +}, +"type": "array" +}, +"packageName": { +"description": "Immutable. Package name of the parent app.", +"type": "string" +}, +"productId": { +"description": "Immutable. Unique product ID of the product. Unique within the parent app. Product IDs must be composed of lower-case letters (a-z), numbers (0-9), underscores (_) and dots (.). It must start with a lower-case letter or number, and be between 1 and 40 (inclusive) characters in length.", +"type": "string" +}, +"restrictedPaymentCountries": { +"$ref": "RestrictedPaymentCountries", +"description": "Optional. Countries where the purchase of this subscription is restricted to payment methods registered in the same country. If empty, no payment location restrictions are imposed." +}, +"taxAndComplianceSettings": { +"$ref": "SubscriptionTaxAndComplianceSettings", +"description": "Details about taxes and legal compliance." +} +}, +"type": "object" +}, +"SubscriptionCancelSurveyResult": { +"description": "Information provided by the user when they complete the subscription cancellation flow (cancellation reason survey).", +"id": "SubscriptionCancelSurveyResult", +"properties": { +"cancelSurveyReason": { +"description": "The cancellation reason the user chose in the survey. Possible values are: 0. Other 1. I don't use this service enough 2. Technical issues 3. Cost-related reasons 4. I found a better app", +"format": "int32", +"type": "integer" +}, +"userInputCancelReason": { +"description": "The customized input cancel reason from the user. Only present when cancelReason is 0.", +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionDeferralInfo": { +"description": "A SubscriptionDeferralInfo contains the data needed to defer a subscription purchase to a future expiry time.", +"id": "SubscriptionDeferralInfo", +"properties": { +"desiredExpiryTimeMillis": { +"description": "The desired next expiry time to assign to the subscription, in milliseconds since the Epoch. The given time must be later/greater than the current expiry time for the subscription.", +"format": "int64", +"type": "string" +}, +"expectedExpiryTimeMillis": { +"description": "The expected expiry time for the subscription. If the current expiry time for the subscription is not the value specified here, the deferral will not occur.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionItemPriceChangeDetails": { +"description": "Price change related information of a subscription item.", +"id": "SubscriptionItemPriceChangeDetails", +"properties": { +"expectedNewPriceChargeTime": { +"description": "The renewal time at which the price change will become effective for the user. This is subject to change(to a future time) due to cases where the renewal time shifts like pause. This field is only populated if the price change has not taken effect.", +"format": "google-datetime", +"type": "string" +}, +"newPrice": { +"$ref": "Money", +"description": "New recurring price for the subscription item." +}, +"priceChangeMode": { +"description": "Price change mode specifies how the subscription item price is changing.", +"enum": [ +"PRICE_CHANGE_MODE_UNSPECIFIED", +"PRICE_DECREASE", +"PRICE_INCREASE", +"OPT_OUT_PRICE_INCREASE" +], +"enumDescriptions": [ +"Price change mode unspecified. This value should never be set.", +"If the subscription price is decreasing.", +"If the subscription price is increasing and the user needs to accept it.", +"If the subscription price is increasing with opt out mode." +], +"type": "string" +}, +"priceChangeState": { +"description": "State the price change is currently in.", +"enum": [ +"PRICE_CHANGE_STATE_UNSPECIFIED", +"OUTSTANDING", +"CONFIRMED", +"APPLIED" +], +"enumDescriptions": [ +"Price change state unspecified. This value should not be used.", +"Waiting for the user to agree for the price change.", +"The price change is confirmed to happen for the user.", +"The price change is applied, i.e. the user has started being charged the new price." +], +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionListing": { +"description": "The consumer-visible metadata of a subscription.", +"id": "SubscriptionListing", +"properties": { +"benefits": { +"description": "A list of benefits shown to the user on platforms such as the Play Store and in restoration flows in the language of this listing. Plain text. Ordered list of at most four benefits.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "The description of this subscription in the language of this listing. Maximum length - 80 characters. Plain text.", +"type": "string" +}, +"languageCode": { +"description": "Required. The language of this listing, as defined by BCP-47, e.g. \"en-US\".", +"type": "string" +}, +"title": { +"description": "Required. The title of this subscription in the language of this listing. Plain text.", +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionOffer": { +"description": "A single, temporary offer", +"id": "SubscriptionOffer", +"properties": { +"basePlanId": { +"description": "Required. Immutable. The ID of the base plan to which this offer is an extension.", +"type": "string" +}, +"offerId": { +"description": "Required. Immutable. Unique ID of this subscription offer. Must be unique within the base plan.", +"type": "string" +}, +"offerTags": { +"description": "List of up to 20 custom tags specified for this offer, and returned to the app through the billing library.", +"items": { +"$ref": "OfferTag" +}, +"type": "array" +}, +"otherRegionsConfig": { +"$ref": "OtherRegionsSubscriptionOfferConfig", +"description": "The configuration for any new locations Play may launch in the future." +}, +"packageName": { +"description": "Required. Immutable. The package name of the app the parent subscription belongs to.", +"type": "string" +}, +"phases": { +"description": "Required. The phases of this subscription offer. Must contain at least one and at most two entries. Users will always receive all these phases in the specified order.", +"items": { +"$ref": "SubscriptionOfferPhase" +}, +"type": "array" +}, +"productId": { +"description": "Required. Immutable. The ID of the parent subscription this offer belongs to.", +"type": "string" +}, +"regionalConfigs": { +"description": "Required. The region-specific configuration of this offer. Must contain at least one entry.", +"items": { +"$ref": "RegionalSubscriptionOfferConfig" +}, +"type": "array" +}, +"state": { +"description": "Output only. The current state of this offer. Can be changed using Activate and Deactivate actions. NB: the base plan state supersedes this state, so an active offer may not be available if the base plan is not active.", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Default value, should never be used.", +"The subscription offer is not and has never been available to users.", +"The subscription offer is available to new and existing users.", +"The subscription offer is not available to new users. Existing users retain access." +], +"readOnly": true, +"type": "string" +}, +"targeting": { +"$ref": "SubscriptionOfferTargeting", +"description": "The requirements that users need to fulfil to be eligible for this offer. Represents the requirements that Play will evaluate to decide whether an offer should be returned. Developers may further filter these offers themselves." +} +}, +"type": "object" +}, +"SubscriptionOfferPhase": { +"description": "A single phase of a subscription offer.", +"id": "SubscriptionOfferPhase", +"properties": { +"duration": { +"description": "Required. The duration of a single recurrence of this phase. Specified in ISO 8601 format.", +"type": "string" +}, +"otherRegionsConfig": { +"$ref": "OtherRegionsSubscriptionOfferPhaseConfig", +"description": "Pricing information for any new locations Play may launch in." +}, +"recurrenceCount": { +"description": "Required. The number of times this phase repeats. If this offer phase is not free, each recurrence charges the user the price of this offer phase.", +"format": "int32", +"type": "integer" +}, +"regionalConfigs": { +"description": "Required. The region-specific configuration of this offer phase. This list must contain exactly one entry for each region for which the subscription offer has a regional config.", +"items": { +"$ref": "RegionalSubscriptionOfferPhaseConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"SubscriptionOfferTargeting": { +"description": "Defines the rule a user needs to satisfy to receive this offer.", +"id": "SubscriptionOfferTargeting", +"properties": { +"acquisitionRule": { +"$ref": "AcquisitionTargetingRule", +"description": "Offer targeting rule for new user acquisition." +}, +"upgradeRule": { +"$ref": "UpgradeTargetingRule", +"description": "Offer targeting rule for upgrading users' existing plans." +} +}, +"type": "object" +}, +"SubscriptionPriceChange": { +"description": "Contains the price change information for a subscription that can be used to control the user journey for the price change in the app. This can be in the form of seeking confirmation from the user or tailoring the experience for a successful conversion.", +"id": "SubscriptionPriceChange", +"properties": { +"newPrice": { +"$ref": "Price", +"description": "The new price the subscription will renew with if the price change is accepted by the user." +}, +"state": { +"description": "The current state of the price change. Possible values are: 0. Outstanding: State for a pending price change waiting for the user to agree. In this state, you can optionally seek confirmation from the user using the In-App API. 1. Accepted: State for an accepted price change that the subscription will renew with unless it's canceled. The price change takes effect on a future date when the subscription renews. Note that the change might not occur when the subscription is renewed next.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SubscriptionPurchase": { +"description": "A SubscriptionPurchase resource indicates the status of a user's subscription purchase.", +"id": "SubscriptionPurchase", +"properties": { +"acknowledgementState": { +"description": "The acknowledgement state of the subscription product. Possible values are: 0. Yet to be acknowledged 1. Acknowledged", +"format": "int32", +"type": "integer" +}, +"autoRenewing": { +"description": "Whether the subscription will automatically be renewed when it reaches its current expiry time.", +"type": "boolean" +}, +"autoResumeTimeMillis": { +"description": "Time at which the subscription will be automatically resumed, in milliseconds since the Epoch. Only present if the user has requested to pause the subscription.", +"format": "int64", +"type": "string" +}, +"cancelReason": { +"description": "The reason why a subscription was canceled or is not auto-renewing. Possible values are: 0. User canceled the subscription 1. Subscription was canceled by the system, for example because of a billing problem 2. Subscription was replaced with a new subscription 3. Subscription was canceled by the developer", +"format": "int32", +"type": "integer" +}, +"cancelSurveyResult": { +"$ref": "SubscriptionCancelSurveyResult", +"description": "Information provided by the user when they complete the subscription cancellation flow (cancellation reason survey)." +}, +"countryCode": { +"description": "ISO 3166-1 alpha-2 billing country/region code of the user at the time the subscription was granted.", +"type": "string" +}, +"developerPayload": { +"description": "A developer-specified string that contains supplemental information about an order.", +"type": "string" +}, +"emailAddress": { +"description": "The email address of the user when the subscription was purchased. Only present for purchases made with 'Subscribe with Google'.", +"type": "string" +}, +"expiryTimeMillis": { +"description": "Time at which the subscription will expire, in milliseconds since the Epoch.", +"format": "int64", +"type": "string" +}, +"externalAccountId": { +"description": "User account identifier in the third-party service. Only present if account linking happened as part of the subscription purchase flow.", +"type": "string" +}, +"familyName": { +"description": "The family name of the user when the subscription was purchased. Only present for purchases made with 'Subscribe with Google'.", +"type": "string" +}, +"givenName": { +"description": "The given name of the user when the subscription was purchased. Only present for purchases made with 'Subscribe with Google'.", +"type": "string" +}, +"introductoryPriceInfo": { +"$ref": "IntroductoryPriceInfo", +"description": "Introductory price information of the subscription. This is only present when the subscription was purchased with an introductory price. This field does not indicate the subscription is currently in introductory price period." +}, +"kind": { +"description": "This kind represents a subscriptionPurchase object in the androidpublisher service.", +"type": "string" +}, +"linkedPurchaseToken": { +"description": "The purchase token of the originating purchase if this subscription is one of the following: 0. Re-signup of a canceled but non-lapsed subscription 1. Upgrade/downgrade from a previous subscription For example, suppose a user originally signs up and you receive purchase token X, then the user cancels and goes through the resignup flow (before their subscription lapses) and you receive purchase token Y, and finally the user upgrades their subscription and you receive purchase token Z. If you call this API with purchase token Z, this field will be set to Y. If you call this API with purchase token Y, this field will be set to X. If you call this API with purchase token X, this field will not be set.", +"type": "string" +}, +"obfuscatedExternalAccountId": { +"description": "An obfuscated version of the id that is uniquely associated with the user's account in your app. Present for the following purchases: * If account linking happened as part of the subscription purchase flow. * It was specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid when the purchase was made.", +"type": "string" +}, +"obfuscatedExternalProfileId": { +"description": "An obfuscated version of the id that is uniquely associated with the user's profile in your app. Only present if specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid when the purchase was made.", +"type": "string" +}, +"orderId": { +"description": "The order id of the latest recurring order associated with the purchase of the subscription. If the subscription was canceled because payment was declined, this will be the order id from the payment declined order.", +"type": "string" +}, +"paymentState": { +"description": "The payment state of the subscription. Possible values are: 0. Payment pending 1. Payment received 2. Free trial 3. Pending deferred upgrade/downgrade Not present for canceled, expired subscriptions.", +"format": "int32", +"type": "integer" +}, +"priceAmountMicros": { +"description": "Price of the subscription, For tax exclusive countries, the price doesn't include tax. For tax inclusive countries, the price includes tax. Price is expressed in micro-units, where 1,000,000 micro-units represents one unit of the currency. For example, if the subscription price is \u20ac1.99, price_amount_micros is 1990000.", +"format": "int64", +"type": "string" +}, +"priceChange": { +"$ref": "SubscriptionPriceChange", +"description": "The latest price change information available. This is present only when there is an upcoming price change for the subscription yet to be applied. Once the subscription renews with the new price or the subscription is canceled, no price change information will be returned." +}, +"priceCurrencyCode": { +"description": "ISO 4217 currency code for the subscription price. For example, if the price is specified in British pounds sterling, price_currency_code is \"GBP\".", +"type": "string" +}, +"profileId": { +"description": "The Google profile id of the user when the subscription was purchased. Only present for purchases made with 'Subscribe with Google'.", +"type": "string" +}, +"profileName": { +"description": "The profile name of the user when the subscription was purchased. Only present for purchases made with 'Subscribe with Google'.", +"type": "string" +}, +"promotionCode": { +"description": "The promotion code applied on this purchase. This field is only set if a vanity code promotion is applied when the subscription was purchased.", +"type": "string" +}, +"promotionType": { +"description": "The type of promotion applied on this purchase. This field is only set if a promotion is applied when the subscription was purchased. Possible values are: 0. One time code 1. Vanity code", +"format": "int32", +"type": "integer" +}, +"purchaseType": { +"description": "The type of purchase of the subscription. This field is only set if this purchase was not made using the standard in-app billing flow. Possible values are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e. purchased using a promo code)", +"format": "int32", +"type": "integer" +}, +"startTimeMillis": { +"description": "Time at which the subscription was granted, in milliseconds since the Epoch.", +"format": "int64", +"type": "string" +}, +"userCancellationTimeMillis": { +"description": "The time at which the subscription was canceled by the user, in milliseconds since the epoch. Only present if cancelReason is 0.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionPurchaseLineItem": { +"description": "Item-level info for a subscription purchase.", +"id": "SubscriptionPurchaseLineItem", +"properties": { +"autoRenewingPlan": { +"$ref": "AutoRenewingPlan", +"description": "The item is auto renewing." +}, +"deferredItemReplacement": { +"$ref": "DeferredItemReplacement", +"description": "Information for deferred item replacement." +}, +"expiryTime": { +"description": "Time at which the subscription expired or will expire unless the access is extended (ex. renews).", +"format": "google-datetime", +"type": "string" +}, +"offerDetails": { +"$ref": "OfferDetails", +"description": "The offer details for this item." +}, +"prepaidPlan": { +"$ref": "PrepaidPlan", +"description": "The item is prepaid." +}, +"productId": { +"description": "The purchased product ID (for example, 'monthly001').", +"type": "string" +}, +"signupPromotion": { +"$ref": "SignupPromotion", +"description": "Promotion details about this item. Only set if a promotion was applied during signup." +} +}, +"type": "object" +}, +"SubscriptionPurchaseV2": { +"description": "Indicates the status of a user's subscription purchase.", +"id": "SubscriptionPurchaseV2", +"properties": { +"acknowledgementState": { +"description": "The acknowledgement state of the subscription.", +"enum": [ +"ACKNOWLEDGEMENT_STATE_UNSPECIFIED", +"ACKNOWLEDGEMENT_STATE_PENDING", +"ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED" +], +"enumDescriptions": [ +"Unspecified acknowledgement state.", +"The subscription is not acknowledged yet.", +"The subscription is acknowledged." +], +"type": "string" +}, +"canceledStateContext": { +"$ref": "CanceledStateContext", +"description": "Additional context around canceled subscriptions. Only present if the subscription currently has subscription_state SUBSCRIPTION_STATE_CANCELED or SUBSCRIPTION_STATE_EXPIRED." +}, +"externalAccountIdentifiers": { +"$ref": "ExternalAccountIdentifiers", +"description": "User account identifier in the third-party service." +}, +"kind": { +"description": "This kind represents a SubscriptionPurchaseV2 object in the androidpublisher service.", +"type": "string" +}, +"latestOrderId": { +"description": "The order id of the latest order associated with the purchase of the subscription. For autoRenewing subscription, this is the order id of signup order if it is not renewed yet, or the last recurring order id (success, pending, or declined order). For prepaid subscription, this is the order id associated with the queried purchase token.", +"type": "string" +}, +"lineItems": { +"description": "Item-level info for a subscription purchase. The items in the same purchase should be either all with AutoRenewingPlan or all with PrepaidPlan.", +"items": { +"$ref": "SubscriptionPurchaseLineItem" +}, +"type": "array" +}, +"linkedPurchaseToken": { +"description": "The purchase token of the old subscription if this subscription is one of the following: * Re-signup of a canceled but non-lapsed subscription * Upgrade/downgrade from a previous subscription. * Convert from prepaid to auto renewing subscription. * Convert from an auto renewing subscription to prepaid. * Topup a prepaid subscription.", +"type": "string" +}, +"pausedStateContext": { +"$ref": "PausedStateContext", +"description": "Additional context around paused subscriptions. Only present if the subscription currently has subscription_state SUBSCRIPTION_STATE_PAUSED." +}, +"regionCode": { +"description": "ISO 3166-1 alpha-2 billing country/region code of the user at the time the subscription was granted.", +"type": "string" +}, +"startTime": { +"description": "Time at which the subscription was granted. Not set for pending subscriptions (subscription was created but awaiting payment during signup).", +"format": "google-datetime", +"type": "string" +}, +"subscribeWithGoogleInfo": { +"$ref": "SubscribeWithGoogleInfo", +"description": "User profile associated with purchases made with 'Subscribe with Google'." +}, +"subscriptionState": { +"description": "The current state of the subscription.", +"enum": [ +"SUBSCRIPTION_STATE_UNSPECIFIED", +"SUBSCRIPTION_STATE_PENDING", +"SUBSCRIPTION_STATE_ACTIVE", +"SUBSCRIPTION_STATE_PAUSED", +"SUBSCRIPTION_STATE_IN_GRACE_PERIOD", +"SUBSCRIPTION_STATE_ON_HOLD", +"SUBSCRIPTION_STATE_CANCELED", +"SUBSCRIPTION_STATE_EXPIRED", +"SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED" +], +"enumDescriptions": [ +"Unspecified subscription state.", +"Subscription was created but awaiting payment during signup. In this state, all items are awaiting payment.", +"Subscription is active. - (1) If the subscription is an auto renewing plan, at least one item is auto_renew_enabled and not expired. - (2) If the subscription is a prepaid plan, at least one item is not expired.", +"Subscription is paused. The state is only available when the subscription is an auto renewing plan. In this state, all items are in paused state.", +"Subscription is in grace period. The state is only available when the subscription is an auto renewing plan. In this state, all items are in grace period.", +"Subscription is on hold (suspended). The state is only available when the subscription is an auto renewing plan. In this state, all items are on hold.", +"Subscription is canceled but not expired yet. The state is only available when the subscription is an auto renewing plan. All items have auto_renew_enabled set to false.", +"Subscription is expired. All items have expiry_time in the past.", +"Pending transaction for subscription is canceled. If this pending purchase was for an existing subscription, use linked_purchase_token to get the current state of that subscription." +], +"type": "string" +}, +"testPurchase": { +"$ref": "TestPurchase", +"description": "Only present if this subscription purchase is a test purchase." +} +}, +"type": "object" +}, +"SubscriptionPurchasesAcknowledgeRequest": { +"description": "Request for the purchases.subscriptions.acknowledge API.", +"id": "SubscriptionPurchasesAcknowledgeRequest", +"properties": { +"developerPayload": { +"description": "Payload to attach to the purchase.", +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionPurchasesDeferRequest": { +"description": "Request for the purchases.subscriptions.defer API.", +"id": "SubscriptionPurchasesDeferRequest", +"properties": { +"deferralInfo": { +"$ref": "SubscriptionDeferralInfo", +"description": "The information about the new desired expiry time for the subscription." +} +}, +"type": "object" +}, +"SubscriptionPurchasesDeferResponse": { +"description": "Response for the purchases.subscriptions.defer API.", +"id": "SubscriptionPurchasesDeferResponse", +"properties": { +"newExpiryTimeMillis": { +"description": "The new expiry time for the subscription in milliseconds since the Epoch.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionTaxAndComplianceSettings": { +"description": "Details about taxation, Google Play policy and legal compliance for subscription products.", +"id": "SubscriptionTaxAndComplianceSettings", +"properties": { +"eeaWithdrawalRightType": { +"description": "Digital content or service classification for products distributed to users in the European Economic Area (EEA). The withdrawal regime under EEA consumer laws depends on this classification. Refer to the [Help Center article](https://support.google.com/googleplay/android-developer/answer/10463498) for more information.", +"enum": [ +"WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED", +"WITHDRAWAL_RIGHT_DIGITAL_CONTENT", +"WITHDRAWAL_RIGHT_SERVICE" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"isTokenizedDigitalAsset": { +"description": "Whether this subscription is declared as a product representing a tokenized digital asset.", +"type": "boolean" +}, +"taxRateInfoByRegionCode": { +"additionalProperties": { +"$ref": "RegionalTaxRateInfo" +}, +"description": "A mapping from region code to tax rate details. The keys are region codes as defined by Unicode's \"CLDR\".", +"type": "object" +} +}, +"type": "object" +}, +"SystemApkOptions": { +"description": "Options for system APKs.", +"id": "SystemApkOptions", +"properties": { +"rotated": { +"description": "Whether to use the rotated key for signing the system APK.", +"type": "boolean" +}, +"uncompressedDexFiles": { +"description": "Whether system APK was generated with uncompressed dex files.", +"type": "boolean" +}, +"uncompressedNativeLibraries": { +"description": "Whether system APK was generated with uncompressed native libraries.", +"type": "boolean" +} +}, +"type": "object" +}, +"SystemApksListResponse": { +"description": "Response to list previously created system APK variants.", +"id": "SystemApksListResponse", +"properties": { +"variants": { +"description": "All system APK variants created.", +"items": { +"$ref": "Variant" +}, +"type": "array" +} +}, +"type": "object" +}, +"SystemFeature": { +"description": "Representation of a system feature.", +"id": "SystemFeature", +"properties": { +"name": { +"description": "The name of the feature.", +"type": "string" +} +}, +"type": "object" +}, +"SystemInitiatedCancellation": { +"description": "Information specific to cancellations initiated by Google system.", +"id": "SystemInitiatedCancellation", +"properties": {}, +"type": "object" +}, +"SystemOnChip": { +"description": "Representation of a System-on-Chip (SoC) of an Android device. Can be used to target S+ devices.", +"id": "SystemOnChip", +"properties": { +"manufacturer": { +"description": "Required. The designer of the SoC, eg. \"Google\" Value of build property \"ro.soc.manufacturer\" https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER Required.", +"type": "string" +}, +"model": { +"description": "Required. The model of the SoC, eg. \"Tensor\" Value of build property \"ro.soc.model\" https://developer.android.com/reference/android/os/Build#SOC_MODEL Required.", +"type": "string" +} +}, +"type": "object" +}, +"Targeting": { +"description": "Targeting details for a recovery action such as regions, android sdk levels, app versions etc.", +"id": "Targeting", +"properties": { +"allUsers": { +"$ref": "AllUsers", +"description": "All users are targeted." +}, +"androidSdks": { +"$ref": "AndroidSdks", +"description": "Targeting is based on android api levels of devices." +}, +"regions": { +"$ref": "Regions", +"description": "Targeting is based on the user account region." +}, +"versionList": { +"$ref": "AppVersionList", +"description": "Target version codes as a list." +}, +"versionRange": { +"$ref": "AppVersionRange", +"description": "Target version codes as a range." +} +}, +"type": "object" +}, +"TargetingInfo": { +"description": "Targeting information about the generated apks.", +"id": "TargetingInfo", +"properties": { +"assetSliceSet": { +"description": "List of created asset slices.", +"items": { +"$ref": "AssetSliceSet" +}, +"type": "array" +}, +"packageName": { +"description": "The package name of this app.", +"type": "string" +}, +"variant": { +"description": "List of the created variants.", +"items": { +"$ref": "SplitApkVariant" +}, +"type": "array" +} +}, +"type": "object" +}, +"TargetingRuleScope": { +"description": "Defines the scope of subscriptions which a targeting rule can match to target offers to users based on past or current entitlement.", +"id": "TargetingRuleScope", +"properties": { +"anySubscriptionInApp": { +"$ref": "TargetingRuleScopeAnySubscriptionInApp", +"description": "The scope of the current targeting rule is any subscription in the parent app." +}, +"specificSubscriptionInApp": { +"description": "The scope of the current targeting rule is the subscription with the specified subscription ID. Must be a subscription within the same parent app.", +"type": "string" +}, +"thisSubscription": { +"$ref": "TargetingRuleScopeThisSubscription", +"description": "The scope of the current targeting rule is the subscription in which this offer is defined." +} +}, +"type": "object" +}, +"TargetingRuleScopeAnySubscriptionInApp": { +"description": "Represents the targeting rule scope corresponding to any subscription in the parent app.", +"id": "TargetingRuleScopeAnySubscriptionInApp", +"properties": {}, +"type": "object" +}, +"TargetingRuleScopeThisSubscription": { +"description": "Represents the targeting rule scope corresponding to the subscriptions in which this offer is defined.", +"id": "TargetingRuleScopeThisSubscription", +"properties": {}, +"type": "object" +}, +"TargetingUpdate": { +"description": "Update type for targeting. Note it is always a subset Targeting.", +"id": "TargetingUpdate", +"properties": { +"allUsers": { +"$ref": "AllUsers", +"description": "All users are targeted." +}, +"androidSdks": { +"$ref": "AndroidSdks", +"description": "Additional android sdk levels are targeted by the recovery action." +}, +"regions": { +"$ref": "Regions", +"description": "Additional regions are targeted by the recovery action." +} +}, +"type": "object" +}, +"TestPurchase": { +"description": "Whether this subscription purchase is a test purchase.", +"id": "TestPurchase", +"properties": {}, +"type": "object" +}, +"Testers": { +"description": "The testers of an app. The resource for TestersService. Note: while it is possible in the Play Console UI to add testers via email lists, email lists are not supported by this resource.", +"id": "Testers", +"properties": { +"googleGroups": { +"description": "All testing Google Groups, as email addresses.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TextureCompressionFormat": { +"description": "Represents texture compression format.", +"id": "TextureCompressionFormat", +"properties": { +"alias": { +"description": "Alias for texture compression format.", +"enum": [ +"UNSPECIFIED_TEXTURE_COMPRESSION_FORMAT", +"ETC1_RGB8", +"PALETTED", +"THREE_DC", +"ATC", +"LATC", +"DXT1", +"S3TC", +"PVRTC", +"ASTC", +"ETC2" +], +"enumDescriptions": [ +"Unspecified format.", +"ETC1_RGB8 format.", +"PALETTED format.", +"THREE_DC format.", +"ATC format.", +"LATC format.", +"DXT1 format.", +"S3TC format.", +"PVRTC format.", +"ASTC format.", +"ETC2 format." +], +"type": "string" +} +}, +"type": "object" +}, +"TextureCompressionFormatTargeting": { +"description": "Targeting by a texture compression format.", +"id": "TextureCompressionFormatTargeting", +"properties": { +"alternatives": { +"description": "List of alternative TCFs (TCFs targeted by the sibling splits).", +"items": { +"$ref": "TextureCompressionFormat" +}, +"type": "array" +}, +"value": { +"description": "The list of targeted TCFs. Should not be empty.", +"items": { +"$ref": "TextureCompressionFormat" +}, +"type": "array" +} +}, +"type": "object" +}, +"Timestamp": { +"description": "A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970.", +"id": "Timestamp", +"properties": { +"nanos": { +"description": "Non-negative fractions of a second at nanosecond resolution. Must be from 0 to 999,999,999 inclusive.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Represents seconds of UTC time since Unix epoch.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"TokenPagination": { +"description": "Pagination information returned by a List operation when token pagination is enabled. List operations that supports paging return only one \"page\" of results. This protocol buffer message describes the page that has been returned. When using token pagination, clients should use the next/previous token to get another page of the result. The presence or absence of next/previous token indicates whether a next/previous page is available and provides a mean of accessing this page. ListRequest.page_token should be set to either next_page_token or previous_page_token to access another page.", +"id": "TokenPagination", +"properties": { +"nextPageToken": { +"description": "Tokens to pass to the standard list field 'page_token'. Whenever available, tokens are preferred over manipulating start_index.", +"type": "string" +}, +"previousPageToken": { +"type": "string" +} +}, +"type": "object" +}, +"Track": { +"description": "A track configuration. The resource for TracksService.", +"id": "Track", +"properties": { +"releases": { +"description": "In a read request, represents all active releases in the track. In an update request, represents desired changes.", +"items": { +"$ref": "TrackRelease" +}, +"type": "array" +}, +"track": { +"description": "Identifier of the track. Form factor tracks have a special prefix as an identifier, for example `wear:production`, `automotive:production`. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", +"type": "string" +} +}, +"type": "object" +}, +"TrackConfig": { +"description": "Configurations of the new track.", +"id": "TrackConfig", +"properties": { +"formFactor": { +"description": "Required. Form factor of the new track. Defaults to the default track.", +"enum": [ +"FORM_FACTOR_UNSPECIFIED", +"DEFAULT", +"WEAR", +"AUTOMOTIVE" +], +"enumDescriptions": [ +"Fallback value, do not use.", +"Default track.", +"Wear form factor track.", +"Automotive form factor track." +], +"type": "string" +}, +"track": { +"description": "Required. Identifier of the new track. For default tracks, this field consists of the track alias only. Form factor tracks have a special prefix as an identifier, for example `wear:production`, `automotive:production`. This prefix must match the value of the `form_factor` field, if it is not a default track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", +"type": "string" +}, +"type": { +"description": "Required. Type of the new track. Currently, the only supported value is closedTesting.", +"enum": [ +"TRACK_TYPE_UNSPECIFIED", +"CLOSED_TESTING" +], +"enumDescriptions": [ +"Fallback value, do not use.", +"Closed testing track." +], +"type": "string" +} +}, +"type": "object" +}, +"TrackCountryAvailability": { +"description": "Resource for per-track country availability information.", +"id": "TrackCountryAvailability", +"properties": { +"countries": { +"description": "A list of one or more countries where artifacts in this track are available. This list includes all countries that are targeted by the track, even if only specific carriers are targeted in that country.", +"items": { +"$ref": "TrackTargetedCountry" +}, +"type": "array" +}, +"restOfWorld": { +"description": "Whether artifacts in this track are available to \"rest of the world\" countries.", +"type": "boolean" +}, +"syncWithProduction": { +"description": "Whether this track's availability is synced with the default production track. See https://support.google.com/googleplay/android-developer/answer/7550024 for more information on syncing country availability with production. Note that if this is true, the returned \"countries\" and \"rest_of_world\" fields will reflect the values for the default production track.", +"type": "boolean" +} +}, +"type": "object" +}, +"TrackRelease": { +"description": "A release within a track.", +"id": "TrackRelease", +"properties": { +"countryTargeting": { +"$ref": "CountryTargeting", +"description": "Restricts a release to a specific set of countries." +}, +"inAppUpdatePriority": { +"description": "In-app update priority of the release. All newly added APKs in the release will be considered at this priority. Can take values in the range [0, 5], with 5 the highest priority. Defaults to 0. in_app_update_priority can not be updated once the release is rolled out. See https://developer.android.com/guide/playcore/in-app-updates.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The release name. Not required to be unique. If not set, the name is generated from the APK's version_name. If the release contains multiple APKs, the name is generated from the date.", +"type": "string" +}, +"releaseNotes": { +"description": "A description of what is new in this release.", +"items": { +"$ref": "LocalizedText" +}, +"type": "array" +}, +"status": { +"description": "The status of the release.", +"enum": [ +"statusUnspecified", +"draft", +"inProgress", +"halted", +"completed" +], +"enumDescriptions": [ +"Unspecified status.", +"The release's APKs are not being served to users.", +"The release's APKs are being served to a fraction of users, determined by 'user_fraction'.", +"The release's APKs will no longer be served to users. Users who already have these APKs are unaffected.", +"The release will have no further changes. Its APKs are being served to all users, unless they are eligible to APKs of a more recent release." +], +"type": "string" +}, +"userFraction": { +"description": "Fraction of users who are eligible for a staged release. 0 < fraction < 1. Can only be set when status is \"inProgress\" or \"halted\".", +"format": "double", +"type": "number" +}, +"versionCodes": { +"description": "Version codes of all APKs in the release. Must include version codes to retain from previous releases.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TrackTargetedCountry": { +"description": "Representation of a single country where the contents of a track are available.", +"id": "TrackTargetedCountry", +"properties": { +"countryCode": { +"description": "The country to target, as a two-letter CLDR code.", +"type": "string" +} +}, +"type": "object" +}, +"TracksListResponse": { +"description": "Response listing all tracks.", +"id": "TracksListResponse", +"properties": { +"kind": { +"description": "The kind of this response (\"androidpublisher#tracksListResponse\").", +"type": "string" +}, +"tracks": { +"description": "All tracks (including tracks with no releases).", +"items": { +"$ref": "Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateBasePlanStateRequest": { +"description": "Request message to update the state of a subscription base plan.", +"id": "UpdateBasePlanStateRequest", +"properties": { +"activateBasePlanRequest": { +"$ref": "ActivateBasePlanRequest", +"description": "Activates a base plan. Once activated, base plans will be available to new subscribers." +}, +"deactivateBasePlanRequest": { +"$ref": "DeactivateBasePlanRequest", +"description": "Deactivates a base plan. Once deactivated, the base plan will become unavailable to new subscribers, but existing subscribers will maintain their subscription" +} +}, +"type": "object" +}, +"UpdateSubscriptionOfferRequest": { +"description": "Request message for UpdateSubscriptionOffer.", +"id": "UpdateSubscriptionOfferRequest", +"properties": { +"allowMissing": { +"description": "Optional. If set to true, and the subscription offer with the given package_name, product_id, base_plan_id and offer_id doesn't exist, an offer will be created. If a new offer is created, update_mask is ignored.", +"type": "boolean" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"regionsVersion": { +"$ref": "RegionsVersion", +"description": "Required. The version of the available regions being used for the subscription_offer." +}, +"subscriptionOffer": { +"$ref": "SubscriptionOffer", +"description": "Required. The subscription offer to update." +}, +"updateMask": { +"description": "Required. The list of fields to be updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateSubscriptionOfferStateRequest": { +"description": "Request message to update the state of a subscription offer.", +"id": "UpdateSubscriptionOfferStateRequest", +"properties": { +"activateSubscriptionOfferRequest": { +"$ref": "ActivateSubscriptionOfferRequest", +"description": "Activates an offer. Once activated, the offer will be available to new subscribers." +}, +"deactivateSubscriptionOfferRequest": { +"$ref": "DeactivateSubscriptionOfferRequest", +"description": "Deactivates an offer. Once deactivated, the offer will become unavailable to new subscribers, but existing subscribers will maintain their subscription" +} +}, +"type": "object" +}, +"UpdateSubscriptionRequest": { +"description": "Request message for UpdateSubscription.", +"id": "UpdateSubscriptionRequest", +"properties": { +"allowMissing": { +"description": "Optional. If set to true, and the subscription with the given package_name and product_id doesn't exist, the subscription will be created. If a new subscription is created, update_mask is ignored.", +"type": "boolean" +}, +"latencyTolerance": { +"description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", +"enum": [ +"PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", +"PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" +], +"enumDescriptions": [ +"Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", +"The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", +"The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." +], +"type": "string" +}, +"regionsVersion": { +"$ref": "RegionsVersion", +"description": "Required. The version of the available regions being used for the subscription." +}, +"subscription": { +"$ref": "Subscription", +"description": "Required. The subscription to update." +}, +"updateMask": { +"description": "Required. The list of fields to be updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeTargetingRule": { +"description": "Represents a targeting rule of the form: User currently has {scope} [with billing period {billing_period}].", +"id": "UpgradeTargetingRule", +"properties": { +"billingPeriodDuration": { +"description": "The specific billing period duration, specified in ISO 8601 format, that a user must be currently subscribed to to be eligible for this rule. If not specified, users subscribed to any billing period are matched.", +"type": "string" +}, +"oncePerUser": { +"description": "Limit this offer to only once per user. If set to true, a user can never be eligible for this offer again if they ever subscribed to this offer.", +"type": "boolean" +}, +"scope": { +"$ref": "TargetingRuleScope", +"description": "Required. The scope of subscriptions this rule considers. Only allows \"this subscription\" and \"specific subscription in app\"." +} +}, +"type": "object" +}, +"User": { +"description": "A user resource.", +"id": "User", +"properties": { +"accessState": { +"description": "Output only. The state of the user's access to the Play Console.", +"enum": [ +"ACCESS_STATE_UNSPECIFIED", +"INVITED", +"INVITATION_EXPIRED", +"ACCESS_GRANTED", +"ACCESS_EXPIRED" +], +"enumDescriptions": [ +"Unknown or unspecified access state.", +"User is invited but has not yet accepted the invitation.", +"Invitation has expired.", +"User has accepted an invitation and has access to the Play Console.", +"Account access has expired." +], +"readOnly": true, +"type": "string" +}, +"developerAccountPermissions": { +"description": "Permissions for the user which apply across the developer account.", +"items": { +"enum": [ +"DEVELOPER_LEVEL_PERMISSION_UNSPECIFIED", +"CAN_SEE_ALL_APPS", +"CAN_VIEW_FINANCIAL_DATA_GLOBAL", +"CAN_MANAGE_PERMISSIONS_GLOBAL", +"CAN_EDIT_GAMES_GLOBAL", +"CAN_PUBLISH_GAMES_GLOBAL", +"CAN_REPLY_TO_REVIEWS_GLOBAL", +"CAN_MANAGE_PUBLIC_APKS_GLOBAL", +"CAN_MANAGE_TRACK_APKS_GLOBAL", +"CAN_MANAGE_TRACK_USERS_GLOBAL", +"CAN_MANAGE_PUBLIC_LISTING_GLOBAL", +"CAN_MANAGE_DRAFT_APPS_GLOBAL", +"CAN_CREATE_MANAGED_PLAY_APPS_GLOBAL", +"CAN_CHANGE_MANAGED_PLAY_SETTING_GLOBAL", +"CAN_MANAGE_ORDERS_GLOBAL", +"CAN_MANAGE_APP_CONTENT_GLOBAL", +"CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", +"CAN_VIEW_APP_QUALITY_GLOBAL", +"CAN_MANAGE_DEEPLINKS_GLOBAL" +], +"enumDeprecated": [ +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unknown or unspecified permission.", +"View app information and download bulk reports (read-only). Deprecated: Check CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL.", +"View financial data, orders, and cancellation survey responses.", +"Admin (all permissions).", +"Edit Play Games Services projects.", +"Publish Play Games Services projects.", +"Reply to reviews.", +"Release to production, exclude devices, and use app signing by Google Play.", +"Release to testing tracks.", +"Manage testing tracks and edit tester lists.", +"Manage store presence.", +"Create, edit, and delete draft apps.", +"Create and publish private apps to your organization.", +"Choose whether apps are public, or only available to your organization.", +"Manage orders and subscriptions.", +"Manage policy related pages on all apps for the developer.", +"View app information and download bulk reports (read-only).", +"View app quality information for all apps for the developer.", +"Manage the deep links setup for all apps for the developer." +], +"type": "string" +}, +"type": "array" +}, +"email": { +"description": "Immutable. The user's email address.", +"type": "string" +}, +"expirationTime": { +"description": "The time at which the user's access expires, if set. When setting this value, it must always be in the future.", +"format": "google-datetime", +"type": "string" +}, +"grants": { +"description": "Output only. Per-app permissions for the user.", +"items": { +"$ref": "Grant" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Required. Resource name for this user, following the pattern \"developers/{developer}/users/{email}\".", +"type": "string" +}, +"partial": { +"description": "Output only. Whether there are more permissions for the user that are not represented here. This can happen if the caller does not have permission to manage all apps in the account. This is also `true` if this user is the account owner. If this field is `true`, it should be taken as a signal that this user cannot be fully managed via the API. That is, the API caller is not be able to manage all of the permissions this user holds, either because it doesn't know about them or because the user is the account owner.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"UserComment": { +"description": "User entry from conversation between user and developer.", +"id": "UserComment", +"properties": { +"androidOsVersion": { +"description": "Integer Android SDK version of the user's device at the time the review was written, e.g. 23 is Marshmallow. May be absent.", +"format": "int32", +"type": "integer" +}, +"appVersionCode": { +"description": "Integer version code of the app as installed at the time the review was written. May be absent.", +"format": "int32", +"type": "integer" +}, +"appVersionName": { +"description": "String version name of the app as installed at the time the review was written. May be absent.", +"type": "string" +}, +"device": { +"description": "Codename for the reviewer's device, e.g. klte, flounder. May be absent.", +"type": "string" +}, +"deviceMetadata": { +"$ref": "DeviceMetadata", +"description": "Information about the characteristics of the user's device." +}, +"lastModified": { +"$ref": "Timestamp", +"description": "The last time at which this comment was updated." +}, +"originalText": { +"description": "Untranslated text of the review, where the review was translated. If the review was not translated this is left blank.", +"type": "string" +}, +"reviewerLanguage": { +"description": "Language code for the reviewer. This is taken from the device settings so is not guaranteed to match the language the review is written in. May be absent.", +"type": "string" +}, +"starRating": { +"description": "The star rating associated with the review, from 1 to 5.", +"format": "int32", +"type": "integer" +}, +"text": { +"description": "The content of the comment, i.e. review body. In some cases users have been able to write a review with separate title and body; in those cases the title and body are concatenated and separated by a tab character.", +"type": "string" +}, +"thumbsDownCount": { +"description": "Number of users who have given this review a thumbs down.", +"format": "int32", +"type": "integer" +}, +"thumbsUpCount": { +"description": "Number of users who have given this review a thumbs up.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UserCountriesTargeting": { +"description": "Describes an inclusive/exclusive list of country codes that module targets.", +"id": "UserCountriesTargeting", +"properties": { +"countryCodes": { +"description": "List of country codes in the two-letter CLDR territory format.", +"items": { +"type": "string" +}, +"type": "array" +}, +"exclude": { +"description": "Indicates if the list above is exclusive.", +"type": "boolean" +} +}, +"type": "object" +}, +"UserCountrySet": { +"description": "A set of user countries. A country set determines what variation of app content gets served to a specific location.", +"id": "UserCountrySet", +"properties": { +"countryCodes": { +"description": "List of country codes representing countries. A Country code is represented in ISO 3166 alpha-2 format. For Example:- \"IT\" for Italy, \"GE\" for Georgia.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Country set name.", +"type": "string" +} +}, +"type": "object" +}, +"UserInitiatedCancellation": { +"description": "Information specific to cancellations initiated by users.", +"id": "UserInitiatedCancellation", +"properties": { +"cancelSurveyResult": { +"$ref": "CancelSurveyResult", +"description": "Information provided by the user when they complete the subscription cancellation flow (cancellation reason survey)." +}, +"cancelTime": { +"description": "The time at which the subscription was canceled by the user. The user might still have access to the subscription after this time. Use line_items.expiry_time to determine if a user still has access.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UsesPermission": { +"description": "A permission used by this APK.", +"id": "UsesPermission", +"properties": { +"maxSdkVersion": { +"description": "Optionally, the maximum SDK version for which the permission is required.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of the permission requested.", +"type": "string" +} +}, +"type": "object" +}, +"VanityCode": { +"description": "A multiple use, predefined promotion code.", +"id": "VanityCode", +"properties": { +"promotionCode": { +"description": "The promotion code.", +"type": "string" +} +}, +"type": "object" +}, +"Variant": { +"description": "APK that is suitable for inclusion in a system image. The resource of SystemApksService.", +"id": "Variant", +"properties": { +"deviceSpec": { +"$ref": "DeviceSpec", +"description": "The device spec used to generate the APK." +}, +"options": { +"$ref": "SystemApkOptions", +"description": "Optional. Options applied to the generated APK." +}, +"variantId": { +"description": "Output only. The ID of a previously created system APK variant.", +"format": "uint32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"VariantTargeting": { +"description": "Targeting on the level of variants.", +"id": "VariantTargeting", +"properties": { +"abiTargeting": { +"$ref": "AbiTargeting", +"description": "The abi that the variant targets" +}, +"multiAbiTargeting": { +"$ref": "MultiAbiTargeting", +"description": "Multi-api-level targeting" +}, +"screenDensityTargeting": { +"$ref": "ScreenDensityTargeting", +"description": "The screen densities that this variant supports" +}, +"sdkVersionTargeting": { +"$ref": "SdkVersionTargeting", +"description": "The sdk version that the variant targets" +}, +"textureCompressionFormatTargeting": { +"$ref": "TextureCompressionFormatTargeting", +"description": "Texture-compression-format-level targeting" +} +}, +"type": "object" +}, +"VoidedPurchase": { +"description": "A VoidedPurchase resource indicates a purchase that was either canceled/refunded/charged-back.", +"id": "VoidedPurchase", +"properties": { +"kind": { +"description": "This kind represents a voided purchase object in the androidpublisher service.", +"type": "string" +}, +"orderId": { +"description": "The order id which uniquely identifies a one-time purchase, subscription purchase, or subscription renewal.", +"type": "string" +}, +"purchaseTimeMillis": { +"description": "The time at which the purchase was made, in milliseconds since the epoch (Jan 1, 1970).", +"format": "int64", +"type": "string" +}, +"purchaseToken": { +"description": "The token which uniquely identifies a one-time purchase or subscription. To uniquely identify subscription renewals use order_id (available starting from version 3 of the API).", +"type": "string" +}, +"voidedQuantity": { +"description": "The voided quantity as the result of a quantity-based partial refund. Voided purchases of quantity-based partial refunds may only be returned when includeQuantityBasedPartialRefund is set to true.", +"format": "int32", +"type": "integer" +}, +"voidedReason": { +"description": "The reason why the purchase was voided, possible values are: 0. Other 1. Remorse 2. Not_received 3. Defective 4. Accidental_purchase 5. Fraud 6. Friendly_fraud 7. Chargeback 8. Unacknowledged_purchase", +"format": "int32", +"type": "integer" +}, +"voidedSource": { +"description": "The initiator of voided purchase, possible values are: 0. User 1. Developer 2. Google", +"format": "int32", +"type": "integer" +}, +"voidedTimeMillis": { +"description": "The time at which the purchase was canceled/refunded/charged-back, in milliseconds since the epoch (Jan 1, 1970).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"VoidedPurchasesListResponse": { +"description": "Response for the voidedpurchases.list API.", +"id": "VoidedPurchasesListResponse", +"properties": { +"pageInfo": { +"$ref": "PageInfo", +"description": "General pagination information." +}, +"tokenPagination": { +"$ref": "TokenPagination", +"description": "Pagination information for token pagination." +}, +"voidedPurchases": { +"items": { +"$ref": "VoidedPurchase" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Play Android Developer API", +"version": "v3" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta4.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta4.json new file mode 100644 index 0000000000000000000000000000000000000000..ad9a222df11f74ca40fb23b478d068a29e63b208 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta4.json @@ -0,0 +1,2469 @@ +{ + "batchPath": "batch", + "id": "appengine:v1beta4", + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "revision": "20181218", + "title": "App Engine Admin API", + "ownerName": "Google", + "discoveryVersion": "v1", + "resources": { + "apps": { + "methods": { + "get": { + "response": { + "$ref": "Application" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "parameters": { + "ensureResourcesExist": { + "description": "Certain resources associated with an application are created on-demand. Controls whether these resources should be created when performing the GET operation. If specified and any resources could not be created, the request will fail with an error code. Additionally, this parameter can cause the request to take longer to complete.", + "type": "boolean", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the application to get. Example: apps/myapp.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}", + "path": "v1beta4/apps/{appsId}", + "id": "appengine.apps.get", + "description": "Gets information about an application." + }, + "patch": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "PATCH", + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", + "required": true, + "type": "string" + }, + "mask": { + "location": "query", + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}", + "path": "v1beta4/apps/{appsId}", + "id": "appengine.apps.patch", + "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.auth_domain)\ndefault_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.default_cookie_expiration)", + "request": { + "$ref": "Application" + } + }, + "create": { + "request": { + "$ref": "Application" + }, + "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1beta4/apps", + "path": "v1beta4/apps", + "id": "appengine.apps.create" + } + }, + "resources": { + "modules": { + "methods": { + "get": { + "description": "Gets the current configuration of the specified module.", + "response": { + "$ref": "Module" + }, + "parameterOrder": [ + "appsId", + "modulesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}", + "id": "appengine.apps.modules.get" + }, + "list": { + "description": "Lists all the modules in the application.", + "httpMethod": "GET", + "response": { + "$ref": "ListModulesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "parameters": { + "appsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp." + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/modules", + "id": "appengine.apps.modules.list", + "path": "v1beta4/apps/{appsId}/modules" + }, + "patch": { + "description": "Updates the configuration of the specified module.", + "request": { + "$ref": "Module" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "modulesId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default.", + "required": true, + "type": "string", + "location": "path" + }, + "migrateTraffic": { + "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules#shardby) field in the Module resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", + "type": "boolean", + "location": "query" + }, + "modulesId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "mask": { + "location": "query", + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", + "id": "appengine.apps.modules.patch", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}" + }, + "delete": { + "parameters": { + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", + "id": "appengine.apps.modules.delete", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}", + "description": "Deletes the specified module and all enclosed versions.", + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "modulesId" + ], + "response": { + "$ref": "Operation" + } + } + }, + "resources": { + "versions": { + "methods": { + "get": { + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "id": "appengine.apps.modules.versions.get", + "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", + "response": { + "$ref": "Version" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", + "required": true, + "type": "string", + "location": "path" + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "view": { + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the Get response.", + "type": "string", + "location": "query" + } + } + }, + "list": { + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", + "id": "appengine.apps.modules.versions.list", + "description": "Lists the versions of a module.", + "response": { + "$ref": "ListVersionsResponse" + }, + "parameterOrder": [ + "appsId", + "modulesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", + "required": true, + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Maximum results to return per page.", + "format": "int32", + "type": "integer" + }, + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the List response.", + "type": "string" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions" + }, + "patch": { + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "id": "appengine.apps.modules.versions.patch", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.", + "request": { + "$ref": "Version" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default/versions/1.", + "required": true, + "type": "string", + "location": "path" + }, + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "mask": { + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "request": { + "$ref": "Version" + }, + "description": "Deploys code and resource files to a new version.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "modulesId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default.", + "required": true, + "type": "string" + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", + "id": "appengine.apps.modules.versions.create" + }, + "delete": { + "id": "appengine.apps.modules.versions.delete", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "description": "Deletes an existing version.", + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}" + } + }, + "resources": { + "instances": { + "methods": { + "debug": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId", + "instancesId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", + "required": true, + "type": "string", + "location": "path" + }, + "instancesId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}:debug", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}:debug", + "id": "appengine.apps.modules.versions.instances.debug", + "request": { + "$ref": "DebugInstanceRequest" + }, + "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment." + }, + "delete": { + "description": "Stops a running instance.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId", + "instancesId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", + "required": true, + "type": "string", + "location": "path" + }, + "instancesId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "modulesId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.modules.versions.instances.delete" + }, + "get": { + "response": { + "$ref": "Instance" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId", + "instancesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", + "required": true, + "type": "string", + "location": "path" + }, + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "modulesId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.modules.versions.instances.get", + "description": "Gets instance information." + }, + "list": { + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances", + "id": "appengine.apps.modules.versions.instances.list", + "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).", + "response": { + "$ref": "ListInstancesResponse" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "httpMethod": "GET", + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", + "required": true, + "type": "string", + "location": "path" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Maximum results to return per page.", + "format": "int32", + "type": "integer" + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances" + } + } + } + } + } + } + }, + "operations": { + "methods": { + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "parameters": { + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + }, + "appsId": { + "description": "Part of `name`. The name of the operation's parent resource.", + "required": true, + "type": "string", + "location": "path" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/operations", + "path": "v1beta4/apps/{appsId}/operations", + "id": "appengine.apps.operations.list" + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "httpMethod": "GET", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "operationsId" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. The name of the operation resource.", + "required": true, + "type": "string", + "location": "path" + }, + "operationsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/operations/{operationsId}", + "id": "appengine.apps.operations.get", + "path": "v1beta4/apps/{appsId}/operations/{operationsId}" + } + } + }, + "locations": { + "methods": { + "list": { + "description": "Lists information about the supported locations for this service.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "ListLocationsResponse" + }, + "parameters": { + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. The resource that owns the locations collection, if applicable.", + "required": true, + "type": "string" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/locations", + "id": "appengine.apps.locations.list", + "path": "v1beta4/apps/{appsId}/locations" + }, + "get": { + "response": { + "$ref": "Location" + }, + "parameterOrder": [ + "appsId", + "locationsId" + ], + "httpMethod": "GET", + "parameters": { + "locationsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Resource name for the location.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/locations/{locationsId}", + "path": "v1beta4/apps/{appsId}/locations/{locationsId}", + "id": "appengine.apps.locations.get", + "description": "Gets information about a location." + } + } + } + } + } + }, + "parameters": { + "upload_protocol": { + "type": "string", + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "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" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + } + }, + "schemas": { + "ListInstancesResponse": { + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "instances": { + "description": "The instances belonging to the requested version.", + "type": "array", + "items": { + "$ref": "Instance" + } + } + }, + "id": "ListInstancesResponse", + "description": "Response message for Instances.ListInstances.", + "type": "object" + }, + "OperationMetadataV1Alpha": { + "id": "OperationMetadataV1Alpha", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, + "insertTime": { + "description": "Time that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "description": "Time that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "createVersionMetadata": { + "$ref": "CreateVersionMetadataV1Alpha" + } + } + }, + "UrlDispatchRule": { + "id": "UrlDispatchRule", + "description": "Rules to match an HTTP request and dispatch that request to a module.", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters." + }, + "domain": { + "description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", + "type": "string" + }, + "module": { + "description": "Resource ID of a module in this application that should serve the matched request. The module must already exist. Example: default.", + "type": "string" + } + } + }, + "ListVersionsResponse": { + "description": "Response message for Versions.ListVersions.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "versions": { + "description": "The versions belonging to the requested module.", + "type": "array", + "items": { + "$ref": "Version" + } + } + }, + "id": "ListVersionsResponse" + }, + "Module": { + "description": "A Module resource is a logical component of an application that can share state and communicate in a secure fashion with other modules. For example, an application that handles customer requests might include separate modules to handle tasks such as backend data analysis or API requests from mobile devices. Each module has a collection of versions that define a specific set of code used to implement the functionality of that module.", + "type": "object", + "properties": { + "name": { + "description": "Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly", + "type": "string" + }, + "split": { + "$ref": "TrafficSplit", + "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the module." + }, + "id": { + "type": "string", + "description": "Relative name of the module within the application. Example: default.@OutputOnly" + } + }, + "id": "Module" + }, + "ApiEndpointHandler": { + "description": "Uses Google Cloud Endpoints to handle requests.", + "type": "object", + "properties": { + "scriptPath": { + "type": "string", + "description": "Path to the script from the application root directory." + } + }, + "id": "ApiEndpointHandler" + }, + "StaticDirectoryHandler": { + "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static directory handlers make it easy to serve the entire contents of a directory as static files.", + "type": "object", + "properties": { + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static directory handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, + "httpHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "HTTP headers to use for all responses from these URLs.", + "type": "object" + }, + "directory": { + "description": "Path to the directory containing the static files from the application root directory. Everything after the end of the matched URL pattern is appended to static_dir to form the full path to the requested file.", + "type": "string" + }, + "mimeType": { + "description": "MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are direved from each file's filename extension.", + "type": "string" + }, + "requireMatchingFile": { + "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", + "type": "boolean" + }, + "expiration": { + "description": "Time a static file served by this handler should be cached.", + "format": "google-duration", + "type": "string" + } + }, + "id": "StaticDirectoryHandler" + }, + "AutomaticScaling": { + "properties": { + "minTotalInstances": { + "type": "integer", + "description": "Minimum number of instances that should be maintained for this version.", + "format": "int32" + }, + "networkUtilization": { + "$ref": "NetworkUtilization", + "description": "Target scaling by network usage." + }, + "maxConcurrentRequests": { + "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", + "format": "int32", + "type": "integer" + }, + "coolDownPeriod": { + "type": "string", + "description": "The time period that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. Only applicable in the App Engine flexible environment.", + "format": "google-duration" + }, + "maxPendingLatency": { + "type": "string", + "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", + "format": "google-duration" + }, + "cpuUtilization": { + "$ref": "CpuUtilization", + "description": "Target scaling by CPU usage." + }, + "diskUtilization": { + "$ref": "DiskUtilization", + "description": "Target scaling by disk usage." + }, + "minPendingLatency": { + "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", + "format": "google-duration", + "type": "string" + }, + "requestUtilization": { + "$ref": "RequestUtilization", + "description": "Target scaling by request utilization." + }, + "maxIdleInstances": { + "description": "Maximum number of idle instances that should be maintained for this version.", + "format": "int32", + "type": "integer" + }, + "minIdleInstances": { + "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.", + "format": "int32", + "type": "integer" + }, + "maxTotalInstances": { + "type": "integer", + "description": "Maximum number of instances that should be started to handle requests.", + "format": "int32" + } + }, + "id": "AutomaticScaling", + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "type": "object" + }, + "Library": { + "type": "object", + "properties": { + "version": { + "description": "Version of the library to select, or \"latest\".", + "type": "string" + }, + "name": { + "description": "Name of the library. Example: \"django\".", + "type": "string" + } + }, + "id": "Library", + "description": "Third-party Python runtime library that is required by the application." + }, + "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Location" + } + } + }, + "id": "ListLocationsResponse" + }, + "ContainerInfo": { + "properties": { + "image": { + "description": "URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: \"gcr.io/my-project/image:tag\" or \"gcr.io/my-project/image@digest\"", + "type": "string" + } + }, + "id": "ContainerInfo", + "description": "Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment.", + "type": "object" + }, + "RequestUtilization": { + "description": "Target scaling by request utilization. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "targetRequestCountPerSec": { + "description": "Target requests per second.", + "format": "int32", + "type": "integer" + }, + "targetConcurrentRequests": { + "description": "Target number of concurrent requests.", + "format": "int32", + "type": "integer" + } + }, + "id": "RequestUtilization" + }, + "UrlMap": { + "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code, or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", + "type": "object", + "properties": { + "securityLevel": { + "enumDescriptions": [ + "Not specified.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used, and respond accordingly.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly.", + "Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect." + ], + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ], + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string" + }, + "authFailAction": { + "type": "string", + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with a 401 HTTP status code and an error message." + ], + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect." + }, + "script": { + "$ref": "ScriptHandler", + "description": "Executes a script to handle the request that matches this URL pattern." + }, + "urlRegex": { + "description": "A URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", + "type": "string" + }, + "login": { + "description": "Level of login required to access this resource.", + "type": "string", + "enumDescriptions": [ + "Not specified. LOGIN_OPTIONAL is assumed.", + "Does not require that the user is signed in.", + "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", + "If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." + ], + "enum": [ + "LOGIN_UNSPECIFIED", + "LOGIN_OPTIONAL", + "LOGIN_ADMIN", + "LOGIN_REQUIRED" + ] + }, + "apiEndpoint": { + "$ref": "ApiEndpointHandler", + "description": "Uses API Endpoints to handle requests." + }, + "staticDirectory": { + "description": "Serves the entire contents of a directory as static files.This attribute is deprecated. You can mimic the behavior of static directories using static files.", + "$ref": "StaticDirectoryHandler" + }, + "staticFiles": { + "description": "Returns the contents of a file, such as an image, as the response.", + "$ref": "StaticFilesHandler" + }, + "redirectHttpResponseCode": { + "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", + "type": "string", + "enumDescriptions": [ + "Not specified. 302 is assumed.", + "301 Moved Permanently code.", + "302 Moved Temporarily code.", + "303 See Other code.", + "307 Temporary Redirect code." + ], + "enum": [ + "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED", + "REDIRECT_HTTP_RESPONSE_CODE_301", + "REDIRECT_HTTP_RESPONSE_CODE_302", + "REDIRECT_HTTP_RESPONSE_CODE_303", + "REDIRECT_HTTP_RESPONSE_CODE_307" + ] + } + }, + "id": "UrlMap" + }, + "EndpointsApiService": { + "description": "Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments..The fields here refer to the name and configuration id of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", + "type": "object", + "properties": { + "name": { + "description": "Endpoints service name which is the name of the \"service\" resource in the Service Management API. For example \"myapi.endpoints.myproject.cloud.goog\"", + "type": "string" + }, + "configId": { + "type": "string", + "description": "Endpoints service configuration id as specified by the Service Management API. For example \"2016-09-19r1\"By default, the Endpoints service configuration id is fixed and config_id must be specified. To keep the Endpoints service configuration id updated with each rollout, specify RolloutStrategy.MANAGED and omit config_id." + }, + "disableTraceSampling": { + "description": "Enable or disable trace sampling. By default, this is set to false for enabled.", + "type": "boolean" + }, + "rolloutStrategy": { + "type": "string", + "enumDescriptions": [ + "Not specified. Defaults to FIXED.", + "Endpoints service configuration id will be fixed to the configuration id specified by config_id.", + "Endpoints service configuration id will be updated with each rollout." + ], + "enum": [ + "UNSPECIFIED_ROLLOUT_STRATEGY", + "FIXED", + "MANAGED" + ], + "description": "Endpoints rollout strategy. If FIXED, config_id must be specified. If MANAGED, config_id must be omitted." + } + }, + "id": "EndpointsApiService" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "type": "object", + "properties": { + "done": { + "description": "If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.", + "type": "boolean" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.", + "type": "string" + }, + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any." + } + }, + "id": "Operation" + }, + "ApiConfigHandler": { + "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", + "type": "object", + "properties": { + "securityLevel": { + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ], + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string", + "enumDescriptions": [ + "Not specified.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used, and respond accordingly.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly.", + "Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect." + ] + }, + "authFailAction": { + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with a 401 HTTP status code and an error message." + ], + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string" + }, + "script": { + "description": "Path to the script from the application root directory.", + "type": "string" + }, + "login": { + "enum": [ + "LOGIN_UNSPECIFIED", + "LOGIN_OPTIONAL", + "LOGIN_ADMIN", + "LOGIN_REQUIRED" + ], + "description": "Level of login required to access this resource. Defaults to optional.", + "type": "string", + "enumDescriptions": [ + "Not specified. LOGIN_OPTIONAL is assumed.", + "Does not require that the user is signed in.", + "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", + "If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." + ] + }, + "url": { + "description": "URL to serve the endpoint at.", + "type": "string" + } + }, + "id": "ApiConfigHandler" + }, + "StaticFilesHandler": { + "type": "object", + "properties": { + "expiration": { + "type": "string", + "description": "Time a static file served by this handler should be cached.", + "format": "google-duration" + }, + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, + "httpHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "HTTP headers to use for all responses from these URLs.", + "type": "object" + }, + "uploadPathRegex": { + "type": "string", + "description": "Regular expression that matches the file paths for all files that should be referenced by this handler." + }, + "path": { + "type": "string", + "description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern." + }, + "mimeType": { + "description": "MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.", + "type": "string" + }, + "requireMatchingFile": { + "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", + "type": "boolean" + } + }, + "id": "StaticFilesHandler", + "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them." + }, + "BasicScaling": { + "description": "A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", + "type": "object", + "properties": { + "maxInstances": { + "description": "Maximum number of instances to create for this version.", + "format": "int32", + "type": "integer" + }, + "idleTimeout": { + "description": "Duration of time after the last request that an instance must wait before the instance is shut down.", + "format": "google-duration", + "type": "string" + } + }, + "id": "BasicScaling" + }, + "DiskUtilization": { + "type": "object", + "properties": { + "targetReadBytesPerSec": { + "description": "Target bytes read per second.", + "format": "int32", + "type": "integer" + }, + "targetWriteOpsPerSec": { + "description": "Target ops written per second.", + "format": "int32", + "type": "integer" + }, + "targetWriteBytesPerSec": { + "type": "integer", + "description": "Target bytes written per second.", + "format": "int32" + }, + "targetReadOpsPerSec": { + "description": "Target ops read per second.", + "format": "int32", + "type": "integer" + } + }, + "id": "DiskUtilization", + "description": "Target scaling by disk usage. Only applicable for VM runtimes." + }, + "CpuUtilization": { + "type": "object", + "properties": { + "aggregationWindowLength": { + "description": "Period of time over which CPU utilization is calculated.", + "format": "google-duration", + "type": "string" + }, + "targetUtilization": { + "description": "Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.", + "format": "double", + "type": "number" + } + }, + "id": "CpuUtilization", + "description": "Target scaling by CPU usage." + }, + "Status": { + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + }, + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + } + }, + "id": "Status", + "description": "The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons." + }, + "IdentityAwareProxy": { + "description": "Identity-Aware Proxy", + "type": "object", + "properties": { + "enabled": { + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.", + "type": "boolean" + }, + "oauth2ClientSecret": { + "description": "For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly", + "type": "string" + }, + "oauth2ClientId": { + "description": "OAuth2 client ID to use for the authentication flow.", + "type": "string" + }, + "oauth2ClientSecretSha256": { + "description": "Hex-encoded SHA-256 hash of the client secret.@OutputOnly", + "type": "string" + } + }, + "id": "IdentityAwareProxy" + }, + "ManualScaling": { + "properties": { + "instances": { + "description": "Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.", + "format": "int32", + "type": "integer" + } + }, + "id": "ManualScaling", + "description": "A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "type": "object" + }, + "LocationMetadata": { + "description": "Metadata for the given google.cloud.location.Location.", + "type": "object", + "properties": { + "flexibleEnvironmentAvailable": { + "description": "App Engine flexible environment is available in the given location.@OutputOnly", + "type": "boolean" + }, + "standardEnvironmentAvailable": { + "description": "App Engine standard environment is available in the given location.@OutputOnly", + "type": "boolean" + } + }, + "id": "LocationMetadata" + }, + "CreateVersionMetadataV1": { + "id": "CreateVersionMetadataV1", + "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1.CreateVersionRequest.", + "type": "object", + "properties": { + "cloudBuildId": { + "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", + "type": "string" + } + } + }, + "ListOperationsResponse": { + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Operation" + } + } + }, + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations.", + "type": "object" + }, + "OperationMetadata": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "insertTime": { + "description": "Timestamp that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "type": "string", + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "description": "Timestamp that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "operationType": { + "type": "string", + "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly" + } + }, + "id": "OperationMetadata" + }, + "CreateVersionMetadataV1Beta": { + "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1beta.CreateVersionRequest.", + "type": "object", + "properties": { + "cloudBuildId": { + "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", + "type": "string" + } + }, + "id": "CreateVersionMetadataV1Beta" + }, + "OperationMetadataV1": { + "type": "object", + "properties": { + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "type": "string", + "description": "Time that this operation completed.@OutputOnly", + "format": "google-datetime" + }, + "createVersionMetadata": { + "$ref": "CreateVersionMetadataV1" + }, + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, + "insertTime": { + "type": "string", + "description": "Time that this operation was created.@OutputOnly", + "format": "google-datetime" + } + }, + "id": "OperationMetadataV1", + "description": "Metadata for the given google.longrunning.Operation." + }, + "ErrorHandler": { + "properties": { + "errorCode": { + "enum": [ + "ERROR_CODE_UNSPECIFIED", + "ERROR_CODE_DEFAULT", + "ERROR_CODE_OVER_QUOTA", + "ERROR_CODE_DOS_API_DENIAL", + "ERROR_CODE_TIMEOUT" + ], + "description": "Error condition this handler applies to.", + "type": "string", + "enumDescriptions": [ + "Not specified. ERROR_CODE_DEFAULT is assumed.", + "All other error types.", + "Application has exceeded a resource quota.", + "Client blocked by the application's Denial of Service protection configuration.", + "Deadline reached before the application responds." + ] + }, + "mimeType": { + "description": "MIME type of file. Defaults to text/html.", + "type": "string" + }, + "staticFile": { + "description": "Static file content to be served for this error.", + "type": "string" + } + }, + "id": "ErrorHandler", + "description": "Custom static error page to be served when an error occurs.", + "type": "object" + }, + "Application": { + "type": "object", + "properties": { + "codeBucket": { + "description": "Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly", + "type": "string" + }, + "location": { + "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", + "type": "string" + }, + "defaultBucket": { + "type": "string", + "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly" + }, + "dispatchRules": { + "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a module or version. Rules are order-dependent.@OutputOnly", + "type": "array", + "items": { + "$ref": "UrlDispatchRule" + } + }, + "defaultHostname": { + "description": "Hostname used to reach the application, as resolved by App Engine.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", + "type": "string" + }, + "authDomain": { + "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", + "type": "string" + }, + "iap": { + "$ref": "IdentityAwareProxy" + }, + "defaultCookieExpiration": { + "type": "string", + "description": "Cookie expiration policy for this application.", + "format": "google-duration" + }, + "id": { + "type": "string", + "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp." + } + }, + "id": "Application", + "description": "An Application resource contains the top-level configuration of an App Engine application." + }, + "Network": { + "description": "Extra network settings. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "name": { + "description": "Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.", + "type": "string" + }, + "forwardedPorts": { + "description": "List of ports, or port pairs, to forward from the virtual machine to the application container.", + "type": "array", + "items": { + "type": "string" + } + }, + "instanceTag": { + "type": "string", + "description": "Tag to apply to the VM instance during creation." + } + }, + "id": "Network" + }, + "Instance": { + "id": "Instance", + "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", + "type": "object", + "properties": { + "appEngineRelease": { + "description": "App Engine release this instance is running on.@OutputOnly", + "type": "string" + }, + "startTimestamp": { + "description": "Time that this instance was started.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "vmName": { + "type": "string", + "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly" + }, + "vmId": { + "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "qps": { + "description": "Average queries per second (QPS) over the last minute.@OutputOnly", + "format": "float", + "type": "number" + }, + "vmUnlocked": { + "description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "boolean" + }, + "name": { + "description": "Full path to the Instance resource in the API. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.@OutputOnly", + "type": "string" + }, + "vmZoneName": { + "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "averageLatency": { + "description": "Average latency (ms) over the last minute.@OutputOnly", + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string", + "description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly" + }, + "memoryUsage": { + "description": "Total memory in use (bytes).@OutputOnly", + "format": "int64", + "type": "string" + }, + "vmIp": { + "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "errors": { + "description": "Number of errors since this instance was started.@OutputOnly", + "format": "uint32", + "type": "integer" + }, + "availability": { + "enumDescriptions": [ + "", + "", + "" + ], + "enum": [ + "UNSPECIFIED", + "RESIDENT", + "DYNAMIC" + ], + "description": "Availability of the instance.@OutputOnly", + "type": "string" + }, + "vmStatus": { + "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "requests": { + "description": "Number of requests since this instance was started.@OutputOnly", + "format": "int32", + "type": "integer" + } + } + }, + "NetworkUtilization": { + "description": "Target scaling by network usage. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "targetReceivedBytesPerSec": { + "description": "Target bytes received per second.", + "format": "int32", + "type": "integer" + }, + "targetSentPacketsPerSec": { + "description": "Target packets sent per second.", + "format": "int32", + "type": "integer" + }, + "targetSentBytesPerSec": { + "description": "Target bytes sent per second.", + "format": "int32", + "type": "integer" + }, + "targetReceivedPacketsPerSec": { + "description": "Target packets received per second.", + "format": "int32", + "type": "integer" + } + }, + "id": "NetworkUtilization" + }, + "Location": { + "properties": { + "metadata": { + "description": "Service-specific metadata. For example the available capacity at the given location.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", + "type": "string" + }, + "locationId": { + "type": "string", + "description": "The canonical id for this location. For example: \"us-east1\"." + }, + "displayName": { + "type": "string", + "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\"." + } + }, + "id": "Location", + "description": "A resource that represents Google Cloud Platform location.", + "type": "object" + }, + "HealthCheck": { + "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", + "type": "object", + "properties": { + "healthyThreshold": { + "description": "Number of consecutive successful health checks required before receiving traffic.", + "format": "uint32", + "type": "integer" + }, + "restartThreshold": { + "description": "Number of consecutive failed health checks required before an instance is restarted.", + "format": "uint32", + "type": "integer" + }, + "checkInterval": { + "description": "Interval between health checks.", + "format": "google-duration", + "type": "string" + }, + "timeout": { + "description": "Time before the health check is considered failed.", + "format": "google-duration", + "type": "string" + }, + "unhealthyThreshold": { + "description": "Number of consecutive failed health checks required before removing traffic.", + "format": "uint32", + "type": "integer" + }, + "disableHealthCheck": { + "description": "Whether to explicitly disable health checks for this instance.", + "type": "boolean" + }, + "host": { + "description": "Host header to send when performing an HTTP health check. Example: \"myapp.appspot.com\"", + "type": "string" + } + }, + "id": "HealthCheck" + }, + "SourceReference": { + "description": "Reference to a particular snapshot of the source tree used to build and deploy the application.", + "type": "object", + "properties": { + "repository": { + "description": "URI string identifying the repository. Example: \"https://source.developers.google.com/p/app-123/r/default\"", + "type": "string" + }, + "revisionId": { + "description": "The canonical, persistent identifier of the deployed revision. Aliases that include tags or branch names are not allowed. Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"", + "type": "string" + } + }, + "id": "SourceReference" + }, + "DebugInstanceRequest": { + "description": "Request message for Instances.DebugInstance.", + "type": "object", + "properties": { + "sshKey": { + "description": "Public SSH key to add to the instance. Examples:\n[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]\n[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).", + "type": "string" + } + }, + "id": "DebugInstanceRequest" + }, + "CreateVersionMetadataV1Alpha": { + "id": "CreateVersionMetadataV1Alpha", + "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1alpha.CreateVersionRequest.", + "type": "object", + "properties": { + "cloudBuildId": { + "type": "string", + "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly" + } + } + }, + "OperationMetadataV1Beta5": { + "id": "OperationMetadataV1Beta5", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "method": { + "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", + "type": "string" + }, + "insertTime": { + "description": "Timestamp that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "Timestamp that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + } + } + }, + "Version": { + "description": "A Version resource is a specific set of source code and configuration files that are deployed into a module.", + "type": "object", + "properties": { + "endpointsApiService": { + "description": "Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.", + "$ref": "EndpointsApiService" + }, + "vm": { + "type": "boolean", + "description": "Whether to deploy this version in a container on a virtual machine." + }, + "instanceClass": { + "description": "Instance class that is used to run this version. Valid values are:\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.", + "type": "string" + }, + "servingStatus": { + "enum": [ + "SERVING_STATUS_UNSPECIFIED", + "SERVING", + "STOPPED" + ], + "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", + "type": "string", + "enumDescriptions": [ + "Not specified.", + "Currently serving. Instances are created according to the scaling settings of the version.", + "Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." + ] + }, + "runtimeApiVersion": { + "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", + "type": "string" + }, + "deployment": { + "$ref": "Deployment", + "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." + }, + "inboundServices": { + "enumDescriptions": [ + "Not specified.", + "Allows an application to receive mail.", + "Allows an application to receive email-bound notifications.", + "Allows an application to receive error stanzas.", + "Allows an application to receive instant messages.", + "Allows an application to receive user subscription POSTs.", + "Allows an application to receive a user's chat presence.", + "Registers an application for notifications when a client connects or disconnects from a channel.", + "Enables warmup requests." + ], + "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", + "type": "array", + "items": { + "enum": [ + "INBOUND_SERVICE_UNSPECIFIED", + "INBOUND_SERVICE_MAIL", + "INBOUND_SERVICE_MAIL_BOUNCE", + "INBOUND_SERVICE_XMPP_ERROR", + "INBOUND_SERVICE_XMPP_MESSAGE", + "INBOUND_SERVICE_XMPP_SUBSCRIBE", + "INBOUND_SERVICE_XMPP_PRESENCE", + "INBOUND_SERVICE_CHANNEL_PRESENCE", + "INBOUND_SERVICE_WARMUP" + ], + "type": "string" + } + }, + "resources": { + "description": "Machine resources for this version. Only applicable for VM runtimes.", + "$ref": "Resources" + }, + "errorHandlers": { + "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", + "type": "array", + "items": { + "$ref": "ErrorHandler" + } + }, + "defaultExpiration": { + "description": "Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.", + "format": "google-duration", + "type": "string" + }, + "libraries": { + "description": "Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.", + "type": "array", + "items": { + "$ref": "Library" + } + }, + "nobuildFilesRegex": { + "description": "Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.", + "type": "string" + }, + "creationTime": { + "type": "string", + "description": "Time that this version was created.@OutputOnly", + "format": "google-datetime" + }, + "basicScaling": { + "$ref": "BasicScaling", + "description": "A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." + }, + "runtimeMainExecutablePath": { + "description": "The path or name of the app's main executable.", + "type": "string" + }, + "runtime": { + "description": "Desired runtime. Example: python27.", + "type": "string" + }, + "id": { + "description": "Relative name of the version within the module. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", + "type": "string" + }, + "envVariables": { + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables made available to the application.Only returned in GET requests if view=FULL is set.", + "type": "object" + }, + "network": { + "description": "Extra network settings. Only applicable for VM runtimes.", + "$ref": "Network" + }, + "betaSettings": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata settings that are supplied to this version to enable beta runtime features.", + "type": "object" + }, + "env": { + "description": "App Engine execution environment to use for this version.Defaults to 1.", + "type": "string" + }, + "handlers": { + "type": "array", + "items": { + "$ref": "UrlMap" + }, + "description": "An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set." + }, + "deployer": { + "description": "Email address of the user who created this version.@OutputOnly", + "type": "string" + }, + "automaticScaling": { + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "$ref": "AutomaticScaling" + }, + "healthCheck": { + "$ref": "HealthCheck", + "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." + }, + "threadsafe": { + "description": "Whether multiple requests can be dispatched to this version at once.", + "type": "boolean" + }, + "manualScaling": { + "$ref": "ManualScaling", + "description": "A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time." + }, + "name": { + "description": "Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly", + "type": "string" + }, + "apiConfig": { + "$ref": "ApiConfigHandler", + "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set." + } + }, + "id": "Version" + }, + "FileInfo": { + "type": "object", + "properties": { + "mimeType": { + "description": "The MIME type of the file.Defaults to the value from Google Cloud Storage.", + "type": "string" + }, + "sourceUrl": { + "description": "URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", + "type": "string" + }, + "sha1Sum": { + "description": "The SHA1 hash of the file, in hex.", + "type": "string" + } + }, + "id": "FileInfo", + "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately." + }, + "ScriptHandler": { + "type": "object", + "properties": { + "scriptPath": { + "description": "Path to the script from the application root directory.", + "type": "string" + } + }, + "id": "ScriptHandler", + "description": "Executes a script to handle the request that matches the URL pattern." + }, + "TrafficSplit": { + "description": "Traffic routing configuration for versions within a single module. Traffic splits define how traffic directed to the module is assigned to versions.", + "type": "object", + "properties": { + "shardBy": { + "enum": [ + "UNSPECIFIED", + "COOKIE", + "IP" + ], + "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", + "type": "string", + "enumDescriptions": [ + "Diversion method unspecified.", + "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or else no diversion will occur.", + "Diversion based on applying the modulus operation to a fingerprint of the IP address." + ] + }, + "allocations": { + "description": "Mapping from version IDs within the module to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the module may not have any traffic allocation. Modules that have traffic allocated cannot be deleted until either the module is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", + "type": "object", + "additionalProperties": { + "format": "double", + "type": "number" + } + } + }, + "id": "TrafficSplit" + }, + "OperationMetadataV1Beta": { + "id": "OperationMetadataV1Beta", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "endTime": { + "description": "Time that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "createVersionMetadata": { + "$ref": "CreateVersionMetadataV1Beta" + }, + "insertTime": { + "description": "Time that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", + "type": "string" + } + } + }, + "ListModulesResponse": { + "description": "Response message for Modules.ListModules.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "modules": { + "description": "The modules belonging to the requested application.", + "type": "array", + "items": { + "$ref": "Module" + } + } + }, + "id": "ListModulesResponse" + }, + "Deployment": { + "description": "Code and application artifacts used to deploy a version to App Engine.", + "type": "object", + "properties": { + "files": { + "type": "object", + "additionalProperties": { + "$ref": "FileInfo" + }, + "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call." + }, + "container": { + "$ref": "ContainerInfo", + "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." + }, + "sourceReferences": { + "description": "Origin of the source code for this deployment. There can be more than one source reference per version if source code is distributed among multiple repositories.", + "type": "array", + "items": { + "$ref": "SourceReference" + } + } + }, + "id": "Deployment" + }, + "Resources": { + "properties": { + "volumes": { + "description": "User specified volumes.", + "type": "array", + "items": { + "$ref": "Volume" + } + }, + "diskGb": { + "description": "Disk size (GB) needed.", + "format": "double", + "type": "number" + }, + "cpu": { + "description": "Number of CPU cores needed.", + "format": "double", + "type": "number" + }, + "memoryGb": { + "description": "Memory (GB) needed.", + "format": "double", + "type": "number" + } + }, + "id": "Resources", + "description": "Machine resources for a version.", + "type": "object" + }, + "Volume": { + "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "volumeType": { + "description": "Underlying volume type, e.g. 'tmpfs'.", + "type": "string" + }, + "sizeGb": { + "description": "Volume size in gigabytes.", + "format": "double", + "type": "number" + }, + "name": { + "type": "string", + "description": "Unique name for the volume." + } + }, + "id": "Volume" + } + }, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "protocol": "rest", + "version": "v1beta4", + "baseUrl": "https://appengine.googleapis.com/", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/appengine.admin": { + "description": "View and manage your applications deployed on Google App Engine" + }, + "https://www.googleapis.com/auth/cloud-platform.read-only": { + "description": "View your data across Google Cloud Platform services" + } + } + } + }, + "kind": "discovery#restDescription", + "description": "Provisions and manages developers' App Engine applications.", + "servicePath": "", + "rootUrl": "https://appengine.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine" +} diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta5.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta5.json new file mode 100644 index 0000000000000000000000000000000000000000..e04dfc218fa2d158e5fac2fac723508d1e88d145 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta5.json @@ -0,0 +1,2439 @@ +{ + "icons": { + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" + }, + "protocol": "rest", + "version": "v1beta5", + "baseUrl": "https://appengine.googleapis.com/", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform.read-only": { + "description": "View your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/appengine.admin": { + "description": "View and manage your applications deployed on Google App Engine" + } + } + } + }, + "kind": "discovery#restDescription", + "description": "Provisions and manages developers' App Engine applications.", + "servicePath": "", + "rootUrl": "https://appengine.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine", + "batchPath": "batch", + "revision": "20181218", + "id": "appengine:v1beta5", + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "title": "App Engine Admin API", + "discoveryVersion": "v1", + "ownerName": "Google", + "resources": { + "apps": { + "methods": { + "get": { + "response": { + "$ref": "Application" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "ensureResourcesExist": { + "description": "Certain resources associated with an application are created on-demand. Controls whether these resources should be created when performing the GET operation. If specified and any resources could not be created, the request will fail with an error code. Additionally, this parameter can cause the request to take longer to complete. Note: This parameter will be deprecated in a future version of the API.", + "type": "boolean", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the application to get. Example: apps/myapp.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta5/apps/{appsId}", + "path": "v1beta5/apps/{appsId}", + "id": "appengine.apps.get", + "description": "Gets information about an application." + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", + "required": true, + "type": "string", + "location": "path" + }, + "mask": { + "location": "query", + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "flatPath": "v1beta5/apps/{appsId}", + "id": "appengine.apps.patch", + "path": "v1beta5/apps/{appsId}", + "request": { + "$ref": "Application" + }, + "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.auth_domain)\ndefault_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.default_cookie_expiration)" + }, + "create": { + "flatPath": "v1beta5/apps", + "path": "v1beta5/apps", + "id": "appengine.apps.create", + "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).", + "request": { + "$ref": "Application" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "services": { + "methods": { + "delete": { + "description": "Deletes the specified service and all enclosed versions.", + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "servicesId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.delete", + "path": "v1beta5/apps/{appsId}/services/{servicesId}" + }, + "get": { + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.get", + "description": "Gets the current configuration of the specified service.", + "response": { + "$ref": "Service" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "GET", + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, + "list": { + "description": "Lists all the services in the application.", + "response": { + "$ref": "ListServicesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp.", + "required": true, + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services", + "path": "v1beta5/apps/{appsId}/services", + "id": "appengine.apps.services.list" + }, + "patch": { + "request": { + "$ref": "Service" + }, + "description": "Updates the configuration of the specified service.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", + "required": true, + "type": "string" + }, + "migrateTraffic": { + "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", + "type": "boolean", + "location": "query" + }, + "mask": { + "location": "query", + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.patch" + } + }, + "resources": { + "versions": { + "methods": { + "get": { + "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", + "httpMethod": "GET", + "response": { + "$ref": "Version" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "parameters": { + "versionsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the Get response.", + "type": "string" + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.get", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListVersionsResponse" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "required": true, + "type": "string", + "location": "path" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "view": { + "type": "string", + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the List response." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "id": "appengine.apps.services.versions.list", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "description": "Lists the versions of a service." + }, + "patch": { + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.patch", + "request": { + "$ref": "Version" + }, + "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", + "required": true, + "type": "string" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "mask": { + "type": "string", + "location": "query", + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask" + } + } + }, + "create": { + "request": { + "$ref": "Version" + }, + "description": "Deploys new code and resource files to a new version.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "description": "Part of `name`. Name of the resource to update. For example: \"apps/myapp/services/default\".", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "id": "appengine.apps.services.versions.create" + }, + "delete": { + "description": "Deletes an existing version.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "appsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1." + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.delete" + } + }, + "resources": { + "instances": { + "methods": { + "delete": { + "description": "Stops a running instance.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId", + "instancesId" + ], + "httpMethod": "DELETE", + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. For example: \"apps/myapp/services/default/versions/v1/instances/instance-1\".", + "required": true, + "type": "string", + "location": "path" + }, + "instancesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.services.versions.instances.delete" + }, + "get": { + "response": { + "$ref": "Instance" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId", + "instancesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", + "required": true, + "type": "string" + }, + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "versionsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.services.versions.instances.get", + "description": "Gets instance information." + }, + "list": { + "response": { + "$ref": "ListInstancesResponse" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", + "required": true, + "type": "string" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", + "id": "appengine.apps.services.versions.instances.list", + "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)." + }, + "debug": { + "httpMethod": "POST", + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId", + "instancesId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", + "required": true, + "type": "string" + }, + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", + "id": "appengine.apps.services.versions.instances.debug", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", + "request": { + "$ref": "DebugInstanceRequest" + }, + "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment." + } + } + } + } + } + } + }, + "operations": { + "methods": { + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "ListOperationsResponse" + }, + "parameters": { + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + }, + "appsId": { + "description": "Part of `name`. The name of the operation's parent resource.", + "required": true, + "type": "string", + "location": "path" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta5/apps/{appsId}/operations", + "id": "appengine.apps.operations.list", + "path": "v1beta5/apps/{appsId}/operations" + }, + "get": { + "flatPath": "v1beta5/apps/{appsId}/operations/{operationsId}", + "path": "v1beta5/apps/{appsId}/operations/{operationsId}", + "id": "appengine.apps.operations.get", + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "operationsId" + ], + "httpMethod": "GET", + "parameters": { + "appsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. The name of the operation resource." + }, + "operationsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + }, + "locations": { + "methods": { + "list": { + "description": "Lists information about the supported locations for this service.", + "response": { + "$ref": "ListLocationsResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + }, + "appsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. The resource that owns the locations collection, if applicable." + }, + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + } + }, + "flatPath": "v1beta5/apps/{appsId}/locations", + "path": "v1beta5/apps/{appsId}/locations", + "id": "appengine.apps.locations.list" + }, + "get": { + "response": { + "$ref": "Location" + }, + "parameterOrder": [ + "appsId", + "locationsId" + ], + "httpMethod": "GET", + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Resource name for the location.", + "required": true, + "type": "string" + }, + "locationsId": { + "required": true, + "type": "string", + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta5/apps/{appsId}/locations/{locationsId}", + "path": "v1beta5/apps/{appsId}/locations/{locationsId}", + "id": "appengine.apps.locations.get", + "description": "Gets information about a location." + } + } + } + } + } + }, + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ] + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "callback": { + "type": "string", + "location": "query", + "description": "JSONP" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "key": { + "type": "string", + "location": "query", + "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." + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + } + }, + "schemas": { + "TrafficSplit": { + "description": "Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions.", + "type": "object", + "properties": { + "shardBy": { + "enumDescriptions": [ + "Diversion method unspecified.", + "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or else no diversion will occur.", + "Diversion based on applying the modulus operation to a fingerprint of the IP address." + ], + "enum": [ + "UNSPECIFIED", + "COOKIE", + "IP" + ], + "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", + "type": "string" + }, + "allocations": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "description": "Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", + "type": "object" + } + }, + "id": "TrafficSplit" + }, + "OperationMetadataV1Beta": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, + "insertTime": { + "description": "Time that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "target": { + "type": "string", + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "description": "Time that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "createVersionMetadata": { + "$ref": "CreateVersionMetadataV1Beta" + } + }, + "id": "OperationMetadataV1Beta" + }, + "ListServicesResponse": { + "description": "Response message for Services.ListServices.", + "type": "object", + "properties": { + "services": { + "description": "The services belonging to the requested application.", + "type": "array", + "items": { + "$ref": "Service" + } + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token for fetching the next page of results." + } + }, + "id": "ListServicesResponse" + }, + "Deployment": { + "description": "Code and application artifacts used to deploy a version to App Engine.", + "type": "object", + "properties": { + "container": { + "$ref": "ContainerInfo", + "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." + }, + "sourceReferences": { + "description": "Origin of the source code for this deployment. There can be more than one source reference per version if source code is distributed among multiple repositories.", + "type": "array", + "items": { + "$ref": "SourceReference" + } + }, + "files": { + "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", + "type": "object", + "additionalProperties": { + "$ref": "FileInfo" + } + } + }, + "id": "Deployment" + }, + "Resources": { + "description": "Machine resources for a version.", + "type": "object", + "properties": { + "volumes": { + "description": "Volumes mounted within the app container.", + "type": "array", + "items": { + "$ref": "Volume" + } + }, + "diskGb": { + "description": "Disk size (GB) needed.", + "format": "double", + "type": "number" + }, + "cpu": { + "description": "Number of CPU cores needed.", + "format": "double", + "type": "number" + }, + "memoryGb": { + "description": "Memory (GB) needed.", + "format": "double", + "type": "number" + } + }, + "id": "Resources" + }, + "Volume": { + "type": "object", + "properties": { + "volumeType": { + "description": "Underlying volume type, e.g. 'tmpfs'.", + "type": "string" + }, + "sizeGb": { + "description": "Volume size in gigabytes.", + "format": "double", + "type": "number" + }, + "name": { + "description": "Unique name for the volume.", + "type": "string" + } + }, + "id": "Volume", + "description": "Volumes mounted within the app container. Only applicable for VM runtimes." + }, + "ListInstancesResponse": { + "id": "ListInstancesResponse", + "description": "Response message for Instances.ListInstances.", + "type": "object", + "properties": { + "instances": { + "description": "The instances belonging to the requested version.", + "type": "array", + "items": { + "$ref": "Instance" + } + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + } + }, + "OperationMetadataV1Alpha": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, + "insertTime": { + "type": "string", + "description": "Time that this operation was created.@OutputOnly", + "format": "google-datetime" + }, + "user": { + "type": "string", + "description": "User who requested this operation.@OutputOnly" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "description": "Time that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "createVersionMetadata": { + "$ref": "CreateVersionMetadataV1Alpha" + } + }, + "id": "OperationMetadataV1Alpha" + }, + "UrlDispatchRule": { + "description": "Rules to match an HTTP request and dispatch that request to a service.", + "type": "object", + "properties": { + "path": { + "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.", + "type": "string" + }, + "domain": { + "description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", + "type": "string" + }, + "service": { + "description": "Resource id of a service in this application that should serve the matched request. The service must already exist. Example: default.", + "type": "string" + } + }, + "id": "UrlDispatchRule" + }, + "ListVersionsResponse": { + "properties": { + "versions": { + "description": "The versions belonging to the requested service.", + "type": "array", + "items": { + "$ref": "Version" + } + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "id": "ListVersionsResponse", + "description": "Response message for Versions.ListVersions.", + "type": "object" + }, + "ApiEndpointHandler": { + "description": "Uses Google Cloud Endpoints to handle requests.", + "type": "object", + "properties": { + "scriptPath": { + "description": "Path to the script from the application root directory.", + "type": "string" + } + }, + "id": "ApiEndpointHandler" + }, + "AutomaticScaling": { + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "type": "object", + "properties": { + "networkUtilization": { + "$ref": "NetworkUtilization", + "description": "Target scaling by network usage." + }, + "maxConcurrentRequests": { + "type": "integer", + "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", + "format": "int32" + }, + "coolDownPeriod": { + "description": "The time period that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. Only applicable in the App Engine flexible environment.", + "format": "google-duration", + "type": "string" + }, + "maxPendingLatency": { + "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", + "format": "google-duration", + "type": "string" + }, + "cpuUtilization": { + "description": "Target scaling by CPU usage.", + "$ref": "CpuUtilization" + }, + "diskUtilization": { + "description": "Target scaling by disk usage.", + "$ref": "DiskUtilization" + }, + "minPendingLatency": { + "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", + "format": "google-duration", + "type": "string" + }, + "requestUtilization": { + "$ref": "RequestUtilization", + "description": "Target scaling by request utilization." + }, + "maxIdleInstances": { + "description": "Maximum number of idle instances that should be maintained for this version.", + "format": "int32", + "type": "integer" + }, + "minIdleInstances": { + "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.", + "format": "int32", + "type": "integer" + }, + "maxTotalInstances": { + "description": "Maximum number of instances that should be started to handle requests.", + "format": "int32", + "type": "integer" + }, + "minTotalInstances": { + "description": "Minimum number of instances that should be maintained for this version.", + "format": "int32", + "type": "integer" + } + }, + "id": "AutomaticScaling" + }, + "Library": { + "description": "Third-party Python runtime library that is required by the application.", + "type": "object", + "properties": { + "version": { + "description": "Version of the library to select, or \"latest\".", + "type": "string" + }, + "name": { + "description": "Name of the library. Example: \"django\".", + "type": "string" + } + }, + "id": "Library" + }, + "ListLocationsResponse": { + "properties": { + "locations": { + "type": "array", + "items": { + "$ref": "Location" + }, + "description": "A list of locations that matches the specified filter in the request." + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "id": "ListLocationsResponse", + "description": "The response message for Locations.ListLocations.", + "type": "object" + }, + "ContainerInfo": { + "type": "object", + "properties": { + "image": { + "description": "URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: \"gcr.io/my-project/image:tag\" or \"gcr.io/my-project/image@digest\"", + "type": "string" + } + }, + "id": "ContainerInfo", + "description": "Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment." + }, + "RequestUtilization": { + "description": "Target scaling by request utilization. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "targetRequestCountPerSec": { + "description": "Target requests per second.", + "format": "int32", + "type": "integer" + }, + "targetConcurrentRequests": { + "description": "Target number of concurrent requests.", + "format": "int32", + "type": "integer" + } + }, + "id": "RequestUtilization" + }, + "EndpointsApiService": { + "description": "Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration id of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", + "type": "object", + "properties": { + "name": { + "description": "Endpoints service name which is the name of the \"service\" resource in the Service Management API. For example \"myapi.endpoints.myproject.cloud.goog\"", + "type": "string" + }, + "configId": { + "description": "Endpoints service configuration id as specified by the Service Management API. For example \"2016-09-19r1\"By default, the Endpoints service configuration id is fixed and config_id must be specified. To keep the Endpoints service configuration id updated with each rollout, specify RolloutStrategy.MANAGED and omit config_id.", + "type": "string" + }, + "disableTraceSampling": { + "type": "boolean", + "description": "Enable or disable trace sampling. By default, this is set to false for enabled." + }, + "rolloutStrategy": { + "enumDescriptions": [ + "Not specified. Defaults to FIXED.", + "Endpoints service configuration id will be fixed to the configuration id specified by config_id.", + "Endpoints service configuration id will be updated with each rollout." + ], + "enum": [ + "UNSPECIFIED_ROLLOUT_STRATEGY", + "FIXED", + "MANAGED" + ], + "description": "Endpoints rollout strategy. If FIXED, config_id must be specified. If MANAGED, config_id must be omitted.", + "type": "string" + } + }, + "id": "EndpointsApiService" + }, + "UrlMap": { + "type": "object", + "properties": { + "apiEndpoint": { + "$ref": "ApiEndpointHandler", + "description": "Uses API Endpoints to handle requests." + }, + "staticFiles": { + "$ref": "StaticFilesHandler", + "description": "Returns the contents of a file, such as an image, as the response." + }, + "redirectHttpResponseCode": { + "enumDescriptions": [ + "Not specified. 302 is assumed.", + "301 Moved Permanently code.", + "302 Moved Temporarily code.", + "303 See Other code.", + "307 Temporary Redirect code." + ], + "enum": [ + "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED", + "REDIRECT_HTTP_RESPONSE_CODE_301", + "REDIRECT_HTTP_RESPONSE_CODE_302", + "REDIRECT_HTTP_RESPONSE_CODE_303", + "REDIRECT_HTTP_RESPONSE_CODE_307" + ], + "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", + "type": "string" + }, + "securityLevel": { + "type": "string", + "enumDescriptions": [ + "Not specified.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used, and respond accordingly.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly.", + "Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect." + ], + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ], + "description": "Security (HTTPS) enforcement for this URL." + }, + "authFailAction": { + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string", + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with an401 HTTP status code and an error message." + ] + }, + "script": { + "description": "Executes a script to handle the request that matches this URL pattern.", + "$ref": "ScriptHandler" + }, + "urlRegex": { + "description": "A URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", + "type": "string" + }, + "login": { + "description": "Level of login required to access this resource.", + "type": "string", + "enumDescriptions": [ + "Not specified. LOGIN_OPTIONAL is assumed.", + "Does not require that the user is signed in.", + "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", + "If the user has signed in, the handler proceeds normally. Otherwise, the action given in auth_fail_action is taken." + ], + "enum": [ + "LOGIN_UNSPECIFIED", + "LOGIN_OPTIONAL", + "LOGIN_ADMIN", + "LOGIN_REQUIRED" + ] + } + }, + "id": "UrlMap", + "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code, or by serving static files uploaded with the version, such as images, CSS, or JavaScript." + }, + "ApiConfigHandler": { + "id": "ApiConfigHandler", + "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", + "type": "object", + "properties": { + "url": { + "description": "URL to serve the endpoint at.", + "type": "string" + }, + "securityLevel": { + "enumDescriptions": [ + "Not specified.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used, and respond accordingly.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly.", + "Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect." + ], + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ], + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string" + }, + "authFailAction": { + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string", + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with an401 HTTP status code and an error message." + ], + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ] + }, + "script": { + "type": "string", + "description": "Path to the script from the application root directory." + }, + "login": { + "enum": [ + "LOGIN_UNSPECIFIED", + "LOGIN_OPTIONAL", + "LOGIN_ADMIN", + "LOGIN_REQUIRED" + ], + "description": "Level of login required to access this resource. Defaults to optional.", + "type": "string", + "enumDescriptions": [ + "Not specified. LOGIN_OPTIONAL is assumed.", + "Does not require that the user is signed in.", + "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", + "If the user has signed in, the handler proceeds normally. Otherwise, the action given in auth_fail_action is taken." + ] + } + } + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "type": "object", + "properties": { + "response": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse." + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "done": { + "description": "If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.", + "type": "boolean" + } + }, + "id": "Operation" + }, + "StaticFilesHandler": { + "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", + "type": "object", + "properties": { + "mimeType": { + "description": "MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.", + "type": "string" + }, + "requireMatchingFile": { + "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", + "type": "boolean" + }, + "expiration": { + "description": "Time a static file served by this handler should be cached.", + "format": "google-duration", + "type": "string" + }, + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, + "httpHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "HTTP headers to use for all responses from these URLs.", + "type": "object" + }, + "uploadPathRegex": { + "type": "string", + "description": "Regular expression that matches the file paths for all files that should be referenced by this handler." + }, + "path": { + "description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.", + "type": "string" + } + }, + "id": "StaticFilesHandler" + }, + "DiskUtilization": { + "description": "Target scaling by disk usage. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "targetReadBytesPerSec": { + "description": "Target bytes read per second.", + "format": "int32", + "type": "integer" + }, + "targetWriteOpsPerSec": { + "description": "Target ops written per second.", + "format": "int32", + "type": "integer" + }, + "targetWriteBytesPerSec": { + "description": "Target bytes written per second.", + "format": "int32", + "type": "integer" + }, + "targetReadOpsPerSec": { + "description": "Target ops read per second.", + "format": "int32", + "type": "integer" + } + }, + "id": "DiskUtilization" + }, + "BasicScaling": { + "id": "BasicScaling", + "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", + "type": "object", + "properties": { + "maxInstances": { + "description": "Maximum number of instances to create for this version.", + "format": "int32", + "type": "integer" + }, + "idleTimeout": { + "type": "string", + "description": "Duration of time after the last request that an instance must wait before the instance is shut down.", + "format": "google-duration" + } + } + }, + "CpuUtilization": { + "description": "Target scaling by CPU usage.", + "type": "object", + "properties": { + "aggregationWindowLength": { + "description": "Period of time over which CPU utilization is calculated.", + "format": "google-duration", + "type": "string" + }, + "targetUtilization": { + "description": "Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.", + "format": "double", + "type": "number" + } + }, + "id": "CpuUtilization" + }, + "Status": { + "type": "object", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + } + } + } + }, + "id": "Status", + "description": "The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons." + }, + "IdentityAwareProxy": { + "type": "object", + "properties": { + "oauth2ClientSecretSha256": { + "description": "Hex-encoded SHA-256 hash of the client secret.@OutputOnly", + "type": "string" + }, + "enabled": { + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.", + "type": "boolean" + }, + "oauth2ClientSecret": { + "description": "For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly", + "type": "string" + }, + "oauth2ClientId": { + "description": "OAuth2 client ID to use for the authentication flow.", + "type": "string" + } + }, + "id": "IdentityAwareProxy", + "description": "Identity-Aware Proxy" + }, + "ManualScaling": { + "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "type": "object", + "properties": { + "instances": { + "description": "Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.", + "format": "int32", + "type": "integer" + } + }, + "id": "ManualScaling" + }, + "LocationMetadata": { + "description": "Metadata for the given google.cloud.location.Location.", + "type": "object", + "properties": { + "standardEnvironmentAvailable": { + "description": "App Engine standard environment is available in the given location.@OutputOnly", + "type": "boolean" + }, + "flexibleEnvironmentAvailable": { + "description": "App Engine flexible environment is available in the given location.@OutputOnly", + "type": "boolean" + } + }, + "id": "LocationMetadata" + }, + "CreateVersionMetadataV1": { + "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1.CreateVersionRequest.", + "type": "object", + "properties": { + "cloudBuildId": { + "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", + "type": "string" + } + }, + "id": "CreateVersionMetadataV1" + }, + "Service": { + "type": "object", + "properties": { + "name": { + "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "split": { + "$ref": "TrafficSplit", + "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service." + }, + "id": { + "description": "Relative name of the service within the application. Example: default.@OutputOnly", + "type": "string" + } + }, + "id": "Service", + "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle other tasks such as API requests from mobile devices or backend data analysis. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service." + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Operation" + } + } + }, + "id": "ListOperationsResponse" + }, + "OperationMetadata": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "description": "Timestamp that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "operationType": { + "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", + "type": "string" + }, + "insertTime": { + "description": "Timestamp that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", + "type": "string" + } + }, + "id": "OperationMetadata" + }, + "CreateVersionMetadataV1Beta": { + "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1beta.CreateVersionRequest.", + "type": "object", + "properties": { + "cloudBuildId": { + "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", + "type": "string" + } + }, + "id": "CreateVersionMetadataV1Beta" + }, + "ErrorHandler": { + "description": "Custom static error page to be served when an error occurs.", + "type": "object", + "properties": { + "errorCode": { + "enum": [ + "ERROR_CODE_UNSPECIFIED", + "ERROR_CODE_DEFAULT", + "ERROR_CODE_OVER_QUOTA", + "ERROR_CODE_DOS_API_DENIAL", + "ERROR_CODE_TIMEOUT" + ], + "description": "Error condition this handler applies to.", + "type": "string", + "enumDescriptions": [ + "Not specified. ERROR_CODE_DEFAULT is assumed.", + "All other error types.", + "Application has exceeded a resource quota.", + "Client blocked by the application's Denial of Service protection configuration.", + "Deadline reached before the application responds." + ] + }, + "mimeType": { + "type": "string", + "description": "MIME type of file. Defaults to text/html." + }, + "staticFile": { + "description": "Static file content to be served for this error.", + "type": "string" + } + }, + "id": "ErrorHandler" + }, + "OperationMetadataV1": { + "id": "OperationMetadataV1", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "endTime": { + "description": "Time that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "createVersionMetadata": { + "$ref": "CreateVersionMetadataV1" + }, + "insertTime": { + "description": "Time that this operation was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "type": "string" + } + } + }, + "Network": { + "description": "Extra network settings. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "forwardedPorts": { + "description": "List of ports, or port pairs, to forward from the virtual machine to the application container.", + "type": "array", + "items": { + "type": "string" + } + }, + "instanceTag": { + "description": "Tag to apply to the VM instance during creation.", + "type": "string" + }, + "subnetworkName": { + "description": "Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.\nIf the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.", + "type": "string" + }, + "name": { + "type": "string", + "description": "Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default." + } + }, + "id": "Network" + }, + "Application": { + "properties": { + "codeBucket": { + "description": "A Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly", + "type": "string" + }, + "location": { + "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", + "type": "string" + }, + "defaultBucket": { + "description": "A Google Cloud Storage bucket that can be used by the application to store content.@OutputOnly", + "type": "string" + }, + "dispatchRules": { + "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly", + "type": "array", + "items": { + "$ref": "UrlDispatchRule" + } + }, + "defaultHostname": { + "description": "Hostname used to reach the application, as resolved by App Engine.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", + "type": "string" + }, + "authDomain": { + "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", + "type": "string" + }, + "iap": { + "$ref": "IdentityAwareProxy" + }, + "defaultCookieExpiration": { + "description": "Cookie expiration policy for this application.", + "format": "google-duration", + "type": "string" + }, + "id": { + "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", + "type": "string" + } + }, + "id": "Application", + "description": "An Application resource contains the top-level configuration of an App Engine application.", + "type": "object" + }, + "Instance": { + "type": "object", + "properties": { + "vmUnlocked": { + "description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "boolean" + }, + "name": { + "description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly", + "type": "string" + }, + "vmZoneName": { + "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "averageLatency": { + "description": "Average latency (ms) over the last minute.@OutputOnly", + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string", + "description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly" + }, + "memoryUsage": { + "description": "Total memory in use (bytes).@OutputOnly", + "format": "int64", + "type": "string" + }, + "vmIp": { + "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "errors": { + "description": "Number of errors since this instance was started.@OutputOnly", + "format": "uint32", + "type": "integer" + }, + "availability": { + "enum": [ + "UNSPECIFIED", + "RESIDENT", + "DYNAMIC" + ], + "description": "Availability of the instance.@OutputOnly", + "type": "string", + "enumDescriptions": [ + "", + "", + "" + ] + }, + "vmStatus": { + "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "requests": { + "description": "Number of requests since this instance was started.@OutputOnly", + "format": "int32", + "type": "integer" + }, + "appEngineRelease": { + "description": "App Engine release this instance is running on.@OutputOnly", + "type": "string" + }, + "startTimestamp": { + "description": "Time that this instance was started.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "vmName": { + "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "vmId": { + "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "qps": { + "description": "Average queries per second (QPS) over the last minute.@OutputOnly", + "format": "float", + "type": "number" + } + }, + "id": "Instance", + "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application." + }, + "NetworkUtilization": { + "properties": { + "targetSentPacketsPerSec": { + "description": "Target packets sent per second.", + "format": "int32", + "type": "integer" + }, + "targetSentBytesPerSec": { + "description": "Target bytes sent per second.", + "format": "int32", + "type": "integer" + }, + "targetReceivedPacketsPerSec": { + "type": "integer", + "description": "Target packets received per second.", + "format": "int32" + }, + "targetReceivedBytesPerSec": { + "description": "Target bytes received per second.", + "format": "int32", + "type": "integer" + } + }, + "id": "NetworkUtilization", + "description": "Target scaling by network usage. Only applicable for VM runtimes.", + "type": "object" + }, + "Location": { + "id": "Location", + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", + "properties": { + "name": { + "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", + "type": "string" + }, + "locationId": { + "description": "The canonical id for this location. For example: \"us-east1\".", + "type": "string" + }, + "displayName": { + "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata. For example the available capacity at the given location.", + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", + "type": "object" + } + } + }, + "HealthCheck": { + "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", + "type": "object", + "properties": { + "restartThreshold": { + "description": "Number of consecutive failed health checks required before an instance is restarted.", + "format": "uint32", + "type": "integer" + }, + "healthyThreshold": { + "description": "Number of consecutive successful health checks required before receiving traffic.", + "format": "uint32", + "type": "integer" + }, + "checkInterval": { + "description": "Interval between health checks.", + "format": "google-duration", + "type": "string" + }, + "timeout": { + "description": "Time before the health check is considered failed.", + "format": "google-duration", + "type": "string" + }, + "unhealthyThreshold": { + "description": "Number of consecutive failed health checks required before removing traffic.", + "format": "uint32", + "type": "integer" + }, + "disableHealthCheck": { + "description": "Whether to explicitly disable health checks for this instance.", + "type": "boolean" + }, + "host": { + "description": "Host header to send when performing an HTTP health check. Example: \"myapp.appspot.com\"", + "type": "string" + } + }, + "id": "HealthCheck" + }, + "SourceReference": { + "description": "Reference to a particular snapshot of the source tree used to build and deploy the application.", + "type": "object", + "properties": { + "repository": { + "description": "URI string identifying the repository. Example: \"https://source.developers.google.com/p/app-123/r/default\"", + "type": "string" + }, + "revisionId": { + "description": "The canonical, persistent identifier of the deployed revision. Aliases that include tags or branch names are not allowed. Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"", + "type": "string" + } + }, + "id": "SourceReference" + }, + "DebugInstanceRequest": { + "id": "DebugInstanceRequest", + "description": "Request message for Instances.DebugInstance.", + "type": "object", + "properties": { + "sshKey": { + "description": "Public SSH key to add to the instance. Examples:\n[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]\n[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).", + "type": "string" + } + } + }, + "OperationMetadataV1Beta5": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "type": "string", + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly" + }, + "method": { + "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", + "type": "string" + }, + "insertTime": { + "type": "string", + "description": "Timestamp that this operation was created.@OutputOnly", + "format": "google-datetime" + }, + "endTime": { + "description": "Timestamp that this operation completed.@OutputOnly", + "format": "google-datetime", + "type": "string" + } + }, + "id": "OperationMetadataV1Beta5" + }, + "CreateVersionMetadataV1Alpha": { + "type": "object", + "properties": { + "cloudBuildId": { + "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", + "type": "string" + } + }, + "id": "CreateVersionMetadataV1Alpha", + "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1alpha.CreateVersionRequest." + }, + "Version": { + "description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.", + "type": "object", + "properties": { + "healthCheck": { + "$ref": "HealthCheck", + "description": "Configures health checking for VM instances. Unhealthy instances are be stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." + }, + "threadsafe": { + "description": "Whether multiple requests can be dispatched to this version at once.", + "type": "boolean" + }, + "manualScaling": { + "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "$ref": "ManualScaling" + }, + "name": { + "description": "Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly", + "type": "string" + }, + "apiConfig": { + "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.", + "$ref": "ApiConfigHandler" + }, + "endpointsApiService": { + "$ref": "EndpointsApiService", + "description": "Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app." + }, + "vm": { + "description": "Whether to deploy this version in a container on a virtual machine.", + "type": "boolean" + }, + "instanceClass": { + "description": "Instance class that is used to run this version. Valid values are:\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.", + "type": "string" + }, + "servingStatus": { + "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", + "type": "string", + "enumDescriptions": [ + "Not specified.", + "Currently serving. Instances are created according to the scaling settings of the version.", + "Disabled from serving. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." + ], + "enum": [ + "SERVING_STATUS_UNSPECIFIED", + "SERVING", + "STOPPED" + ] + }, + "deployment": { + "$ref": "Deployment", + "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." + }, + "runtimeApiVersion": { + "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", + "type": "string" + }, + "resources": { + "description": "Machine resources for this version. Only applicable for VM runtimes.", + "$ref": "Resources" + }, + "inboundServices": { + "enumDescriptions": [ + "Not specified.", + "Allows an application to receive mail.", + "Allows an application to receive email-bound notifications.", + "Allows an application to receive error stanzas.", + "Allows an application to receive instant messages.", + "Allows an application to receive user subscription POSTs.", + "Allows an application to receive a user's chat presence.", + "Registers an application for notifications when a client connects or disconnects from a channel.", + "Enables warmup requests." + ], + "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", + "type": "array", + "items": { + "enum": [ + "INBOUND_SERVICE_UNSPECIFIED", + "INBOUND_SERVICE_MAIL", + "INBOUND_SERVICE_MAIL_BOUNCE", + "INBOUND_SERVICE_XMPP_ERROR", + "INBOUND_SERVICE_XMPP_MESSAGE", + "INBOUND_SERVICE_XMPP_SUBSCRIBE", + "INBOUND_SERVICE_XMPP_PRESENCE", + "INBOUND_SERVICE_CHANNEL_PRESENCE", + "INBOUND_SERVICE_WARMUP" + ], + "type": "string" + } + }, + "errorHandlers": { + "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", + "type": "array", + "items": { + "$ref": "ErrorHandler" + } + }, + "defaultExpiration": { + "type": "string", + "description": "Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.", + "format": "google-duration" + }, + "libraries": { + "description": "Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.", + "type": "array", + "items": { + "$ref": "Library" + } + }, + "creationTime": { + "description": "Time that this version was created.@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "nobuildFilesRegex": { + "description": "Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.", + "type": "string" + }, + "basicScaling": { + "$ref": "BasicScaling", + "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." + }, + "runtimeMainExecutablePath": { + "description": "The path or name of the app's main executable.", + "type": "string" + }, + "runtime": { + "description": "Desired runtime. Example: python27.", + "type": "string" + }, + "id": { + "description": "Relative name of the version within the module. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", + "type": "string" + }, + "envVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables made available to the application.Only returned in GET requests if view=FULL is set." + }, + "network": { + "$ref": "Network", + "description": "Extra network settings. Only applicable for VM runtimes." + }, + "betaSettings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Metadata settings that are supplied to this version to enable beta runtime features." + }, + "env": { + "description": "App Engine execution environment to use for this version.Defaults to 1.", + "type": "string" + }, + "handlers": { + "description": "An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.", + "type": "array", + "items": { + "$ref": "UrlMap" + } + }, + "deployer": { + "description": "Email address of the user who created this version.@OutputOnly", + "type": "string" + }, + "automaticScaling": { + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "$ref": "AutomaticScaling" + }, + "diskUsageBytes": { + "description": "Total size of version files hosted on App Engine disk in bytes.@OutputOnly", + "format": "int64", + "type": "string" + } + }, + "id": "Version" + }, + "ScriptHandler": { + "description": "Executes a script to handle the request that matches the URL pattern.", + "type": "object", + "properties": { + "scriptPath": { + "description": "Path to the script from the application root directory.", + "type": "string" + } + }, + "id": "ScriptHandler" + }, + "FileInfo": { + "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", + "type": "object", + "properties": { + "sha1Sum": { + "description": "The SHA1 hash of the file, in hex.", + "type": "string" + }, + "mimeType": { + "description": "The MIME type of the file.Defaults to the value from Google Cloud Storage.", + "type": "string" + }, + "sourceUrl": { + "description": "URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", + "type": "string" + } + }, + "id": "FileInfo" + } + } +} diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/authorizedbuyersmarketplace.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/authorizedbuyersmarketplace.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..4b48349c0863d4892bbf57f8c0795a9006d96d85 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/authorizedbuyersmarketplace.v1.json @@ -0,0 +1,3263 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/authorized-buyers-marketplace": { +"description": "See, create, edit, and delete your Authorized Buyers Marketplace entities." +} +} +} +}, +"basePath": "", +"baseUrl": "https://authorizedbuyersmarketplace.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Authorized Buyers Marketplace", +"description": "The Authorized Buyers Marketplace API lets buyers programmatically discover inventory; propose, retrieve and negotiate deals with publishers.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "authorizedbuyersmarketplace:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://authorizedbuyersmarketplace.mtls.googleapis.com/", +"name": "authorizedbuyersmarketplace", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"bidders": { +"resources": { +"auctionPackages": { +"methods": { +"list": { +"description": "List the auction packages. Buyers can use the URL path \"/v1/buyers/{accountId}/auctionPackages\" to list auction packages for the current buyer and its clients. Bidders can use the URL path \"/v1/bidders/{accountId}/auctionPackages\" to list auction packages for the bidder, its media planners, its buyers, and all their clients.", +"flatPath": "v1/bidders/{biddersId}/auctionPackages", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.bidders.auctionPackages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Optional query string using the [Cloud API list filtering syntax](/authorized-buyers/apis/guides/list-filters). Only supported when parent is bidder. Supported columns for filtering are: * displayName * createTime * updateTime * eligibleSeatIds", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. An optional query string to sort auction packages using the [Cloud API sorting syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order). If no sort order is specified, results will be returned in an arbitrary order. Only supported when parent is bidder. Supported columns for sorting are: * displayName * createTime * updateTime", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. Max allowed page size is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned. ListAuctionPackagesResponse.nextPageToken", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent buyer that can access the auction package. Format: `buyers/{accountId}`. When used with a bidder account, the auction packages that the bidder, its media planners, its buyers and clients are subscribed to will be listed, in the format `bidders/{accountId}`.", +"location": "path", +"pattern": "^bidders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/auctionPackages", +"response": { +"$ref": "ListAuctionPackagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +}, +"finalizedDeals": { +"methods": { +"list": { +"description": "Lists finalized deals. Use the URL path \"/v1/buyers/{accountId}/finalizedDeals\" to list finalized deals for the current buyer and its clients. Bidders can use the URL path \"/v1/bidders/{accountId}/finalizedDeals\" to list finalized deals for the bidder, its buyers and all their clients.", +"flatPath": "v1/bidders/{biddersId}/finalizedDeals", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.bidders.finalizedDeals.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported columns for filtering are: * deal.displayName * deal.dealType * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * deal.eligibleSeatIds * dealServingStatus", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "An optional query string to sort finalized deals using the [Cloud API sorting syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order). If no sort order is specified, results will be returned in an arbitrary order. Supported columns for sorting are: * deal.displayName * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * rtbMetrics.bidRequests7Days * rtbMetrics.bids7Days * rtbMetrics.adImpressions7Days * rtbMetrics.bidRate7Days * rtbMetrics.filteredBidRate7Days * rtbMetrics.mustBidRateCurrentMonth", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. If requested more than 500, the server will return 500 results per page. If unspecified, the server will pick a default page size of 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned from ListFinalizedDealsResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The buyer to list the finalized deals for, in the format: `buyers/{accountId}`. When used to list finalized deals for a bidder, its buyers and clients, in the format `bidders/{accountId}`.", +"location": "path", +"pattern": "^bidders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/finalizedDeals", +"response": { +"$ref": "ListFinalizedDealsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +} +} +}, +"buyers": { +"resources": { +"auctionPackages": { +"methods": { +"get": { +"description": "Gets an auction package given its name.", +"flatPath": "v1/buyers/{buyersId}/auctionPackages/{auctionPackagesId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.auctionPackages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of auction package to get. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}`", +"location": "path", +"pattern": "^buyers/[^/]+/auctionPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "AuctionPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "List the auction packages. Buyers can use the URL path \"/v1/buyers/{accountId}/auctionPackages\" to list auction packages for the current buyer and its clients. Bidders can use the URL path \"/v1/bidders/{accountId}/auctionPackages\" to list auction packages for the bidder, its media planners, its buyers, and all their clients.", +"flatPath": "v1/buyers/{buyersId}/auctionPackages", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.auctionPackages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Optional query string using the [Cloud API list filtering syntax](/authorized-buyers/apis/guides/list-filters). Only supported when parent is bidder. Supported columns for filtering are: * displayName * createTime * updateTime * eligibleSeatIds", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. An optional query string to sort auction packages using the [Cloud API sorting syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order). If no sort order is specified, results will be returned in an arbitrary order. Only supported when parent is bidder. Supported columns for sorting are: * displayName * createTime * updateTime", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. Max allowed page size is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned. ListAuctionPackagesResponse.nextPageToken", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent buyer that can access the auction package. Format: `buyers/{accountId}`. When used with a bidder account, the auction packages that the bidder, its media planners, its buyers and clients are subscribed to will be listed, in the format `bidders/{accountId}`.", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/auctionPackages", +"response": { +"$ref": "ListAuctionPackagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"subscribe": { +"description": "Subscribe to the auction package for the specified buyer. Once subscribed, the bidder will receive a call out for inventory matching the auction package targeting criteria with the auction package deal ID and the specified buyer.", +"flatPath": "v1/buyers/{buyersId}/auctionPackages/{auctionPackagesId}:subscribe", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.auctionPackages.subscribe", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the auction package. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}`", +"location": "path", +"pattern": "^buyers/[^/]+/auctionPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:subscribe", +"request": { +"$ref": "SubscribeAuctionPackageRequest" +}, +"response": { +"$ref": "AuctionPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"subscribeClients": { +"description": "Subscribe the specified clients of the buyer to the auction package. If a client in the list does not belong to the buyer, an error response will be returned, and all of the following clients in the list will not be subscribed. Subscribing an already subscribed client will have no effect.", +"flatPath": "v1/buyers/{buyersId}/auctionPackages/{auctionPackagesId}:subscribeClients", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.auctionPackages.subscribeClients", +"parameterOrder": [ +"auctionPackage" +], +"parameters": { +"auctionPackage": { +"description": "Required. Name of the auction package. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}`", +"location": "path", +"pattern": "^buyers/[^/]+/auctionPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+auctionPackage}:subscribeClients", +"request": { +"$ref": "SubscribeClientsRequest" +}, +"response": { +"$ref": "AuctionPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"unsubscribe": { +"description": "Unsubscribe from the auction package for the specified buyer. Once unsubscribed, the bidder will no longer receive a call out for the auction package deal ID and the specified buyer.", +"flatPath": "v1/buyers/{buyersId}/auctionPackages/{auctionPackagesId}:unsubscribe", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.auctionPackages.unsubscribe", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the auction package. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}`", +"location": "path", +"pattern": "^buyers/[^/]+/auctionPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:unsubscribe", +"request": { +"$ref": "UnsubscribeAuctionPackageRequest" +}, +"response": { +"$ref": "AuctionPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"unsubscribeClients": { +"description": "Unsubscribe from the auction package for the specified clients of the buyer. Unsubscribing a client that is not subscribed will have no effect.", +"flatPath": "v1/buyers/{buyersId}/auctionPackages/{auctionPackagesId}:unsubscribeClients", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.auctionPackages.unsubscribeClients", +"parameterOrder": [ +"auctionPackage" +], +"parameters": { +"auctionPackage": { +"description": "Required. Name of the auction package. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}`", +"location": "path", +"pattern": "^buyers/[^/]+/auctionPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+auctionPackage}:unsubscribeClients", +"request": { +"$ref": "UnsubscribeClientsRequest" +}, +"response": { +"$ref": "AuctionPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +}, +"clients": { +"methods": { +"activate": { +"description": "Activates an existing client. The state of the client will be updated to \"ACTIVE\". This method has no effect if the client is already in \"ACTIVE\" state.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}:activate", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.clients.activate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:activate", +"request": { +"$ref": "ActivateClientRequest" +}, +"response": { +"$ref": "Client" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"create": { +"description": "Creates a new client.", +"flatPath": "v1/buyers/{buyersId}/clients", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.clients.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the buyer. Format: `buyers/{accountId}`", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clients", +"request": { +"$ref": "Client" +}, +"response": { +"$ref": "Client" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"deactivate": { +"description": "Deactivates an existing client. The state of the client will be updated to \"INACTIVE\". This method has no effect if the client is already in \"INACTIVE\" state.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}:deactivate", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.clients.deactivate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:deactivate", +"request": { +"$ref": "DeactivateClientRequest" +}, +"response": { +"$ref": "Client" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"get": { +"description": "Gets a client with a given resource name.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.clients.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{accountId}/clients/{clientAccountId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Client" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "Lists all the clients for the current buyer.", +"flatPath": "v1/buyers/{buyersId}/clients", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.clients.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Query string using the [Filtering Syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported fields for filtering are: * partnerClientId Use this field to filter the clients by the partnerClientId. For example, if the partnerClientId of the client is \"1234\", the value of this field should be `partnerClientId = \"1234\"`, in order to get only the client whose partnerClientId is \"1234\" in the response.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. If left blank, a default page size of 500 will be applied.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListClientsResponse.nextPageToken returned from the previous call to the list method.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the buyer. Format: `buyers/{accountId}`", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clients", +"response": { +"$ref": "ListClientsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"patch": { +"description": "Updates an existing client.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}", +"httpMethod": "PATCH", +"id": "authorizedbuyersmarketplace.buyers.clients.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the client. Format: `buyers/{accountId}/clients/{clientAccountId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Client" +}, +"response": { +"$ref": "Client" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +}, +"resources": { +"users": { +"methods": { +"activate": { +"description": "Activates an existing client user. The state of the client user will be updated from \"INACTIVE\" to \"ACTIVE\". This method has no effect if the client user is already in \"ACTIVE\" state. An error will be returned if the client user to activate is still in \"INVITED\" state.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}/users/{usersId}:activate", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.clients.users.activate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}/clientUsers/{userId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:activate", +"request": { +"$ref": "ActivateClientUserRequest" +}, +"response": { +"$ref": "ClientUser" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"create": { +"description": "Creates a new client user in \"INVITED\" state. An email invitation will be sent to the new user, once accepted the user will become active.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}/users", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.clients.users.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the client. Format: `buyers/{accountId}/clients/{clientAccountId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/users", +"request": { +"$ref": "ClientUser" +}, +"response": { +"$ref": "ClientUser" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"deactivate": { +"description": "Deactivates an existing client user. The state of the client user will be updated from \"ACTIVE\" to \"INACTIVE\". This method has no effect if the client user is already in \"INACTIVE\" state. An error will be returned if the client user to deactivate is still in \"INVITED\" state.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}/users/{usersId}:deactivate", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.clients.users.deactivate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}/clientUsers/{userId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:deactivate", +"request": { +"$ref": "DeactivateClientUserRequest" +}, +"response": { +"$ref": "ClientUser" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"delete": { +"description": "Deletes an existing client user. The client user will lose access to the Authorized Buyers UI. Note that if a client user is deleted, the user's access to the UI can't be restored unless a new client user is created and activated.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}/users/{usersId}", +"httpMethod": "DELETE", +"id": "authorizedbuyersmarketplace.buyers.clients.users.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}/clientUsers/{userId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"get": { +"description": "Retrieves an existing client user.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}/users/{usersId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.clients.users.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}/clientUsers/{userId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+/users/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ClientUser" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "Lists all client users for a specified client.", +"flatPath": "v1/buyers/{buyersId}/clients/{clientsId}/users", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.clients.users.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. If left blank, a default page size of 500 will be applied.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListClientUsersResponse.nextPageToken returned from the previous call to the list method.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the client. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}`", +"location": "path", +"pattern": "^buyers/[^/]+/clients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/users", +"response": { +"$ref": "ListClientUsersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +} +} +}, +"finalizedDeals": { +"methods": { +"addCreative": { +"description": "Add creative to be used in the bidding process for a finalized deal. For programmatic guaranteed deals, it's recommended that you associate at least one approved creative with the deal before calling SetReadyToServe, to help reduce the number of bid responses filtered because they don't contain approved creatives. Creatives successfully added to a deal can be found in the Realtime-bidding Creatives API creative.deal_ids. This method only applies to programmatic guaranteed deals. Maximum number of 1000 creatives can be added to a finalized deal.", +"flatPath": "v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:addCreative", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.finalizedDeals.addCreative", +"parameterOrder": [ +"deal" +], +"parameters": { +"deal": { +"description": "Required. Name of the finalized deal in the format of: `buyers/{accountId}/finalizedDeals/{dealId}`", +"location": "path", +"pattern": "^buyers/[^/]+/finalizedDeals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+deal}:addCreative", +"request": { +"$ref": "AddCreativeRequest" +}, +"response": { +"$ref": "FinalizedDeal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"get": { +"description": "Gets a finalized deal given its name.", +"flatPath": "v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.finalizedDeals.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{accountId}/finalizedDeals/{dealId}`", +"location": "path", +"pattern": "^buyers/[^/]+/finalizedDeals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "FinalizedDeal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "Lists finalized deals. Use the URL path \"/v1/buyers/{accountId}/finalizedDeals\" to list finalized deals for the current buyer and its clients. Bidders can use the URL path \"/v1/bidders/{accountId}/finalizedDeals\" to list finalized deals for the bidder, its buyers and all their clients.", +"flatPath": "v1/buyers/{buyersId}/finalizedDeals", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.finalizedDeals.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported columns for filtering are: * deal.displayName * deal.dealType * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * deal.eligibleSeatIds * dealServingStatus", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "An optional query string to sort finalized deals using the [Cloud API sorting syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order). If no sort order is specified, results will be returned in an arbitrary order. Supported columns for sorting are: * deal.displayName * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * rtbMetrics.bidRequests7Days * rtbMetrics.bids7Days * rtbMetrics.adImpressions7Days * rtbMetrics.bidRate7Days * rtbMetrics.filteredBidRate7Days * rtbMetrics.mustBidRateCurrentMonth", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. If requested more than 500, the server will return 500 results per page. If unspecified, the server will pick a default page size of 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned from ListFinalizedDealsResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The buyer to list the finalized deals for, in the format: `buyers/{accountId}`. When used to list finalized deals for a bidder, its buyers and clients, in the format `bidders/{accountId}`.", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/finalizedDeals", +"response": { +"$ref": "ListFinalizedDealsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"pause": { +"description": "Pauses serving of the given finalized deal. This call only pauses the serving status, and does not affect other fields of the finalized deal. Calling this method for an already paused deal has no effect. This method only applies to programmatic guaranteed deals and preferred deals.", +"flatPath": "v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:pause", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.finalizedDeals.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{accountId}/finalizedDeals/{dealId}`", +"location": "path", +"pattern": "^buyers/[^/]+/finalizedDeals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:pause", +"request": { +"$ref": "PauseFinalizedDealRequest" +}, +"response": { +"$ref": "FinalizedDeal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"resume": { +"description": "Resumes serving of the given finalized deal. Calling this method for an running deal has no effect. If a deal is initially paused by the seller, calling this method will not resume serving of the deal until the seller also resumes the deal. This method only applies to programmatic guaranteed deals and preferred deals.", +"flatPath": "v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:resume", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.finalizedDeals.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `buyers/{accountId}/finalizedDeals/{dealId}`", +"location": "path", +"pattern": "^buyers/[^/]+/finalizedDeals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:resume", +"request": { +"$ref": "ResumeFinalizedDealRequest" +}, +"response": { +"$ref": "FinalizedDeal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"setReadyToServe": { +"description": "Sets the given finalized deal as ready to serve. By default, deals are set as ready to serve as soon as they're finalized. If you want to opt out of the default behavior, and manually indicate that deals are ready to serve, ask your Technical Account Manager to add you to the allowlist. If you choose to use this method, finalized deals belonging to the bidder and its child seats don't start serving until after you call `setReadyToServe`, and after the deals become active. For example, you can use this method to delay receiving bid requests until your creative is ready. This method only applies to programmatic guaranteed deals.", +"flatPath": "v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:setReadyToServe", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.finalizedDeals.setReadyToServe", +"parameterOrder": [ +"deal" +], +"parameters": { +"deal": { +"description": "Required. Format: `buyers/{accountId}/finalizedDeals/{dealId}`", +"location": "path", +"pattern": "^buyers/[^/]+/finalizedDeals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+deal}:setReadyToServe", +"request": { +"$ref": "SetReadyToServeRequest" +}, +"response": { +"$ref": "FinalizedDeal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +}, +"proposals": { +"methods": { +"accept": { +"description": "Accepts the proposal at the given revision number. If the revision number in the request is behind the latest from the server, an error message will be returned. This call updates the Proposal.state from `BUYER_ACCEPTANCE_REQUESTED` to `FINALIZED`; it has no side effect if the Proposal.state is already `FINALIZED` and throws exception if the Proposal.state is not either `BUYER_ACCEPTANCE_REQUESTED` or `FINALIZED`. Accepting a proposal means the buyer understands and accepts the Proposal.terms_and_conditions proposed by the seller.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}:accept", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.proposals.accept", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the proposal. Format: `buyers/{accountId}/proposals/{proposalId}`", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:accept", +"request": { +"$ref": "AcceptProposalRequest" +}, +"response": { +"$ref": "Proposal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"addNote": { +"description": "Creates a note for this proposal and sends to the seller. This method is not supported for proposals with DealType set to 'PRIVATE_AUCTION'.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}:addNote", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.proposals.addNote", +"parameterOrder": [ +"proposal" +], +"parameters": { +"proposal": { +"description": "Name of the proposal. Format: `buyers/{accountId}/proposals/{proposalId}`", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+proposal}:addNote", +"request": { +"$ref": "AddNoteRequest" +}, +"response": { +"$ref": "Proposal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"cancelNegotiation": { +"description": "Cancels an ongoing negotiation on a proposal. This does not cancel or end serving for the deals if the proposal has been finalized. If the proposal has not been finalized before, calling this method will set the Proposal.state to `TERMINATED` and increment the Proposal.proposal_revision. If the proposal has been finalized before and is under renegotiation now, calling this method will reset the Proposal.state to `FINALIZED` and increment the Proposal.proposal_revision. This method does not support private auction proposals whose Proposal.deal_type is 'PRIVATE_AUCTION'.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}:cancelNegotiation", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.proposals.cancelNegotiation", +"parameterOrder": [ +"proposal" +], +"parameters": { +"proposal": { +"description": "Name of the proposal. Format: `buyers/{accountId}/proposals/{proposalId}`", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+proposal}:cancelNegotiation", +"request": { +"$ref": "CancelNegotiationRequest" +}, +"response": { +"$ref": "Proposal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"get": { +"description": "Gets a proposal using its resource name. The proposal is returned at the latest revision.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.proposals.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the proposal. Format: `buyers/{accountId}/proposals/{proposalId}`", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Proposal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "Lists proposals. A filter expression using [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) may be specified to filter the results.", +"flatPath": "v1/buyers/{buyersId}/proposals", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.proposals.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported columns for filtering are: * displayName * dealType * updateTime * state", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will put a size of 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned from ListProposalsResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent that owns the collection of proposals Format: `buyers/{accountId}`", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/proposals", +"response": { +"$ref": "ListProposalsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"patch": { +"description": "Updates the proposal at the given revision number. If the revision number in the request is behind the latest one kept in the server, an error message will be returned. See FieldMask for how to use FieldMask. Only fields specified in the UpdateProposalRequest.update_mask will be updated; Fields noted as 'Immutable' or 'Output only' yet specified in the UpdateProposalRequest.update_mask will be ignored and left unchanged. Updating a private auction proposal is not allowed and will result in an error.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}", +"httpMethod": "PATCH", +"id": "authorizedbuyersmarketplace.buyers.proposals.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The name of the proposal serving as a unique identifier. Format: buyers/{accountId}/proposals/{proposalId}", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Proposal" +}, +"response": { +"$ref": "Proposal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"sendRfp": { +"description": "Sends a request for proposal (RFP) to a publisher to initiate the negotiation regarding certain inventory. In the RFP, buyers can specify the deal type, deal terms, start and end dates, targeting, and a message to the publisher. Once the RFP is sent, a proposal in `SELLER_REVIEW_REQUESTED` state will be created and returned in the response. The publisher may review your request and respond with detailed deals in the proposal.", +"flatPath": "v1/buyers/{buyersId}/proposals:sendRfp", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.proposals.sendRfp", +"parameterOrder": [ +"buyer" +], +"parameters": { +"buyer": { +"description": "Required. The current buyer who is sending the RFP in the format: `buyers/{accountId}`.", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+buyer}/proposals:sendRfp", +"request": { +"$ref": "SendRfpRequest" +}, +"response": { +"$ref": "Proposal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +}, +"resources": { +"deals": { +"methods": { +"batchUpdate": { +"description": "Batch updates multiple deals in the same proposal.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}/deals:batchUpdate", +"httpMethod": "POST", +"id": "authorizedbuyersmarketplace.buyers.proposals.deals.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the proposal containing the deals to batch update. Format: buyers/{accountId}/proposals/{proposalId}", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deals:batchUpdate", +"request": { +"$ref": "BatchUpdateDealsRequest" +}, +"response": { +"$ref": "BatchUpdateDealsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"get": { +"description": "Gets a deal given its name. The deal is returned at its head revision.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}/deals/{dealsId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.proposals.deals.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+/deals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Deal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "Lists all deals in a proposal. To retrieve only the finalized revision deals regardless if a deal is being renegotiated, see the FinalizedDeals resource.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}/deals", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.proposals.deals.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. If requested more than 500, the server will return 500 results per page. If unspecified, the server will pick a default page size of 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned from ListDealsResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the proposal containing the deals to retrieve. Format: buyers/{accountId}/proposals/{proposalId}", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deals", +"response": { +"$ref": "ListDealsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"patch": { +"description": "Updates the given deal at the buyer known revision number. If the server revision has advanced since the passed-in proposal.proposal_revision an ABORTED error message will be returned. The revision number is incremented by the server whenever the proposal or its constituent deals are updated. Note: The revision number is kept at a proposal level. The buyer of the API is expected to keep track of the revision number after the last update operation and send it in as part of the next update request. This way, if there are further changes on the server (for example, seller making new updates), then the server can detect conflicts and reject the proposed changes.", +"flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}/deals/{dealsId}", +"httpMethod": "PATCH", +"id": "authorizedbuyersmarketplace.buyers.proposals.deals.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The unique identifier of the deal. Auto-generated by the server when a deal is created. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}", +"location": "path", +"pattern": "^buyers/[^/]+/proposals/[^/]+/deals/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Deal" +}, +"response": { +"$ref": "Deal" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +} +} +}, +"publisherProfiles": { +"methods": { +"get": { +"description": "Gets the requested publisher profile by name.", +"flatPath": "v1/buyers/{buyersId}/publisherProfiles/{publisherProfilesId}", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.publisherProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the publisher profile. Format: `buyers/{buyerId}/publisherProfiles/{publisherProfileId}`", +"location": "path", +"pattern": "^buyers/[^/]+/publisherProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PublisherProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +}, +"list": { +"description": "Lists publisher profiles. The returned publisher profiles aren't in any defined order. The order of the results might change. A new publisher profile can appear in any place in the list of returned results.", +"flatPath": "v1/buyers/{buyersId}/publisherProfiles", +"httpMethod": "GET", +"id": "authorizedbuyersmarketplace.buyers.publisherProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional query string using the [Cloud API list filtering] (https://developers.google.com/authorized-buyers/apis/guides/list-filters) syntax.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The server may return fewer results than requested. If requested more than 500, the server will return 500 results per page. If unspecified, the server will pick a default page size of 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token as returned from a previous ListPublisherProfilesResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent that owns the collection of publisher profiles Format: `buyers/{buyerId}`", +"location": "path", +"pattern": "^buyers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/publisherProfiles", +"response": { +"$ref": "ListPublisherProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/authorized-buyers-marketplace" +] +} +} +} +} +} +}, +"revision": "20250107", +"rootUrl": "https://authorizedbuyersmarketplace.googleapis.com/", +"schemas": { +"AcceptProposalRequest": { +"description": "Request to accept a proposal. Accepting a proposal implies acceptance of the publisher terms_and_conditions, if any.", +"id": "AcceptProposalRequest", +"properties": { +"proposalRevision": { +"description": "The last known client revision number of the proposal.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ActivateClientRequest": { +"description": "Request message for activating a client.", +"id": "ActivateClientRequest", +"properties": {}, +"type": "object" +}, +"ActivateClientUserRequest": { +"description": "Request message for activating a client user.", +"id": "ActivateClientUserRequest", +"properties": {}, +"type": "object" +}, +"AdSize": { +"description": "Represents size of a single ad slot, or a creative.", +"id": "AdSize", +"properties": { +"height": { +"description": "The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "The type of the ad slot size.", +"enum": [ +"TYPE_UNSPECIFIED", +"PIXEL", +"INTERSTITIAL", +"NATIVE", +"FLUID" +], +"enumDescriptions": [ +"A placeholder for an undefined size type.", +"Ad slot with size specified by height and width in pixels.", +"Special size to describe an interstitial ad slot.", +"Native (mobile) ads rendered by the publisher.", +"Fluid size (responsive size) can be resized automatically with the change of outside environment." +], +"type": "string" +}, +"width": { +"description": "The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AddCreativeRequest": { +"description": "Request message for adding creative to be used in the bidding process for the finalized deal.", +"id": "AddCreativeRequest", +"properties": { +"creative": { +"description": "Name of the creative to add to the finalized deal, in the format `buyers/{buyerAccountId}/creatives/{creativeId}`. See creative.name.", +"type": "string" +} +}, +"type": "object" +}, +"AddNoteRequest": { +"description": "Request to add a note.", +"id": "AddNoteRequest", +"properties": { +"note": { +"$ref": "Note", +"description": "The note to add." +} +}, +"type": "object" +}, +"AuctionPackage": { +"description": "Defines a segment of inventory that buyer wants to buy. It's created by buyer and could be shared with multiple buyers.", +"id": "AuctionPackage", +"properties": { +"createTime": { +"description": "Output only. Time the auction package was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creator": { +"description": "Output only. The buyer that created this auction package. Format: `buyers/{buyerAccountId}`", +"readOnly": true, +"type": "string" +}, +"dealOwnerSeatId": { +"description": "Output only. If set, this field contains the DSP specific seat id set by the media planner account that is considered the owner of this deal. The seat ID is in the calling DSP's namespace.", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. A description of the auction package.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The display_name assigned to the auction package.", +"type": "string" +}, +"eligibleSeatIds": { +"description": "Output only. If set, this field identifies a seat that the media planner selected as the owner of this auction package. This is a seat ID in the DSP's namespace that was provided to the media planner.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Immutable. The unique identifier for the auction package. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}` The auction_package_id part of name is sent in the BidRequest to all RTB bidders and is returned as deal_id by the bidder in the BidResponse.", +"type": "string" +}, +"subscribedBuyers": { +"description": "Output only. The list of buyers that are subscribed to the AuctionPackage. This field is only populated when calling as a bidder. Format: `buyers/{buyerAccountId}`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"subscribedClients": { +"description": "Output only. When calling as a buyer, the list of clients of the current buyer that are subscribed to the AuctionPackage. When calling as a bidder, the list of clients that are subscribed to the AuctionPackage owned by the bidder or its buyers. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"subscribedMediaPlanners": { +"description": "Output only. The list of media planners that are subscribed to the AuctionPackage. This field is only populated when calling as a bidder.", +"items": { +"$ref": "MediaPlanner" +}, +"readOnly": true, +"type": "array" +}, +"updateTime": { +"description": "Output only. Time the auction package was last updated. This value is only increased when this auction package is updated but never when a buyer subscribed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BatchUpdateDealsRequest": { +"description": "Request message for batch updating deals.", +"id": "BatchUpdateDealsRequest", +"properties": { +"requests": { +"description": "Required. List of request messages to update deals.", +"items": { +"$ref": "UpdateDealRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateDealsResponse": { +"description": "Response message for batch updating deals.", +"id": "BatchUpdateDealsResponse", +"properties": { +"deals": { +"description": "Deals updated.", +"items": { +"$ref": "Deal" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelNegotiationRequest": { +"description": "Request to cancel an ongoing negotiation.", +"id": "CancelNegotiationRequest", +"properties": {}, +"type": "object" +}, +"Client": { +"description": "A client represents an agency, a brand, or an advertiser customer of the buyer. Based on the client's role, its client users will have varying levels of restricted access to the Marketplace and certain other sections of the Authorized Buyers UI.", +"id": "Client", +"properties": { +"displayName": { +"description": "Required. Display name shown to publishers. Must be unique for clients without partnerClientId specified. Maximum length of 255 characters is allowed.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the client. Format: `buyers/{accountId}/clients/{clientAccountId}`", +"readOnly": true, +"type": "string" +}, +"partnerClientId": { +"description": "Arbitrary unique identifier provided by the buyer. This field can be used to associate a client with an identifier in the namespace of the buyer, lookup clients by that identifier and verify whether an Authorized Buyers account of the client already exists. If present, must be unique across all the clients.", +"type": "string" +}, +"role": { +"description": "Required. The role assigned to the client. Each role implies a set of permissions granted to the client.", +"enum": [ +"CLIENT_ROLE_UNSPECIFIED", +"CLIENT_DEAL_VIEWER", +"CLIENT_DEAL_NEGOTIATOR", +"CLIENT_DEAL_APPROVER" +], +"enumDescriptions": [ +"A placeholder for an undefined client role. This value should never be specified in user input for create or update method, otherwise an error will be returned.", +"Users associated with this client role can only view proposals and deals in the Marketplace UI. They cannot negotiate or approve proposals and deals sent from publishers or send RFP to publishers.", +"Users associated with this client role can view and negotiate on the proposals and deals in the Marketplace UI sent from publishers and send RFP to publishers, but cannot approve the proposals and deals by themselves. The buyer can approve the proposals and deals on behalf of the client.", +"Users associated with this client role can view, negotiate and approve proposals and deals in the Marketplace UI and send RFP to publishers." +], +"type": "string" +}, +"sellerVisible": { +"description": "Whether the client will be visible to sellers.", +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the client.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"A placeholder for an undefined client state. Should not be used.", +"A client that is currently active and allowed to access the Authorized Buyers UI.", +"A client that is currently inactive and not allowed to access the Authorized Buyers UI." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClientUser": { +"description": "A user of a client who has restricted access to the Marketplace and certain other sections of the Authorized Buyers UI based on the role granted to the associated client.", +"id": "ClientUser", +"properties": { +"email": { +"description": "Required. The client user's email address that has to be unique across all users for the same client.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the client user. Format: `buyers/{accountId}/clients/{clientAccountId}/users/{userId}`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the client user.", +"enum": [ +"STATE_UNSPECIFIED", +"INVITED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"A placeholder for an undefined user state.", +"A user who was created but hasn't accepted the invitation yet, not allowed to access the Authorized Buyers UI.", +"A user that is currently active and allowed to access the Authorized Buyers UI.", +"A user that is currently inactive and not allowed to access the Authorized Buyers UI." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Contact": { +"description": "Contains information on how a buyer or seller can be reached.", +"id": "Contact", +"properties": { +"displayName": { +"description": "The display_name of the contact.", +"type": "string" +}, +"email": { +"description": "Email address for the contact.", +"type": "string" +} +}, +"type": "object" +}, +"CreativeRequirements": { +"description": "Message captures data about the creatives in the deal.", +"id": "CreativeRequirements", +"properties": { +"creativeFormat": { +"description": "Output only. The format of the creative, only applicable for programmatic guaranteed and preferred deals.", +"enum": [ +"CREATIVE_FORMAT_UNSPECIFIED", +"DISPLAY", +"VIDEO", +"AUDIO" +], +"enumDescriptions": [ +"A placeholder for an unspecified creative format.", +"Banner creatives such as image or HTML5 assets.", +"Video creatives that can be played in a video player.", +"Audio creatives that can play during audio content or point to a third party ad server." +], +"readOnly": true, +"type": "string" +}, +"creativePreApprovalPolicy": { +"description": "Output only. Specifies the creative pre-approval policy.", +"enum": [ +"CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED", +"SELLER_PRE_APPROVAL_REQUIRED", +"SELLER_PRE_APPROVAL_NOT_REQUIRED" +], +"enumDescriptions": [ +"A placeholder for an undefined creative pre-approval policy.", +"The seller needs to approve each creative before it can serve.", +"The seller does not need to approve each creative before it can serve." +], +"readOnly": true, +"type": "string" +}, +"creativeSafeFrameCompatibility": { +"description": "Output only. Specifies whether the creative is safeFrame compatible.", +"enum": [ +"CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED", +"COMPATIBLE", +"INCOMPATIBLE" +], +"enumDescriptions": [ +"A placeholder for an undefined creative safe-frame compatibility.", +"The creatives need to be compatible with the safe frame option.", +"The creatives can be incompatible with the safe frame option." +], +"readOnly": true, +"type": "string" +}, +"maxAdDurationMs": { +"description": "Output only. The max duration of the video creative in milliseconds. only applicable for deals with video creatives.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"programmaticCreativeSource": { +"description": "Output only. Specifies the creative source for programmatic deals. PUBLISHER means creative is provided by seller and ADVERTISER means creative is provided by the buyer.", +"enum": [ +"PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED", +"ADVERTISER", +"PUBLISHER" +], +"enumDescriptions": [ +"A placeholder for an undefined programmatic creative source.", +"The advertiser provides the creatives.", +"The publisher provides the creatives to be served." +], +"readOnly": true, +"type": "string" +}, +"skippableAdType": { +"description": "Output only. Skippable video ads allow viewers to skip ads after 5 seconds. Only applicable for deals with video creatives.", +"enum": [ +"SKIPPABLE_AD_TYPE_UNSPECIFIED", +"SKIPPABLE", +"INSTREAM_SELECT", +"NOT_SKIPPABLE", +"ANY" +], +"enumDescriptions": [ +"A placeholder for an unspecified skippable ad type.", +"Video ad that can be skipped after 5 seconds. This value will appear in RTB bid requests as SkippableBidRequestType::REQUIRE_SKIPPABLE.", +"Video ad that can be skipped after 5 seconds, and is counted as engaged view after 30 seconds. The creative is hosted on YouTube only, and viewcount of the YouTube video increments after the engaged view. This value will appear in RTB bid requests as SkippableBidRequestType::REQUIRE_SKIPPABLE.", +"This video ad is not skippable. This value will appear in RTB bid requests as SkippableBidRequestType::BLOCK_SKIPPABLE.", +"This video ad can be skipped after 5 seconds or not-skippable. This value will appear in RTB bid requests as SkippableBidRequestType::ALLOW_SKIPPABLE." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CriteriaTargeting": { +"description": "Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.", +"id": "CriteriaTargeting", +"properties": { +"excludedCriteriaIds": { +"description": "A list of numeric IDs to be excluded.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"targetedCriteriaIds": { +"description": "A list of numeric IDs to be included.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DayPart": { +"description": "Defines targeting for a period of time on a specific week day.", +"id": "DayPart", +"properties": { +"dayOfWeek": { +"description": "Day of week for the period.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"endTime": { +"$ref": "TimeOfDay", +"description": "Hours in 24 hour time between 0 and 24, inclusive. Note: 24 is logically equivalent to 0, but is supported since in some cases there may need to be differentiation made between midnight on one day and midnight on the next day. Accepted values for minutes are [0, 15, 30, 45]. 0 is the only acceptable minute value for hour 24. Seconds and nanos are ignored." +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Hours in 24 hour time between 0 and 24, inclusive. Note: 24 is logically equivalent to 0, but is supported since in some cases there may need to be differentiation made between midnight on one day and midnight on the next day. Accepted values for minutes are [0, 15, 30, 45]. 0 is the only acceptable minute value for hour 24. Seconds and nanos are ignored." +} +}, +"type": "object" +}, +"DayPartTargeting": { +"description": "Represents Daypart targeting.", +"id": "DayPartTargeting", +"properties": { +"dayParts": { +"description": "The targeted weekdays and times", +"items": { +"$ref": "DayPart" +}, +"type": "array" +}, +"timeZoneType": { +"description": "The time zone type of the day parts", +"enum": [ +"TIME_ZONE_TYPE_UNSPECIFIED", +"SELLER", +"USER" +], +"enumDescriptions": [ +"Default value. This field is unused.", +"The publisher's time zone", +"The user's time zone" +], +"type": "string" +} +}, +"type": "object" +}, +"DeactivateClientRequest": { +"description": "Request message for disabling a client.", +"id": "DeactivateClientRequest", +"properties": {}, +"type": "object" +}, +"DeactivateClientUserRequest": { +"description": "Request message for deactivating a client user.", +"id": "DeactivateClientUserRequest", +"properties": {}, +"type": "object" +}, +"Deal": { +"description": "A deal represents a segment of inventory for displaying ads that contains the terms and targeting information that is used for serving as well as the deal stats and status. Note: A proposal may contain multiple deals.", +"id": "Deal", +"properties": { +"billedBuyer": { +"description": "Output only. When the client field is populated, this field refers to the buyer who creates and manages the client buyer and gets billed on behalf of the client buyer; when the buyer field is populated, this field is the same value as buyer; when the deal belongs to a media planner account, this field will be empty. Format : `buyers/{buyerAccountId}`", +"readOnly": true, +"type": "string" +}, +"buyer": { +"description": "Output only. Refers to a buyer in Real-time Bidding API's Buyer resource. Format: `buyers/{buyerAccountId}`", +"readOnly": true, +"type": "string" +}, +"client": { +"description": "Output only. Refers to a Client. Format: `buyers/{buyerAccountId}/clients/{clientAccountid}`", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time of the deal creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creativeRequirements": { +"$ref": "CreativeRequirements", +"description": "Output only. Metadata about the creatives of this deal.", +"readOnly": true +}, +"dealType": { +"description": "Output only. Type of deal.", +"enum": [ +"DEAL_TYPE_UNSPECIFIED", +"PREFERRED_DEAL", +"PRIVATE_AUCTION", +"PROGRAMMATIC_GUARANTEED" +], +"enumDescriptions": [ +"Default, unspecified deal type.", +"Preferred deals.", +"Private auction deals.", +"Programmatic guaranteed deals." +], +"readOnly": true, +"type": "string" +}, +"deliveryControl": { +"$ref": "DeliveryControl", +"description": "Output only. Specifies the pacing set by the publisher.", +"readOnly": true +}, +"description": { +"description": "Output only. Free text description for the deal terms.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The name of the deal. Maximum length of 255 unicode characters is allowed. Control characters are not allowed. Buyers cannot update this field. Note: Not to be confused with name, which is a unique identifier of the deal.", +"readOnly": true, +"type": "string" +}, +"eligibleSeatIds": { +"description": "Output only. If set, this field contains the list of DSP specific seat ids set by media planners that are eligible to transact on this deal. The seat ID is in the calling DSP's namespace.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"estimatedGrossSpend": { +"$ref": "Money", +"description": "Specified by buyers in request for proposal (RFP) to notify publisher the total estimated spend for the proposal. Publishers will receive this information and send back proposed deals accordingly." +}, +"flightEndTime": { +"description": "Proposed flight end time of the deal. This will generally be stored in a granularity of a second. A value is not necessary for Private Auction deals.", +"format": "google-datetime", +"type": "string" +}, +"flightStartTime": { +"description": "Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (for example, in milliseconds) will be truncated towards the start of time in seconds.", +"format": "google-datetime", +"type": "string" +}, +"mediaPlanner": { +"$ref": "MediaPlanner", +"description": "Output only. Refers to a buyer in Real-time Bidding API's Buyer resource. This field represents a media planner (For example, agency or big advertiser).", +"readOnly": true +}, +"name": { +"description": "Immutable. The unique identifier of the deal. Auto-generated by the server when a deal is created. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}", +"type": "string" +}, +"preferredDealTerms": { +"$ref": "PreferredDealTerms", +"description": "The terms for preferred deals." +}, +"privateAuctionTerms": { +"$ref": "PrivateAuctionTerms", +"description": "The terms for private auction deals." +}, +"programmaticGuaranteedTerms": { +"$ref": "ProgrammaticGuaranteedTerms", +"description": "The terms for programmatic guaranteed deals." +}, +"proposalRevision": { +"description": "Output only. The revision number for the proposal and is the same value as proposal.proposal_revision. Each update to deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"publisherProfile": { +"description": "Immutable. Reference to the seller on the deal. Format: `buyers/{buyerAccountId}/publisherProfiles/{publisherProfileId}`", +"type": "string" +}, +"sellerTimeZone": { +"$ref": "TimeZone", +"description": "Output only. Time zone of the seller used to mark the boundaries of a day for daypart targeting and CPD billing.", +"readOnly": true +}, +"targeting": { +"$ref": "MarketplaceTargeting", +"description": "Specifies the subset of inventory targeted by the deal. Can be updated by the buyer before the deal is finalized." +}, +"updateTime": { +"description": "Output only. The time when the deal was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DealPausingInfo": { +"description": "Information related to deal pausing.", +"id": "DealPausingInfo", +"properties": { +"pauseReason": { +"description": "The reason for the pausing of the deal; empty for active deals.", +"type": "string" +}, +"pauseRole": { +"description": "The party that first paused the deal; unspecified for active deals.", +"enum": [ +"BUYER_SELLER_ROLE_UNSPECIFIED", +"BUYER", +"SELLER" +], +"enumDescriptions": [ +"A placeholder for an undefined buyer/seller role.", +"Specifies the role as buyer.", +"Specifies the role as seller." +], +"type": "string" +}, +"pausingConsented": { +"description": "Whether pausing is consented between buyer and seller for the deal.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeliveryControl": { +"description": "Message contains details about how the deal will be paced.", +"id": "DeliveryControl", +"properties": { +"companionDeliveryType": { +"description": "Output only. Specifies roadblocking in a main companion lineitem.", +"enum": [ +"COMPANION_DELIVERY_TYPE_UNSPECIFIED", +"DELIVERY_OPTIONAL", +"DELIVERY_AT_LEAST_ONE", +"DELIVERY_ALL" +], +"enumDescriptions": [ +"A placeholder for an unspecified companion delivery type.", +"Companions are not required to serve a creative set. The creative set can serve an inventory that has zero or more matching companions.", +"At least one companion must be served in order for the creative set to be used.", +"All companions in the set must be served in order for the creative set to be used. This can still serve to inventory that has more companions than can be filled." +], +"readOnly": true, +"type": "string" +}, +"creativeRotationType": { +"description": "Output only. Specifies strategy to use for selecting a creative when multiple creatives of the same size are available.", +"enum": [ +"CREATIVE_ROTATION_TYPE_UNSPECIFIED", +"ROTATION_EVEN", +"ROTATION_OPTIMIZED", +"ROTATION_MANUAL", +"ROTATION_SEQUENTIAL" +], +"enumDescriptions": [ +"Creatives are displayed roughly the same number of times over the duration of the deal.", +"Creatives are displayed roughly the same number of times over the duration of the deal.", +"Creatives are served roughly proportionally to their performance.", +"Creatives are served roughly proportionally to their weights.", +"Creatives are served exactly in sequential order, also known as Storyboarding." +], +"readOnly": true, +"type": "string" +}, +"deliveryRateType": { +"description": "Output only. Specifies how the impression delivery will be paced.", +"enum": [ +"DELIVERY_RATE_TYPE_UNSPECIFIED", +"EVENLY", +"FRONT_LOADED", +"AS_FAST_AS_POSSIBLE" +], +"enumDescriptions": [ +"A placeholder for an undefined delivery rate type.", +"Impressions are served uniformly over the life of the deal.", +"Impressions are served front-loaded.", +"Impressions are served as fast as possible." +], +"readOnly": true, +"type": "string" +}, +"frequencyCap": { +"description": "Output only. Specifies any frequency caps. Cannot be filtered within ListDealsRequest.", +"items": { +"$ref": "FrequencyCap" +}, +"readOnly": true, +"type": "array" +}, +"roadblockingType": { +"description": "Output only. Specifies the roadblocking type in display creatives.", +"enum": [ +"ROADBLOCKING_TYPE_UNSPECIFIED", +"ONLY_ONE", +"ONE_OR_MORE", +"AS_MANY_AS_POSSIBLE", +"ALL_ROADBLOCK", +"CREATIVE_SET" +], +"enumDescriptions": [ +"A placeholder for an unspecified roadblocking type.", +"Only one creative from a deal can serve per ad request. https://support.google.com/admanager/answer/177277.", +"Any number of creatives from a deal can serve together per ad request.", +"As many creatives from a deal as can fit on a page will serve. This could mean anywhere from one to all of a deal's creatives given the size constraints of ad slots on a page.", +"All or none of the creatives from a deal will serve.", +"A main/companion creative set roadblocking type." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"FinalizedDeal": { +"description": "A finalized deal is a snapshot of the deal when both buyer and seller accept the deal. The buyer or seller can update the deal after it's been finalized and renegotiate on the deal targeting, terms and other fields, while at the same time the finalized snapshot of the deal can still be retrieved using this API. The finalized deal contains a copy of the deal as it existed when most recently finalized, as well as fields related to deal serving such as pause/resume status, RTB metrics, and more.", +"id": "FinalizedDeal", +"properties": { +"deal": { +"$ref": "Deal", +"description": "A copy of the Deal made upon finalization. During renegotiation, this will reflect the last finalized deal before renegotiation was initiated." +}, +"dealPausingInfo": { +"$ref": "DealPausingInfo", +"description": "Information related to deal pausing for the deal." +}, +"dealServingStatus": { +"description": "Serving status of the deal.", +"enum": [ +"DEAL_SERVING_STATUS_UNSPECIFIED", +"ACTIVE", +"ENDED", +"PAUSED_BY_BUYER", +"PAUSED_BY_SELLER" +], +"enumDescriptions": [ +"Unspecified.", +"The deal is actively serving or ready to serve when the start date is reached.", +"The deal serving has ended.", +"The deal serving is paused by buyer.", +"The deal serving is paused by seller." +], +"type": "string" +}, +"name": { +"description": "The resource name of the finalized deal. Format: `buyers/{accountId}/finalizedDeals/{finalizedDealId}`", +"type": "string" +}, +"readyToServe": { +"description": "Whether the Programmatic Guaranteed deal is ready for serving.", +"type": "boolean" +}, +"rtbMetrics": { +"$ref": "RtbMetrics", +"description": "Real-time bidding metrics for this deal." +} +}, +"type": "object" +}, +"FirstPartyMobileApplicationTargeting": { +"description": "Represents a list of targeted and excluded mobile application IDs that publishers own. Android App ID, for example, com.google.android.apps.maps, can be found in Google Play Store URL. iOS App ID (which is a number) can be found at the end of iTunes store URL. First party mobile applications is either included or excluded.", +"id": "FirstPartyMobileApplicationTargeting", +"properties": { +"excludedAppIds": { +"description": "A list of application IDs to be excluded.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetedAppIds": { +"description": "A list of application IDs to be included.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FrequencyCap": { +"description": "Message contains details about publisher-set frequency caps of the delivery.", +"id": "FrequencyCap", +"properties": { +"maxImpressions": { +"description": "The maximum number of impressions that can be served to a user within the specified time period.", +"format": "int32", +"type": "integer" +}, +"timeUnitType": { +"description": "The time unit. Along with num_time_units defines the amount of time over which impressions per user are counted and capped.", +"enum": [ +"TIME_UNIT_TYPE_UNSPECIFIED", +"MINUTE", +"HOUR", +"DAY", +"WEEK", +"MONTH", +"LIFETIME", +"POD", +"STREAM" +], +"enumDescriptions": [ +"A placeholder for an undefined time unit type. This just indicates the variable with this value hasn't been initialized.", +"Minute unit.", +"Hour unit.", +"Day unit.", +"Week unit.", +"Month unit.", +"Lifecycle/Lifetime unit.", +"Pod unit.", +"Stream unit." +], +"type": "string" +}, +"timeUnitsCount": { +"description": "The amount of time, in the units specified by time_unit_type. Defines the amount of time over which impressions per user are counted and capped.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"InventorySizeTargeting": { +"description": "Represents the size of an ad unit that can be targeted on a bid request.", +"id": "InventorySizeTargeting", +"properties": { +"excludedInventorySizes": { +"description": "A list of inventory sizes to be excluded.", +"items": { +"$ref": "AdSize" +}, +"type": "array" +}, +"targetedInventorySizes": { +"description": "A list of inventory sizes to be included.", +"items": { +"$ref": "AdSize" +}, +"type": "array" +} +}, +"type": "object" +}, +"InventoryTypeTargeting": { +"description": "Targeting of the inventory types a bid request can originate from.", +"id": "InventoryTypeTargeting", +"properties": { +"inventoryTypes": { +"description": "The list of targeted inventory types for the bid request.", +"items": { +"enum": [ +"INVENTORY_TYPE_UNSPECIFIED", +"BROWSER", +"MOBILE_APP", +"VIDEO_PLAYER" +], +"enumDescriptions": [ +"Unspecified inventory type", +"Desktop or mobile web browser excluding ads inside a video player", +"Mobile apps other than video players and web browsers", +"Instream video and audio" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListAuctionPackagesResponse": { +"description": "Response message for listing auction packages.", +"id": "ListAuctionPackagesResponse", +"properties": { +"auctionPackages": { +"description": "The list of auction packages.", +"items": { +"$ref": "AuctionPackage" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results. Pass this value in the ListAuctionPackagesRequest.pageToken field in the subsequent call to the `ListAuctionPackages` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListClientUsersResponse": { +"description": "Response message for the list method.", +"id": "ListClientUsersResponse", +"properties": { +"clientUsers": { +"description": "The returned list of client users.", +"items": { +"$ref": "ClientUser" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the ListClientUsersRequest.pageToken field in the subsequent call to the list method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListClientsResponse": { +"description": "Response message for the list method.", +"id": "ListClientsResponse", +"properties": { +"clients": { +"description": "The returned list of clients.", +"items": { +"$ref": "Client" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the ListClientsRequest.pageToken field in the subsequent call to the list method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListDealsResponse": { +"description": "Response message for listing deals in a proposal.", +"id": "ListDealsResponse", +"properties": { +"deals": { +"description": "The list of deals.", +"items": { +"$ref": "Deal" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to fetch the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListFinalizedDealsResponse": { +"description": "Response message for listing finalized deals.", +"id": "ListFinalizedDealsResponse", +"properties": { +"finalizedDeals": { +"description": "The list of finalized deals.", +"items": { +"$ref": "FinalizedDeal" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to fetch the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListProposalsResponse": { +"description": "Response message for listing proposals.", +"id": "ListProposalsResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +}, +"proposals": { +"description": "The list of proposals.", +"items": { +"$ref": "Proposal" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPublisherProfilesResponse": { +"description": "Response message for profiles visible to the buyer.", +"id": "ListPublisherProfilesResponse", +"properties": { +"nextPageToken": { +"description": "Token to fetch the next page of results.", +"type": "string" +}, +"publisherProfiles": { +"description": "The list of matching publisher profiles.", +"items": { +"$ref": "PublisherProfile" +}, +"type": "array" +} +}, +"type": "object" +}, +"MarketplaceTargeting": { +"description": "Targeting represents different criteria that can be used to target deals or auction packages. For example, they can choose to target inventory only if the user is in the US. Multiple types of targeting are always applied as a logical AND, unless noted otherwise.", +"id": "MarketplaceTargeting", +"properties": { +"daypartTargeting": { +"$ref": "DayPartTargeting", +"description": "Daypart targeting information." +}, +"excludedSensitiveCategoryIds": { +"description": "Output only. The sensitive content category label IDs excluded. Refer to this file https://storage.googleapis.com/adx-rtb-dictionaries/content-labels.txt for category IDs.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"geoTargeting": { +"$ref": "CriteriaTargeting", +"description": "Output only. Geo criteria IDs to be included/excluded.", +"readOnly": true +}, +"inventorySizeTargeting": { +"$ref": "InventorySizeTargeting", +"description": "Output only. Inventory sizes to be included/excluded.", +"readOnly": true +}, +"inventoryTypeTargeting": { +"$ref": "InventoryTypeTargeting", +"description": "Output only. Inventory type targeting information.", +"readOnly": true +}, +"placementTargeting": { +"$ref": "PlacementTargeting", +"description": "Output only. Placement targeting information, for example, URL, mobile applications.", +"readOnly": true +}, +"technologyTargeting": { +"$ref": "TechnologyTargeting", +"description": "Output only. Technology targeting information, for example, operating system, device category.", +"readOnly": true +}, +"userListTargeting": { +"$ref": "CriteriaTargeting", +"description": "Buyer user list targeting information. User lists can be uploaded using https://developers.google.com/authorized-buyers/rtb/bulk-uploader." +}, +"verticalTargeting": { +"$ref": "CriteriaTargeting", +"description": "Output only. The verticals included or excluded as defined in https://developers.google.com/authorized-buyers/rtb/downloads/publisher-verticals", +"readOnly": true +}, +"videoTargeting": { +"$ref": "VideoTargeting", +"description": "Output only. Video targeting information.", +"readOnly": true +} +}, +"type": "object" +}, +"MediaPlanner": { +"description": "Describes a single Media Planner account.", +"id": "MediaPlanner", +"properties": { +"accountId": { +"description": "Output only. Account ID of the media planner.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MobileApplicationTargeting": { +"description": "Mobile application targeting settings.", +"id": "MobileApplicationTargeting", +"properties": { +"firstPartyTargeting": { +"$ref": "FirstPartyMobileApplicationTargeting", +"description": "Publisher owned apps to be targeted or excluded by the publisher to display the ads in." +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Note": { +"description": "A text note attached to the proposal to facilitate the communication between buyers and sellers.", +"id": "Note", +"properties": { +"createTime": { +"description": "Output only. When this note was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creatorRole": { +"description": "Output only. The role who created the note.", +"enum": [ +"BUYER_SELLER_ROLE_UNSPECIFIED", +"BUYER", +"SELLER" +], +"enumDescriptions": [ +"A placeholder for an undefined buyer/seller role.", +"Specifies the role as buyer.", +"Specifies the role as seller." +], +"readOnly": true, +"type": "string" +}, +"note": { +"description": "The text of the note. Maximum length is 1024 characters.", +"type": "string" +} +}, +"type": "object" +}, +"OperatingSystemTargeting": { +"description": "Represents targeting information for operating systems.", +"id": "OperatingSystemTargeting", +"properties": { +"operatingSystemCriteria": { +"$ref": "CriteriaTargeting", +"description": "IDs of operating systems to be included/excluded." +}, +"operatingSystemVersionCriteria": { +"$ref": "CriteriaTargeting", +"description": "IDs of operating system versions to be included/excluded." +} +}, +"type": "object" +}, +"PauseFinalizedDealRequest": { +"description": "Request message for pausing a finalized deal.", +"id": "PauseFinalizedDealRequest", +"properties": { +"reason": { +"description": "The reason to pause the finalized deal, will be displayed to the seller. Maximum length is 1000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"PlacementTargeting": { +"description": "Represents targeting about where the ads can appear, for example, certain sites or mobile applications. Different placement targeting types will be logically OR'ed.", +"id": "PlacementTargeting", +"properties": { +"mobileApplicationTargeting": { +"$ref": "MobileApplicationTargeting", +"description": "Mobile application targeting information in a deal. This doesn't apply to Auction Packages." +}, +"uriTargeting": { +"$ref": "UriTargeting", +"description": "URLs to be included/excluded." +} +}, +"type": "object" +}, +"PreferredDealTerms": { +"description": "Pricing terms for Preferred Deals.", +"id": "PreferredDealTerms", +"properties": { +"fixedPrice": { +"$ref": "Price", +"description": "Fixed price for the deal." +} +}, +"type": "object" +}, +"Price": { +"description": "Represents a price and a pricing type for a deal.", +"id": "Price", +"properties": { +"amount": { +"$ref": "Money", +"description": "The actual price with currency specified." +}, +"type": { +"description": "The pricing type for the deal.", +"enum": [ +"TYPE_UNSPECIFIED", +"CPM", +"CPD" +], +"enumDescriptions": [ +"A placeholder for an undefined pricing type. If the pricing type is unspecified, CPM will be used instead.", +"Cost per thousand impressions.", +"Cost per day." +], +"type": "string" +} +}, +"type": "object" +}, +"PrivateAuctionTerms": { +"description": "Pricing terms for Private Auctions.", +"id": "PrivateAuctionTerms", +"properties": { +"floorPrice": { +"$ref": "Price", +"description": "The minimum price buyer has to bid to compete in the private auction." +}, +"openAuctionAllowed": { +"description": "Output only. True if open auction buyers are allowed to compete with invited buyers in this private auction.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"PrivateData": { +"description": "Buyers are allowed to store certain types of private data in a proposal or deal.", +"id": "PrivateData", +"properties": { +"referenceId": { +"description": "A buyer specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).", +"type": "string" +} +}, +"type": "object" +}, +"ProgrammaticGuaranteedTerms": { +"description": "Pricing terms for Programmatic Guaranteed Deals.", +"id": "ProgrammaticGuaranteedTerms", +"properties": { +"fixedPrice": { +"$ref": "Price", +"description": "Fixed price for the deal." +}, +"guaranteedLooks": { +"description": "Count of guaranteed looks. For CPD deals, buyer changes to guaranteed_looks will be ignored.", +"format": "int64", +"type": "string" +}, +"impressionCap": { +"description": "The lifetime impression cap for CPM Sponsorship deals. Deal will stop serving when cap is reached.", +"format": "int64", +"type": "string" +}, +"minimumDailyLooks": { +"description": "Daily minimum looks for CPD deal types. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.", +"format": "int64", +"type": "string" +}, +"percentShareOfVoice": { +"description": "For sponsorship deals, this is the percentage of the seller's eligible impressions that the deal will serve until the cap is reached. Valid value is within range 0~100.", +"format": "int64", +"type": "string" +}, +"reservationType": { +"description": "The reservation type for a Programmatic Guaranteed deal. This indicates whether the number of impressions is fixed, or a percent of available impressions. If not specified, the default reservation type is STANDARD.", +"enum": [ +"RESERVATION_TYPE_UNSPECIFIED", +"STANDARD", +"SPONSORSHIP" +], +"enumDescriptions": [ +"An unspecified reservation type.", +"Non-sponsorship deal.", +"Sponsorship deals don't have impression goal (guaranteed_looks) and they are served based on the flight dates. For CPM Sponsorship deals, impression_cap is the lifetime impression limit." +], +"type": "string" +} +}, +"type": "object" +}, +"Proposal": { +"description": "Represents a proposal in the Marketplace. A proposal is the unit of negotiation between a seller and a buyer.", +"id": "Proposal", +"properties": { +"billedBuyer": { +"description": "Output only. When the client field is populated, this field refers to the buyer who creates and manages the client buyer and gets billed on behalf of the client buyer; when the buyer field is populated, this field is the same value as buyer. Format : `buyers/{buyerAccountId}`", +"readOnly": true, +"type": "string" +}, +"buyer": { +"description": "Output only. Refers to a buyer in The Realtime-bidding API. Format: `buyers/{buyerAccountId}`", +"readOnly": true, +"type": "string" +}, +"buyerContacts": { +"description": "Contact information for the buyer.", +"items": { +"$ref": "Contact" +}, +"type": "array" +}, +"buyerPrivateData": { +"$ref": "PrivateData", +"description": "Buyer private data (hidden from seller)." +}, +"client": { +"description": "Output only. Refers to a Client. Format: `buyers/{buyerAccountId}/clients/{clientAccountid}`", +"readOnly": true, +"type": "string" +}, +"dealType": { +"description": "Output only. Type of deal the proposal contains.", +"enum": [ +"DEAL_TYPE_UNSPECIFIED", +"PREFERRED_DEAL", +"PRIVATE_AUCTION", +"PROGRAMMATIC_GUARANTEED" +], +"enumDescriptions": [ +"Default, unspecified deal type.", +"Preferred deals.", +"Private auction deals.", +"Programmatic guaranteed deals." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The descriptive name for the proposal. Maximum length of 255 unicode characters is allowed. Control characters are not allowed. Buyers cannot update this field. Note: Not to be confused with name, which is a unique identifier of the proposal.", +"readOnly": true, +"type": "string" +}, +"isRenegotiating": { +"description": "Output only. True if the proposal was previously finalized and is now being renegotiated.", +"readOnly": true, +"type": "boolean" +}, +"lastUpdaterOrCommentorRole": { +"description": "Output only. The role of the last user that either updated the proposal or left a comment.", +"enum": [ +"BUYER_SELLER_ROLE_UNSPECIFIED", +"BUYER", +"SELLER" +], +"enumDescriptions": [ +"A placeholder for an undefined buyer/seller role.", +"Specifies the role as buyer.", +"Specifies the role as seller." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The name of the proposal serving as a unique identifier. Format: buyers/{accountId}/proposals/{proposalId}", +"type": "string" +}, +"notes": { +"description": "A list of notes from the buyer and the seller attached to this proposal.", +"items": { +"$ref": "Note" +}, +"type": "array" +}, +"originatorRole": { +"description": "Output only. Indicates whether the buyer/seller created the proposal.", +"enum": [ +"BUYER_SELLER_ROLE_UNSPECIFIED", +"BUYER", +"SELLER" +], +"enumDescriptions": [ +"A placeholder for an undefined buyer/seller role.", +"Specifies the role as buyer.", +"Specifies the role as seller." +], +"readOnly": true, +"type": "string" +}, +"pausingConsented": { +"description": "Whether pausing is allowed for the proposal. This is a negotiable term between buyers and publishers.", +"type": "boolean" +}, +"proposalRevision": { +"description": "Output only. The revision number for the proposal. Each update to the proposal or deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"publisherProfile": { +"description": "Immutable. Reference to the seller on the proposal. Format: `buyers/{buyerAccountId}/publisherProfiles/{publisherProfileId}` Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.", +"type": "string" +}, +"sellerContacts": { +"description": "Output only. Contact information for the seller.", +"items": { +"$ref": "Contact" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. Indicates the state of the proposal.", +"enum": [ +"STATE_UNSPECIFIED", +"BUYER_REVIEW_REQUESTED", +"SELLER_REVIEW_REQUESTED", +"BUYER_ACCEPTANCE_REQUESTED", +"FINALIZED", +"TERMINATED" +], +"enumDescriptions": [ +"Unspecified proposal state", +"When a proposal is waiting for buyer to review.", +"When the proposal is waiting for the seller to review.", +"When the seller accepted the proposal and sent it to the buyer for review.", +"When both buyer and seller has accepted the proposal", +"When either buyer or seller has cancelled the proposal" +], +"readOnly": true, +"type": "string" +}, +"termsAndConditions": { +"description": "Output only. The terms and conditions associated with this proposal. Accepting a proposal implies acceptance of this field. This is created by the seller, the buyer can only view it.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the proposal was last revised.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PublisherProfile": { +"description": "The values in the publisher profile are supplied by the publisher. All fields are not filterable unless stated otherwise.", +"id": "PublisherProfile", +"properties": { +"audienceDescription": { +"description": "Description on the publisher's audience.", +"type": "string" +}, +"directDealsContact": { +"description": "Contact information for direct reservation deals. This is free text entered by the publisher and may include information like names, phone numbers and email addresses.", +"type": "string" +}, +"displayName": { +"description": "Display name of the publisher profile. Can be used to filter the response of the publisherProfiles.list method.", +"type": "string" +}, +"domains": { +"description": "The list of domains represented in this publisher profile. Empty if this is a parent profile. These are top private domains, meaning that these will not contain a string like \"photos.google.co.uk/123\", but will instead contain \"google.co.uk\". Can be used to filter the response of the publisherProfiles.list method.", +"items": { +"type": "string" +}, +"type": "array" +}, +"isParent": { +"description": "Indicates if this profile is the parent profile of the seller. A parent profile represents all the inventory from the seller, as opposed to child profile that is created to brand a portion of inventory. One seller has only one parent publisher profile, and can have multiple child profiles. See https://support.google.com/admanager/answer/6035806 for details. Can be used to filter the response of the publisherProfiles.list method by setting the filter to \"is_parent: true\".", +"type": "boolean" +}, +"logoUrl": { +"description": "A Google public URL to the logo for this publisher profile. The logo is stored as a PNG, JPG, or GIF image.", +"type": "string" +}, +"mediaKitUrl": { +"description": "URL to additional marketing and sales materials.", +"type": "string" +}, +"mobileApps": { +"description": "The list of apps represented in this publisher profile. Empty if this is a parent profile.", +"items": { +"$ref": "PublisherProfileMobileApplication" +}, +"type": "array" +}, +"name": { +"description": "Name of the publisher profile. Format: `buyers/{buyer}/publisherProfiles/{publisher_profile}`", +"type": "string" +}, +"overview": { +"description": "Overview of the publisher.", +"type": "string" +}, +"pitchStatement": { +"description": "Statement explaining what's unique about publisher's business, and why buyers should partner with the publisher.", +"type": "string" +}, +"programmaticDealsContact": { +"description": "Contact information for programmatic deals. This is free text entered by the publisher and may include information like names, phone numbers and email addresses.", +"type": "string" +}, +"publisherCode": { +"description": "A unique identifying code for the seller. This value is the same for all of the seller's parent and child publisher profiles. Can be used to filter the response of the publisherProfiles.list method.", +"type": "string" +}, +"samplePageUrl": { +"description": "URL to a sample content page.", +"type": "string" +}, +"topHeadlines": { +"description": "Up to three key metrics and rankings. For example, \"#1 Mobile News Site for 20 Straight Months\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PublisherProfileMobileApplication": { +"description": "A mobile application that contains a external app ID, name, and app store.", +"id": "PublisherProfileMobileApplication", +"properties": { +"appStore": { +"description": "The app store the app belongs to. Can be used to filter the response of the publisherProfiles.list method.", +"enum": [ +"APP_STORE_TYPE_UNSPECIFIED", +"APPLE_ITUNES", +"GOOGLE_PLAY", +"ROKU", +"AMAZON_FIRE_TV", +"PLAYSTATION", +"XBOX", +"SAMSUNG_TV", +"AMAZON", +"OPPO", +"SAMSUNG", +"VIVO", +"XIAOMI", +"LG_TV" +], +"enumDescriptions": [ +"A placeholder for an unknown app store.", +"Apple iTunes", +"Google Play", +"Roku", +"Amazon Fire TV", +"PlayStation", +"Xbox", +"Samsung TV", +"Amazon Appstore", +"OPPO App Market", +"Samsung Galaxy Store", +"VIVO App Store", +"Xiaomi GetApps", +"LG TV" +], +"type": "string" +}, +"externalAppId": { +"description": "The external ID for the app from its app store. Can be used to filter the response of the publisherProfiles.list method.", +"type": "string" +}, +"name": { +"description": "The name of the app.", +"type": "string" +} +}, +"type": "object" +}, +"ResumeFinalizedDealRequest": { +"description": "Request message for resuming a finalized deal.", +"id": "ResumeFinalizedDealRequest", +"properties": {}, +"type": "object" +}, +"RtbMetrics": { +"description": "Real-time bidding metrics. For what each metric means refer to [Report metrics](https://support.google.com/adxbuyer/answer/6115195#report-metrics)", +"id": "RtbMetrics", +"properties": { +"adImpressions7Days": { +"description": "Ad impressions in last 7 days.", +"format": "int64", +"type": "string" +}, +"bidRate7Days": { +"description": "Bid rate in last 7 days, calculated by (bids / bid requests).", +"format": "double", +"type": "number" +}, +"bidRequests7Days": { +"description": "Bid requests in last 7 days.", +"format": "int64", +"type": "string" +}, +"bids7Days": { +"description": "Bids in last 7 days.", +"format": "int64", +"type": "string" +}, +"filteredBidRate7Days": { +"description": "Filtered bid rate in last 7 days, calculated by (filtered bids / bids).", +"format": "double", +"type": "number" +}, +"mustBidRateCurrentMonth": { +"description": "Must bid rate for current month.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SendRfpRequest": { +"description": "Request to send an RFP. All fields in this request are proposed to publisher and subject to changes by publisher during later negotiation.", +"id": "SendRfpRequest", +"properties": { +"buyerContacts": { +"description": "Contact information for the buyer.", +"items": { +"$ref": "Contact" +}, +"type": "array" +}, +"client": { +"description": "If the current buyer is sending the RFP on behalf of its client, use this field to specify the name of the client in the format: `buyers/{accountId}/clients/{clientAccountid}`.", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the proposal being created by this RFP.", +"type": "string" +}, +"estimatedGrossSpend": { +"$ref": "Money", +"description": "Specified by buyers in request for proposal (RFP) to notify publisher the total estimated spend for the proposal. Publishers will receive this information and send back proposed deals accordingly." +}, +"flightEndTime": { +"description": "Required. Proposed flight end time of the RFP. A timestamp in RFC3339 UTC \"Zulu\" format. Note that the specified value will be truncated to a granularity of one second.", +"format": "google-datetime", +"type": "string" +}, +"flightStartTime": { +"description": "Required. Proposed flight start time of the RFP. A timestamp in RFC3339 UTC \"Zulu\" format. Note that the specified value will be truncated to a granularity of one second.", +"format": "google-datetime", +"type": "string" +}, +"geoTargeting": { +"$ref": "CriteriaTargeting", +"description": "Geo criteria IDs to be targeted. Refer to Geo tables." +}, +"inventorySizeTargeting": { +"$ref": "InventorySizeTargeting", +"description": "Inventory sizes to be targeted." +}, +"note": { +"description": "A message that is sent to the publisher. Maximum length is 1024 characters.", +"type": "string" +}, +"preferredDealTerms": { +"$ref": "PreferredDealTerms", +"description": "The terms for preferred deals." +}, +"programmaticGuaranteedTerms": { +"$ref": "ProgrammaticGuaranteedTerms", +"description": "The terms for programmatic guaranteed deals." +}, +"publisherProfile": { +"description": "Required. The profile of the publisher who will receive this RFP in the format: `buyers/{accountId}/publisherProfiles/{publisherProfileId}`.", +"type": "string" +} +}, +"type": "object" +}, +"SetReadyToServeRequest": { +"description": "Request message for setting ready to serve for a finalized deal.", +"id": "SetReadyToServeRequest", +"properties": {}, +"type": "object" +}, +"SubscribeAuctionPackageRequest": { +"description": "Request message for SubscribeAuctionPackage.", +"id": "SubscribeAuctionPackageRequest", +"properties": {}, +"type": "object" +}, +"SubscribeClientsRequest": { +"description": "Request message for SubscribeAuctionPackageClients.", +"id": "SubscribeClientsRequest", +"properties": { +"clients": { +"description": "Optional. A list of client buyers to subscribe to the auction package, with client buyer in the format `buyers/{accountId}/clients/{clientAccountId}`. The current buyer will be subscribed to the auction package regardless of the list contents if not already.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TechnologyTargeting": { +"description": "Represents targeting about various types of technology.", +"id": "TechnologyTargeting", +"properties": { +"deviceCapabilityTargeting": { +"$ref": "CriteriaTargeting", +"description": "IDs of device capabilities to be included/excluded." +}, +"deviceCategoryTargeting": { +"$ref": "CriteriaTargeting", +"description": "IDs of device categories to be included/excluded." +}, +"operatingSystemTargeting": { +"$ref": "OperatingSystemTargeting", +"description": "Operating system related targeting information." +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "TimeZone", +"properties": { +"id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"type": "string" +}, +"version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"type": "string" +} +}, +"type": "object" +}, +"UnsubscribeAuctionPackageRequest": { +"description": "Request message for UnsubscribeAuctionPackage.", +"id": "UnsubscribeAuctionPackageRequest", +"properties": {}, +"type": "object" +}, +"UnsubscribeClientsRequest": { +"description": "Request message for UnsubscribeAuctionPackage.", +"id": "UnsubscribeClientsRequest", +"properties": { +"clients": { +"description": "Optional. A list of client buyers to unsubscribe from the auction package, with client buyer in the format `buyers/{accountId}/clients/{clientAccountId}`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateDealRequest": { +"description": "Request message for updating the deal at the given revision number.", +"id": "UpdateDealRequest", +"properties": { +"deal": { +"$ref": "Deal", +"description": "Required. The deal to update. The deal's `name` field is used to identify the deal to be updated. Note: proposal_revision will have to be provided within the resource or else an error will be thrown. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}" +}, +"updateMask": { +"description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UriTargeting": { +"description": "Represents a list of targeted and excluded URLs (for example, google.com). For Private Auction Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't apply.", +"id": "UriTargeting", +"properties": { +"excludedUris": { +"description": "A list of URLs to be excluded.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetedUris": { +"description": "A list of URLs to be included.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VideoTargeting": { +"description": "Represents targeting information about video.", +"id": "VideoTargeting", +"properties": { +"excludedPositionTypes": { +"description": "A list of video positions to be excluded. When this field is populated, the targeted_position_types field must be empty.", +"items": { +"enum": [ +"POSITION_TYPE_UNSPECIFIED", +"PREROLL", +"MIDROLL", +"POSTROLL" +], +"enumDescriptions": [ +"A placeholder for an undefined video position.", +"Ad is played before the video.", +"Ad is played during the video.", +"Ad is played after the video." +], +"type": "string" +}, +"type": "array" +}, +"targetedPositionTypes": { +"description": "A list of video positions to be included. When this field is populated, the excluded_position_types field must be empty.", +"items": { +"enum": [ +"POSITION_TYPE_UNSPECIFIED", +"PREROLL", +"MIDROLL", +"POSTROLL" +], +"enumDescriptions": [ +"A placeholder for an undefined video position.", +"Ad is played before the video.", +"Ad is played during the video.", +"Ad is played after the video." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Authorized Buyers Marketplace API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/beyondcorp.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/beyondcorp.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..fead03dec04d9c0b4a311e12864a842f09c49618 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/beyondcorp.v1alpha.json @@ -0,0 +1,7439 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://beyondcorp.googleapis.com/", +"batchPath": "batch", +"canonicalName": "BeyondCorp", +"description": "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity solutions.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "beyondcorp:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://beyondcorp.mtls.googleapis.com/", +"name": "beyondcorp", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"resources": { +"global": { +"resources": { +"partnerTenants": { +"methods": { +"create": { +"description": "Creates a new BeyondCorp Enterprise partnerTenant in a given organization and can only be called by onboarded BeyondCorp Enterprise partner.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent organization using the form: `organizations/{organization_id}/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/partnerTenants", +"request": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single PartnerTenant.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.organizations.locations.global.partnerTenants.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single PartnerTenant.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the PartnerTenant using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists PartnerTenants in a given organization.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation. All fields in the PartnerTenant message are supported. For example, the following query will return the PartnerTenants with displayName \"test-tenant\" organizations/${ORG_ID}/locations/${LOCATION}/partnerTenants?filter=displayName=\"test-tenant\" Nested fields are also supported. The follow query will return PartnerTenants with internal_tenant_id \"1234\" organizations/${ORG_ID}/locations/${LOCATION}/partnerTenants?filter=partnerMetadata.internalTenantId=\"1234\" For more information, please refer to https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListPartnerTenantsResponse, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent organization to which the PartnerTenants belong. Format: `organizations/{organization_id}/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/partnerTenants", +"response": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaListPartnerTenantsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single PartnerTenant.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.organizations.locations.global.partnerTenants.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Unique resource name of the PartnerTenant. The name is ignored when creating PartnerTenant.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the PartnerTenant resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten. Mutable fields: display_name, partner_metadata, group_information.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"browserDlpRules": { +"methods": { +"create": { +"description": "Creates a new BrowserDlpRule in a given organization and PartnerTenant.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the BrowserDlpRule parent using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/browserDlpRules", +"request": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaBrowserDlpRule" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing BrowserDlpRule.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules/{browserDlpRulesId}", +"httpMethod": "DELETE", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the BrowserDlpRule using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}/browserDlpRules/{browser_dlp_rule_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/browserDlpRules/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single BrowserDlpRule.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules/{browserDlpRulesId}", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the BrowserDlpRule using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}/browserDlpRules/{browser_dlp_rule_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/browserDlpRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaBrowserDlpRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules/{browserDlpRulesId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/browserDlpRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists BrowserDlpRules for PartnerTenant in a given organization.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent partnerTenant to which the BrowserDlpRules belong. Format: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/browserDlpRules", +"response": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaListBrowserDlpRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an existing BrowserDlpRule in a given organization and PartnerTenant.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules/{browserDlpRulesId}", +"httpMethod": "PATCH", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Unique resource name. The name is ignored when creating BrowserDlpRule.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/browserDlpRules/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Supported fields include: rule_setting.value.*, group.id/group.email.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaBrowserDlpRule" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules/{browserDlpRulesId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/browserDlpRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/browserDlpRules/{browserDlpRulesId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.browserDlpRules.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/browserDlpRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"proxyConfigs": { +"methods": { +"create": { +"description": "Creates a new BeyondCorp Enterprise ProxyConfig in a given organization and PartnerTenant. Can only be called by on onboarded Beyondcorp Enterprise partner.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent PartnerTenant using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/proxyConfigs", +"request": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ProxyConfig.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs/{proxyConfigsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single ProxyConfig.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs/{proxyConfigsId}", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ProxyConfig using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}/proxyConfigs/{proxy_config_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs/{proxyConfigsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ProxyConfigs for PartnerTenant in a given organization.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation. All fields in the ProxyConfig message are supported. For example, the following query will return the ProxyConfigs with displayName \"test-config\" organizations/${ORG_ID}/locations/global/partnerTenants/${PARTNER_TENANT_ID}/proxyConfigs?filter=displayName=\"test-config\" Nested fields are also supported. The follow query will return ProxyConfigs with pacUri \"example.com/pac.pac\" organizations/${ORG_ID}/locations/global/partnerTenants/${PARTNER_TENANT_ID}/proxyConfigs?filter=routingInfo.pacUri=\"example.com/pac.pac\" For more information, please refer to https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListProxyConfigsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent organization to which the ProxyConfigs belong. Format: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/proxyConfigs", +"response": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaListProxyConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single proxy config.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs/{proxyConfigsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. ProxyConfig resource name.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mutable fields include: display_name, proxy_uri, routing_info, transport_info, encryption_info.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs/{proxyConfigsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/global/partnerTenants/{partnerTenantsId}/proxyConfigs/{proxyConfigsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.global.partnerTenants.proxyConfigs.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"insights": { +"methods": { +"configuredInsight": { +"description": "Gets the value for a selected particular insight based on the provided filters. Use the organization level path for fetching at org level and project level path for fetching the insight value specific to a particular project.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/insights/{insightsId}:configuredInsight", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.insights.configuredInsight", +"parameterOrder": [ +"insight" +], +"parameters": { +"aggregation": { +"description": "Required. Aggregation type. Available aggregation could be fetched by calling insight list and get APIs in `BASIC` view.", +"enum": [ +"AGGREGATION_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"CUSTOM_DATE_RANGE" +], +"enumDescriptions": [ +"Unspecified.", +"Insight should be aggregated at hourly level.", +"Insight should be aggregated at daily level.", +"Insight should be aggregated at weekly level.", +"Insight should be aggregated at monthly level.", +"Insight should be aggregated at the custom date range passed in as the start and end time in the request." +], +"location": "query", +"type": "string" +}, +"customGrouping.fieldFilter": { +"description": "Optional. Filterable parameters to be added to the grouping clause. Available fields could be fetched by calling insight list and get APIs in `BASIC` view. `=` is the only comparison operator supported. `AND` is the only logical operator supported. Usage: field_filter=\"fieldName1=fieldVal1 AND fieldName2=fieldVal2\". NOTE: Only `AND` conditions are allowed. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for the filtering the corresponding fields in this filter field. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"customGrouping.groupFields": { +"description": "Required. Fields to be used for grouping. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for declaring the fields to be grouped-by here.", +"location": "query", +"repeated": true, +"type": "string" +}, +"endTime": { +"description": "Required. Ending time for the duration for which insight is to be pulled.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"fieldFilter": { +"description": "Optional. Other filterable/configurable parameters as applicable to the selected insight. Available fields could be fetched by calling insight list and get APIs in `BASIC` view. `=` is the only comparison operator supported. `AND` is the only logical operator supported. Usage: field_filter=\"fieldName1=fieldVal1 AND fieldName2=fieldVal2\". NOTE: Only `AND` conditions are allowed. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for the filtering the corresponding fields in this filter field. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"group": { +"description": "Optional. Group id of the available groupings for the insight. Available groupings could be fetched by calling insight list and get APIs in `BASIC` view.", +"location": "query", +"type": "string" +}, +"insight": { +"description": "Required. The resource name of the insight using the form: `organizations/{organization_id}/locations/{location_id}/insights/{insight_id}` `projects/{project_id}/locations/{location_id}/insights/{insight_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Used to fetch the page represented by the token. Fetches the first page when not set.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "Required. Starting time for the duration for which insight is to be pulled.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+insight}:configuredInsight", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaConfiguredInsightResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the value for a selected particular insight with default configuration. The default aggregation level is 'DAILY' and no grouping will be applied or default grouping if applicable. The data will be returned for recent 7 days starting the day before. The insight data size will be limited to 50 rows. Use the organization level path for fetching at org level and project level path for fetching the insight value specific to a particular project. Setting the `view` to `BASIC` will only return the metadata for the insight.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/insights/{insightsId}", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.insights.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the insight using the form: `organizations/{organization_id}/locations/{location_id}/insights/{insight_id}` `projects/{project_id}/locations/{location_id}/insights/{insight_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Required. Metadata only or full data view.", +"enum": [ +"INSIGHT_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Include basic metadata about the insight, but not the insight data. This is the default value (for both ListInsights and GetInsight).", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists for all the available insights that could be fetched from the system. Allows to filter using category. Setting the `view` to `BASIC` will let you iterate over the list of insight metadatas.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/insights", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.insights.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"aggregation": { +"description": "Optional. Aggregation type. The default is 'DAILY'.", +"enum": [ +"AGGREGATION_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"CUSTOM_DATE_RANGE" +], +"enumDescriptions": [ +"Unspecified.", +"Insight should be aggregated at hourly level.", +"Insight should be aggregated at daily level.", +"Insight should be aggregated at weekly level.", +"Insight should be aggregated at monthly level.", +"Insight should be aggregated at the custom date range passed in as the start and end time in the request." +], +"location": "query", +"type": "string" +}, +"endTime": { +"description": "Optional. Ending time for the duration for which insights are to be pulled. The default is the current time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `type` * `category` * `subCategory` Examples: * \"category = application AND type = count\" * \"category = application AND subCategory = iap\" * \"type = status\" Allowed values: * type: [count, latency, status, list] * category: [application, device, request, security] * subCategory: [iap, caa, webprotect] NOTE: Only equality based comparison is allowed. Only `AND` conjunction is allowed. NOTE: The 'AND' in the filter field needs to be in capital letters only. NOTE: Just filtering on `subCategory` is not allowed. It should be passed in with the parent `category` too. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results. This is currently ignored.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default. NOTE: Default page size is 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of InsightMetadata using the form: `organizations/{organization_id}/locations/{location}` `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "Optional. Starting time for the duration for which insights are to be pulled. The default is 7 days before the current time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"view": { +"description": "Required. List only metadata or full data.", +"enum": [ +"INSIGHT_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Include basic metadata about the insight, but not the insight data. This is the default value (for both ListInsights and GetInsight).", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/insights", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaListInsightsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.organizations.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"subscriptions": { +"methods": { +"cancel": { +"description": "Cancels an existing BeyondCorp Enterprise Subscription in a given organization. Location will always be global as BeyondCorp subscriptions are per organization. Returns the timestamp for when the cancellation will become effective", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/subscriptions/{subscriptionsId}:cancel", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.subscriptions.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaCancelSubscriptionResponse" +} +}, +"create": { +"description": "Creates a new BeyondCorp Enterprise Subscription in a given organization. Location will always be global as BeyondCorp subscriptions are per organization.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/subscriptions", +"httpMethod": "POST", +"id": "beyondcorp.organizations.locations.subscriptions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the subscription location using the form: `organizations/{organization_id}/locations/{location}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/subscriptions", +"request": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription" +}, +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription" +} +}, +"get": { +"description": "Gets details of a single Subscription.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/subscriptions/{subscriptionsId}", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.subscriptions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of Subscription using the form: `organizations/{organization_id}/locations/{location}/subscriptions/{subscription_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription" +} +}, +"list": { +"description": "Lists Subscriptions in a given organization and location.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/subscriptions", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.subscriptions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListSubscriptionsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of Subscription using the form: `organizations/{organization_id}/locations/{location}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/subscriptions", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaListSubscriptionsResponse" +} +}, +"patch": { +"description": "Updates an existing BeyondCorp Enterprise Subscription in a given organization. Location will always be global as BeyondCorp subscriptions are per organization.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/subscriptions/{subscriptionsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.organizations.locations.subscriptions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Unique resource name of the Subscription. The name is ignored when creating a subscription.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Subscription resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. Mutable fields: seat_count.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription" +}, +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription" +} +}, +"restart": { +"description": "Restarts an existing BeyondCorp Enterprise Subscription in a given organization, that is scheduled for cancellation. Location will always be global as BeyondCorp subscriptions are per organization. Returns the timestamp for when the cancellation will become effective", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/subscriptions/{subscriptionsId}:restart", +"httpMethod": "GET", +"id": "beyondcorp.organizations.locations.subscriptions.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}:restart", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaRestartSubscriptionResponse" +} +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1alpha/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"appConnections": { +"methods": { +"create": { +"description": "Creates a new AppConnection in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"appConnectionId": { +"description": "Optional. User-settable AppConnection resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or a letter.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource project name of the AppConnection location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/appConnections", +"request": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single AppConnection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections/{appConnectionsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.appConnections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/appConnections/{app_connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single AppConnection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections/{appConnectionsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp AppConnection name using the form: `projects/{project_id}/locations/{location_id}/appConnections/{app_connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections/{appConnectionsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnections.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists AppConnections in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListAppConnectionsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the AppConnection location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/appConnections", +"response": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaListAppConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single AppConnection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections/{appConnectionsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.projects.locations.appConnections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set as true, will create the resource if it is not found.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Unique resource name of the AppConnection. The name is ignored when creating a AppConnection.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from [BeyondCorp.AppConnection]: * `labels` * `display_name` * `application_endpoint` * `connectors`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resolve": { +"description": "Resolves AppConnections details for a given AppConnector. An internal method called by a connector to find AppConnections to connect to.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections:resolve", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnections.resolve", +"parameterOrder": [ +"parent" +], +"parameters": { +"appConnectorId": { +"description": "Required. BeyondCorp Connector name of the connector associated with those AppConnections using the form: `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ResolveAppConnectionsResponse, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the AppConnection location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/appConnections:resolve", +"response": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections/{appConnectionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnections.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnections/{appConnectionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnections.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"appConnectors": { +"methods": { +"create": { +"description": "Creates a new AppConnector in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnectors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"appConnectorId": { +"description": "Optional. User-settable AppConnector resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or a letter.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource project name of the AppConnector location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/appConnectors", +"request": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single AppConnector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.appConnectors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp AppConnector name using the form: `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single AppConnector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnectors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp AppConnector name using the form: `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnectors.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists AppConnectors in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnectors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListAppConnectorsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the AppConnector location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/appConnectors", +"response": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaListAppConnectorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single AppConnector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.projects.locations.appConnectors.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique resource name of the AppConnector. The name is ignored when creating a AppConnector.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from [BeyondCorp.AppConnector]: * `labels` * `display_name`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reportStatus": { +"description": "Report status for a given connector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}:reportStatus", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnectors.reportStatus", +"parameterOrder": [ +"appConnector" +], +"parameters": { +"appConnector": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/connectors/{connector}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+appConnector}:reportStatus", +"request": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaReportStatusRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resolveInstanceConfig": { +"description": "Gets instance configuration for a given AppConnector. An internal method called by a AppConnector to get its container config.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}:resolveInstanceConfig", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appConnectors.resolveInstanceConfig", +"parameterOrder": [ +"appConnector" +], +"parameters": { +"appConnector": { +"description": "Required. BeyondCorp AppConnector name using the form: `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+appConnector}:resolveInstanceConfig", +"response": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaResolveInstanceConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnectors.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appConnectors/{appConnectorsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appConnectors.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appConnectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"appGateways": { +"methods": { +"create": { +"description": "Creates a new AppGateway in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appGateways.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"appGatewayId": { +"description": "Optional. User-settable AppGateway resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or a letter.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource project name of the AppGateway location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/appGateways", +"request": { +"$ref": "AppGateway" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single AppGateway.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways/{appGatewaysId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.appGateways.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp AppGateway name using the form: `projects/{project_id}/locations/{location_id}/appGateways/{app_gateway_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appGateways/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single AppGateway.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways/{appGatewaysId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appGateways.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp AppGateway name using the form: `projects/{project_id}/locations/{location_id}/appGateways/{app_gateway_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "AppGateway" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways/{appGatewaysId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appGateways.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists AppGateways in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appGateways.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListAppGatewaysRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the AppGateway location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/appGateways", +"response": { +"$ref": "ListAppGatewaysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways/{appGatewaysId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appGateways.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"shouldThrottle": { +"description": "Calls the Bouncer method ShouldThrottle to check if a request should be throttled.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways/{appGatewaysId}:shouldThrottle", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.appGateways.shouldThrottle", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appGateways/[^/]+$", +"required": true, +"type": "string" +}, +"port": { +"description": "Optional. The port that is being throttled", +"format": "int32", +"location": "query", +"type": "integer" +}, +"requestedAmount": { +"description": "Optional. The current throughput through the port (mbps)", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}:shouldThrottle", +"response": { +"$ref": "ShouldThrottleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/appGateways/{appGatewaysId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.appGateways.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/appGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"applicationDomains": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applicationDomains/{applicationDomainsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.applicationDomains.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applicationDomains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applicationDomains/{applicationDomainsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.applicationDomains.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applicationDomains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applicationDomains/{applicationDomainsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.applicationDomains.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applicationDomains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"applications": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.applications.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.applications.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.applications.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"clientConnectorServices": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clientConnectorServices/{clientConnectorServicesId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.clientConnectorServices.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientConnectorServices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clientConnectorServices/{clientConnectorServicesId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.clientConnectorServices.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientConnectorServices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clientConnectorServices/{clientConnectorServicesId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.clientConnectorServices.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientConnectorServices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"clientGateways": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clientGateways/{clientGatewaysId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.clientGateways.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clientGateways/{clientGatewaysId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.clientGateways.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/clientGateways/{clientGatewaysId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.clientGateways.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"connections": { +"methods": { +"create": { +"description": "Creates a new Connection in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectionId": { +"description": "Optional. User-settable connection resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or a letter.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource project name of the connection location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/connections", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Connection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.connections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Connection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp Connection name using the form: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connections.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Connections in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListConnectionsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the connection location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/connections", +"response": { +"$ref": "ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Connection.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.projects.locations.connections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set as true, will create the resource if it is not found.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Unique resource name of the connection. The name is ignored when creating a connection.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from [BeyondCorp.Connection]: * `labels` * `display_name` * `application_endpoint` * `connectors`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resolve": { +"description": "Resolves connections details for a given connector. An internal method called by a connector to find connections to connect to.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections:resolve", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connections.resolve", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectorId": { +"description": "Required. BeyondCorp Connector name of the connector associated with those connections using the form: `projects/{project_id}/locations/{location_id}/connectors/{connector_id}`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ResolveConnectionsResponse, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the connection location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/connections:resolve", +"response": { +"$ref": "ResolveConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connections.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connections.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"connectors": { +"methods": { +"create": { +"description": "Creates a new Connector in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connectors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectorId": { +"description": "Optional. User-settable connector resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or a letter.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource project name of the connector location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+parent}/connectors", +"request": { +"$ref": "Connector" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Connector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.connectors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/connectors/{connector_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Connector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connectors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/connectors/{connector_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Connector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connectors.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Connectors in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connectors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListConnectorsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the connector location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/connectors", +"response": { +"$ref": "ListConnectorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Connector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.projects.locations.connectors.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique resource name of the connector. The name is ignored when creating a connector.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from [BeyondCorp.Connector]: * `labels` * `display_name`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Connector" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reportStatus": { +"description": "Report status for a given connector.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}:reportStatus", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connectors.reportStatus", +"parameterOrder": [ +"connector" +], +"parameters": { +"connector": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/connectors/{connector}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+connector}:reportStatus", +"request": { +"$ref": "ReportStatusRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resolveInstanceConfig": { +"description": "Gets instance configuration for a given connector. An internal method called by a connector to get its container config.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}:resolveInstanceConfig", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.connectors.resolveInstanceConfig", +"parameterOrder": [ +"connector" +], +"parameters": { +"connector": { +"description": "Required. BeyondCorp Connector name using the form: `projects/{project_id}/locations/{location_id}/connectors/{connector}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+connector}:resolveInstanceConfig", +"response": { +"$ref": "ResolveInstanceConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connectors.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.connectors.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"global": { +"resources": { +"securityGateways": { +"resources": { +"applications": { +"methods": { +"create": { +"description": "Creates a new Application in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/global/securityGateways/{securityGatewaysId}/applications", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.global.securityGateways.applications.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"applicationId": { +"description": "Optional. User-settable Application resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or letter.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent SecurityGateway using the form: `projects/{project_id}/locations/global/securityGateways/{security_gateway_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/securityGateways/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/applications", +"request": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaApplication" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/global/securityGateways/{securityGatewaysId}/applications/{applicationsId}", +"httpMethod": "PATCH", +"id": "beyondcorp.projects.locations.global.securityGateways.applications.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/securityGateways/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request timed out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mutable fields include: display_name.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaApplication" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/global/securityGateways/{securityGatewaysId}/applications/{applicationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.global.securityGateways.applications.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/securityGateways/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"insights": { +"methods": { +"configuredInsight": { +"description": "Gets the value for a selected particular insight based on the provided filters. Use the organization level path for fetching at org level and project level path for fetching the insight value specific to a particular project.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/insights/{insightsId}:configuredInsight", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.insights.configuredInsight", +"parameterOrder": [ +"insight" +], +"parameters": { +"aggregation": { +"description": "Required. Aggregation type. Available aggregation could be fetched by calling insight list and get APIs in `BASIC` view.", +"enum": [ +"AGGREGATION_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"CUSTOM_DATE_RANGE" +], +"enumDescriptions": [ +"Unspecified.", +"Insight should be aggregated at hourly level.", +"Insight should be aggregated at daily level.", +"Insight should be aggregated at weekly level.", +"Insight should be aggregated at monthly level.", +"Insight should be aggregated at the custom date range passed in as the start and end time in the request." +], +"location": "query", +"type": "string" +}, +"customGrouping.fieldFilter": { +"description": "Optional. Filterable parameters to be added to the grouping clause. Available fields could be fetched by calling insight list and get APIs in `BASIC` view. `=` is the only comparison operator supported. `AND` is the only logical operator supported. Usage: field_filter=\"fieldName1=fieldVal1 AND fieldName2=fieldVal2\". NOTE: Only `AND` conditions are allowed. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for the filtering the corresponding fields in this filter field. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"customGrouping.groupFields": { +"description": "Required. Fields to be used for grouping. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for declaring the fields to be grouped-by here.", +"location": "query", +"repeated": true, +"type": "string" +}, +"endTime": { +"description": "Required. Ending time for the duration for which insight is to be pulled.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"fieldFilter": { +"description": "Optional. Other filterable/configurable parameters as applicable to the selected insight. Available fields could be fetched by calling insight list and get APIs in `BASIC` view. `=` is the only comparison operator supported. `AND` is the only logical operator supported. Usage: field_filter=\"fieldName1=fieldVal1 AND fieldName2=fieldVal2\". NOTE: Only `AND` conditions are allowed. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for the filtering the corresponding fields in this filter field. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"group": { +"description": "Optional. Group id of the available groupings for the insight. Available groupings could be fetched by calling insight list and get APIs in `BASIC` view.", +"location": "query", +"type": "string" +}, +"insight": { +"description": "Required. The resource name of the insight using the form: `organizations/{organization_id}/locations/{location_id}/insights/{insight_id}` `projects/{project_id}/locations/{location_id}/insights/{insight_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Used to fetch the page represented by the token. Fetches the first page when not set.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "Required. Starting time for the duration for which insight is to be pulled.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+insight}:configuredInsight", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaConfiguredInsightResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the value for a selected particular insight with default configuration. The default aggregation level is 'DAILY' and no grouping will be applied or default grouping if applicable. The data will be returned for recent 7 days starting the day before. The insight data size will be limited to 50 rows. Use the organization level path for fetching at org level and project level path for fetching the insight value specific to a particular project. Setting the `view` to `BASIC` will only return the metadata for the insight.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/insights/{insightsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.insights.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the insight using the form: `organizations/{organization_id}/locations/{location_id}/insights/{insight_id}` `projects/{project_id}/locations/{location_id}/insights/{insight_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Required. Metadata only or full data view.", +"enum": [ +"INSIGHT_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Include basic metadata about the insight, but not the insight data. This is the default value (for both ListInsights and GetInsight).", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists for all the available insights that could be fetched from the system. Allows to filter using category. Setting the `view` to `BASIC` will let you iterate over the list of insight metadatas.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/insights", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.insights.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"aggregation": { +"description": "Optional. Aggregation type. The default is 'DAILY'.", +"enum": [ +"AGGREGATION_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"CUSTOM_DATE_RANGE" +], +"enumDescriptions": [ +"Unspecified.", +"Insight should be aggregated at hourly level.", +"Insight should be aggregated at daily level.", +"Insight should be aggregated at weekly level.", +"Insight should be aggregated at monthly level.", +"Insight should be aggregated at the custom date range passed in as the start and end time in the request." +], +"location": "query", +"type": "string" +}, +"endTime": { +"description": "Optional. Ending time for the duration for which insights are to be pulled. The default is the current time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `type` * `category` * `subCategory` Examples: * \"category = application AND type = count\" * \"category = application AND subCategory = iap\" * \"type = status\" Allowed values: * type: [count, latency, status, list] * category: [application, device, request, security] * subCategory: [iap, caa, webprotect] NOTE: Only equality based comparison is allowed. Only `AND` conjunction is allowed. NOTE: The 'AND' in the filter field needs to be in capital letters only. NOTE: Just filtering on `subCategory` is not allowed. It should be passed in with the parent `category` too. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results. This is currently ignored.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default. NOTE: Default page size is 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of InsightMetadata using the form: `organizations/{organization_id}/locations/{location}` `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "Optional. Starting time for the duration for which insights are to be pulled. The default is 7 days before the current time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"view": { +"description": "Required. List only metadata or full data.", +"enum": [ +"INSIGHT_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Include basic metadata about the insight, but not the insight data. This is the default value (for both ListInsights and GetInsight).", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/insights", +"response": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaListInsightsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityGateways": { +"methods": { +"create": { +"description": "Creates a new SecurityGateway in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.securityGateways.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource project name of the SecurityGateway location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.", +"location": "query", +"type": "string" +}, +"securityGatewayId": { +"description": "Optional. User-settable SecurityGateway resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or letter.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/securityGateways", +"request": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGateway" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single SecurityGateway.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.securityGateways.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. BeyondCorp SecurityGateway name using the form: `projects/{project_id}/locations/{location_id}/securityGateways/{security_gateway_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single SecurityGateway.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.securityGateways.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the PartnerTenant using the form: `projects/{project_id}/locations/{location_id}/securityGateway/{security_gateway_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGateway" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.securityGateways.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SecurityGateways in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.securityGateways.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation. All fields in the SecurityGateway message are supported. For example, the following query will return the SecurityGateway with displayName \"test-security-gateway\" For more information, please refer to https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListSecurityGatewayRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent location to which the resources belong. `projects/{project_id}/locations/{location_id}/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/securityGateways", +"response": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaListSecurityGatewaysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single SecurityGateway.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}", +"httpMethod": "PATCH", +"id": "beyondcorp.projects.locations.securityGateways.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request timed out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mutable fields include: display_name, hubs.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGateway" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.securityGateways.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}:testIamPermissions", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.securityGateways.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"applications": { +"methods": { +"delete": { +"description": "Deletes a single Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}/applications/{applicationsId}", +"httpMethod": "DELETE", +"id": "beyondcorp.projects.locations.securityGateways.applications.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}/applications/{applicationsId}", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.securityGateways.applications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Application using the form: `projects/{project_id}/locations/global/securityGateway/{security_gateway_id}/applications/{application_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaApplication" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}/applications/{applicationsId}:getIamPolicy", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.securityGateways.applications.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Applications in a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}/applications", +"httpMethod": "GET", +"id": "beyondcorp.projects.locations.securityGateways.applications.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter specifying constraints of a list operation. All fields in the Application message are supported. For example, the following query will return the Application with displayName \"test-application\" For more information, please refer to https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. See [Sorting order](https://cloud.google.com/apis/design/design_patterns#sorting_order) for more information.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 50 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous ListApplicationsRequest, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent location to which the resources belong. `projects/{project_id}/locations/global/securityGateways/{security_gateway_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/applications", +"response": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaListApplicationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/securityGateways/{securityGatewaysId}/applications/{applicationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "beyondcorp.projects.locations.securityGateways.applications.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securityGateways/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://beyondcorp.googleapis.com/", +"schemas": { +"AllocatedConnection": { +"description": "Allocated connection of the AppGateway.", +"id": "AllocatedConnection", +"properties": { +"ingressPort": { +"description": "Required. The ingress port of an allocated connection", +"format": "int32", +"type": "integer" +}, +"pscUri": { +"description": "Required. The PSC uri of an allocated connection", +"type": "string" +} +}, +"type": "object" +}, +"AppGateway": { +"description": "A BeyondCorp AppGateway resource represents a BeyondCorp protected AppGateway to a remote application. It creates all the necessary GCP components needed for creating a BeyondCorp protected AppGateway. Multiple connectors can be authorised for a single AppGateway.", +"id": "AppGateway", +"properties": { +"allocatedConnections": { +"description": "Output only. A list of connections allocated for the Gateway", +"items": { +"$ref": "AllocatedConnection" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the AppGateway. Cannot exceed 64 characters.", +"type": "string" +}, +"hostType": { +"description": "Required. The type of hosting used by the AppGateway.", +"enum": [ +"HOST_TYPE_UNSPECIFIED", +"GCP_REGIONAL_MIG" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"AppGateway hosted in a GCP regional managed instance group." +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Required. Unique resource name of the AppGateway. The name is ignored when creating an AppGateway.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of the AppGateway.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"UPDATING", +"DELETING", +"DOWN" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"AppGateway is being created.", +"AppGateway has been created.", +"AppGateway's configuration is being updated.", +"AppGateway is being deleted.", +"AppGateway is down and may be restored in the future. This happens when CCFE sends ProjectState = OFF." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of network connectivity used by the AppGateway.", +"enum": [ +"TYPE_UNSPECIFIED", +"TCP_PROXY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"TCP Proxy based BeyondCorp Connection. API will default to this if unset." +], +"type": "string" +}, +"uid": { +"description": "Output only. A unique identifier for the instance generated by the system.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Output only. Server-defined URI for this resource.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AppGatewayOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "AppGatewayOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ApplicationEndpoint": { +"description": "ApplicationEndpoint represents a remote application endpoint.", +"id": "ApplicationEndpoint", +"properties": { +"host": { +"description": "Required. Hostname or IP address of the remote application endpoint.", +"type": "string" +}, +"port": { +"description": "Required. Port of the remote application endpoint.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"CloudPubSubNotificationConfig": { +"description": "The configuration for Pub/Sub messaging for the connector.", +"id": "CloudPubSubNotificationConfig", +"properties": { +"pubsubSubscription": { +"description": "The Pub/Sub subscription the connector uses to receive notifications.", +"type": "string" +} +}, +"type": "object" +}, +"CloudSecurityZerotrustApplinkAppConnectorProtoConnectionConfig": { +"description": "ConnectionConfig represents a Connection Configuration object.", +"id": "CloudSecurityZerotrustApplinkAppConnectorProtoConnectionConfig", +"properties": { +"applicationEndpoint": { +"description": "application_endpoint is the endpoint of the application the form of host:port. For example, \"localhost:80\".", +"type": "string" +}, +"applicationName": { +"description": "application_name represents the given name of the application the connection is connecting with.", +"type": "string" +}, +"gateway": { +"description": "gateway lists all instances running a gateway in GCP. They all connect to a connector on the host.", +"items": { +"$ref": "CloudSecurityZerotrustApplinkAppConnectorProtoGateway" +}, +"type": "array" +}, +"name": { +"description": "name is the unique ID for each connection. TODO(b/190732451) returns connection name from user-specified name in config. Now, name = ${application_name}:${application_endpoint}", +"type": "string" +}, +"project": { +"description": "project represents the consumer project the connection belongs to.", +"type": "string" +}, +"tunnelsPerGateway": { +"description": "tunnels_per_gateway reflects the number of tunnels between a connector and a gateway.", +"format": "uint32", +"type": "integer" +}, +"userPort": { +"description": "user_port specifies the reserved port on gateways for user connections.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"CloudSecurityZerotrustApplinkAppConnectorProtoConnectorDetails": { +"description": "ConnectorDetails reflects the details of a connector.", +"id": "CloudSecurityZerotrustApplinkAppConnectorProtoConnectorDetails", +"properties": {}, +"type": "object" +}, +"CloudSecurityZerotrustApplinkAppConnectorProtoGateway": { +"description": "Gateway represents a GCE VM Instance endpoint for use by IAP TCP.", +"id": "CloudSecurityZerotrustApplinkAppConnectorProtoGateway", +"properties": { +"interface": { +"description": "interface specifies the network interface of the gateway to connect to.", +"type": "string" +}, +"name": { +"description": "name is the name of an instance running a gateway. It is the unique ID for a gateway. All gateways under the same connection have the same prefix. It is derived from the gateway URL. For example, name=${instance} assuming a gateway URL. https://www.googleapis.com/compute/${version}/projects/${project}/zones/${zone}/instances/${instance}", +"type": "string" +}, +"port": { +"description": "port specifies the port of the gateway for tunnel connections from the connectors.", +"format": "uint32", +"type": "integer" +}, +"project": { +"description": "project is the tenant project the gateway belongs to. Different from the project in the connection, it is a BeyondCorpAPI internally created project to manage all the gateways. It is sharing the same network with the consumer project user owned. It is derived from the gateway URL. For example, project=${project} assuming a gateway URL. https://www.googleapis.com/compute/${version}/projects/${project}/zones/${zone}/instances/${instance}", +"type": "string" +}, +"selfLink": { +"description": "self_link is the gateway URL in the form https://www.googleapis.com/compute/${version}/projects/${project}/zones/${zone}/instances/${instance}", +"type": "string" +}, +"zone": { +"description": "zone represents the zone the instance belongs. It is derived from the gateway URL. For example, zone=${zone} assuming a gateway URL. https://www.googleapis.com/compute/${version}/projects/${project}/zones/${zone}/instances/${instance}", +"type": "string" +} +}, +"type": "object" +}, +"CloudSecurityZerotrustApplinkLogagentProtoLogAgentDetails": { +"description": "LogAgentDetails reflects the details of a log agent.", +"id": "CloudSecurityZerotrustApplinkLogagentProtoLogAgentDetails", +"properties": {}, +"type": "object" +}, +"Connection": { +"description": "A BeyondCorp Connection resource represents a BeyondCorp protected connection to a remote application. It creates all the necessary GCP components needed for creating a BeyondCorp protected connection. Multiple connectors can be authorised for a single Connection.", +"id": "Connection", +"properties": { +"applicationEndpoint": { +"$ref": "ApplicationEndpoint", +"description": "Required. Address of the remote application endpoint for the BeyondCorp Connection." +}, +"connectors": { +"description": "Optional. List of [google.cloud.beyondcorp.v1main.Connector.name] that are authorised to be associated with this Connection.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the connection. Cannot exceed 64 characters.", +"type": "string" +}, +"gateway": { +"$ref": "Gateway", +"description": "Optional. Gateway used by the connection." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Required. Unique resource name of the connection. The name is ignored when creating a connection.", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the connection.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"UPDATING", +"DELETING", +"DOWN" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Connection is being created.", +"Connection has been created.", +"Connection's configuration is being updated.", +"Connection is being deleted.", +"Connection is down and may be restored in the future. This happens when CCFE sends ProjectState = OFF." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of network connectivity used by the connection.", +"enum": [ +"TYPE_UNSPECIFIED", +"TCP_PROXY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"TCP Proxy based BeyondCorp Connection. API will default to this if unset." +], +"type": "string" +}, +"uid": { +"description": "Output only. A unique identifier for the instance generated by the system.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConnectionDetails": { +"description": "Details of the Connection.", +"id": "ConnectionDetails", +"properties": { +"connection": { +"$ref": "Connection", +"description": "A BeyondCorp Connection in the project." +}, +"recentMigVms": { +"description": "If type=GCP_REGIONAL_MIG, contains most recent VM instances, like \"https://www.googleapis.com/compute/v1/projects/{project_id}/zones/{zone_id}/instances/{instance_id}\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConnectionOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "ConnectionOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Connector": { +"description": "A BeyondCorp connector resource that represents an application facing component deployed proximal to and with direct access to the application instances. It is used to establish connectivity between the remote enterprise environment and GCP. It initiates connections to the applications and can proxy the data from users over the connection.", +"id": "Connector", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the connector. Cannot exceed 64 characters.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Required. Unique resource name of the connector. The name is ignored when creating a connector.", +"type": "string" +}, +"principalInfo": { +"$ref": "PrincipalInfo", +"description": "Required. Principal information about the Identity of the connector." +}, +"resourceInfo": { +"$ref": "ResourceInfo", +"description": "Optional. Resource info of the connector." +}, +"state": { +"description": "Output only. The current state of the connector.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"UPDATING", +"DELETING", +"DOWN" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Connector is being created.", +"Connector has been created.", +"Connector's configuration is being updated.", +"Connector is being deleted.", +"Connector is down and may be restored in the future. This happens when CCFE sends ProjectState = OFF." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A unique identifier for the instance generated by the system.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConnectorInstanceConfig": { +"description": "ConnectorInstanceConfig defines the instance config of a connector.", +"id": "ConnectorInstanceConfig", +"properties": { +"imageConfig": { +"$ref": "ImageConfig", +"description": "ImageConfig defines the GCR images to run for the remote agent's control plane." +}, +"instanceConfig": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The SLM instance agent configuration.", +"type": "object" +}, +"notificationConfig": { +"$ref": "NotificationConfig", +"description": "NotificationConfig defines the notification mechanism that the remote instance should subscribe to in order to receive notification." +}, +"sequenceNumber": { +"description": "Required. A monotonically increasing number generated and maintained by the API provider. Every time a config changes in the backend, the sequenceNumber should be bumped up to reflect the change.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ConnectorOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "ConnectorOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContainerHealthDetails": { +"description": "ContainerHealthDetails reflects the health details of a container.", +"id": "ContainerHealthDetails", +"properties": { +"currentConfigVersion": { +"description": "The version of the current config.", +"type": "string" +}, +"errorMsg": { +"description": "The latest error message.", +"type": "string" +}, +"expectedConfigVersion": { +"description": "The version of the expected config.", +"type": "string" +}, +"extendedStatus": { +"additionalProperties": { +"type": "string" +}, +"description": "The extended status. Such as ExitCode, StartedAt, FinishedAt, etc.", +"type": "object" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Gateway": { +"description": "Gateway represents a user facing component that serves as an entrance to enable connectivity.", +"id": "Gateway", +"properties": { +"type": { +"description": "Required. The type of hosting used by the gateway.", +"enum": [ +"TYPE_UNSPECIFIED", +"GCP_REGIONAL_MIG" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Gateway hosted in a GCP regional managed instance group." +], +"type": "string" +}, +"uri": { +"description": "Output only. Server-defined URI for this resource.", +"readOnly": true, +"type": "string" +}, +"userPort": { +"description": "Output only. User port reserved on the gateways for this connection, if not specified or zero, the default port is 19443.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1AppConnectionOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1AppConnectionOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection": { +"description": "A BeyondCorp AppConnection resource represents a BeyondCorp protected AppConnection to a remote application. It creates all the necessary GCP components needed for creating a BeyondCorp protected AppConnection. Multiple connectors can be authorised for a single AppConnection.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection", +"properties": { +"applicationEndpoint": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionApplicationEndpoint", +"description": "Required. Address of the remote application endpoint for the BeyondCorp AppConnection." +}, +"connectors": { +"description": "Optional. List of [google.cloud.beyondcorp.v1main.Connector.name] that are authorised to be associated with this AppConnection.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the AppConnection. Cannot exceed 64 characters.", +"type": "string" +}, +"gateway": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionGateway", +"description": "Optional. Gateway used by the AppConnection." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Required. Unique resource name of the AppConnection. The name is ignored when creating a AppConnection.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of the AppConnection.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"UPDATING", +"DELETING", +"DOWN" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"AppConnection is being created.", +"AppConnection has been created.", +"AppConnection's configuration is being updated.", +"AppConnection is being deleted.", +"AppConnection is down and may be restored in the future. This happens when CCFE sends ProjectState = OFF." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of network connectivity used by the AppConnection.", +"enum": [ +"TYPE_UNSPECIFIED", +"TCP_PROXY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"TCP Proxy based BeyondCorp AppConnection. API will default to this if unset." +], +"type": "string" +}, +"uid": { +"description": "Output only. A unique identifier for the instance generated by the system.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionApplicationEndpoint": { +"description": "ApplicationEndpoint represents a remote application endpoint.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionApplicationEndpoint", +"properties": { +"host": { +"description": "Required. Hostname or IP address of the remote application endpoint.", +"type": "string" +}, +"port": { +"description": "Required. Port of the remote application endpoint.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionGateway": { +"description": "Gateway represents a user facing component that serves as an entrance to enable connectivity.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionGateway", +"properties": { +"appGateway": { +"description": "Required. AppGateway name in following format: `projects/{project_id}/locations/{location_id}/appgateways/{gateway_id}`", +"type": "string" +}, +"ingressPort": { +"description": "Output only. Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"l7psc": { +"description": "Output only. L7 private service connection for this resource.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of hosting used by the gateway.", +"enum": [ +"TYPE_UNSPECIFIED", +"GCP_REGIONAL_MIG" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Gateway hosted in a GCP regional managed instance group." +], +"type": "string" +}, +"uri": { +"description": "Output only. Server-defined URI for this resource.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaListAppConnectionsResponse": { +"description": "Response message for BeyondCorp.ListAppConnections.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaListAppConnectionsResponse", +"properties": { +"appConnections": { +"description": "A list of BeyondCorp AppConnections in the project.", +"items": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponse": { +"description": "Response message for BeyondCorp.ResolveAppConnections.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponse", +"properties": { +"appConnectionDetails": { +"description": "A list of BeyondCorp AppConnections with details in the project.", +"items": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponseAppConnectionDetails" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponseAppConnectionDetails": { +"description": "Details of the AppConnection.", +"id": "GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponseAppConnectionDetails", +"properties": { +"appConnection": { +"$ref": "GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection", +"description": "A BeyondCorp AppConnection in the project." +}, +"recentMigVms": { +"description": "If type=GCP_REGIONAL_MIG, contains most recent VM instances, like `https://www.googleapis.com/compute/v1/projects/{project_id}/zones/{zone_id}/instances/{instance_id}`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1AppConnectorOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1AppConnectorOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1ContainerHealthDetails": { +"description": "ContainerHealthDetails reflects the health details of a container.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1ContainerHealthDetails", +"properties": { +"currentConfigVersion": { +"description": "The version of the current config.", +"type": "string" +}, +"errorMsg": { +"description": "The latest error message.", +"type": "string" +}, +"expectedConfigVersion": { +"description": "The version of the expected config.", +"type": "string" +}, +"extendedStatus": { +"additionalProperties": { +"type": "string" +}, +"description": "The extended status. Such as ExitCode, StartedAt, FinishedAt, etc.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1RemoteAgentDetails": { +"description": "RemoteAgentDetails reflects the details of a remote agent.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1RemoteAgentDetails", +"properties": {}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector": { +"description": "A BeyondCorp connector resource that represents an application facing component deployed proximal to and with direct access to the application instances. It is used to establish connectivity between the remote enterprise environment and GCP. It initiates connections to the applications and can proxy the data from users over the connection.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the AppConnector. Cannot exceed 64 characters.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Required. Unique resource name of the AppConnector. The name is ignored when creating a AppConnector.", +"type": "string" +}, +"principalInfo": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfo", +"description": "Required. Principal information about the Identity of the AppConnector." +}, +"resourceInfo": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo", +"description": "Optional. Resource info of the connector." +}, +"state": { +"description": "Output only. The current state of the AppConnector.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"UPDATING", +"DELETING", +"DOWN" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"AppConnector is being created.", +"AppConnector has been created.", +"AppConnector's configuration is being updated.", +"AppConnector is being deleted.", +"AppConnector is down and may be restored in the future. This happens when CCFE sends ProjectState = OFF." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A unique identifier for the instance generated by the system.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorInstanceConfig": { +"description": "AppConnectorInstanceConfig defines the instance config of a AppConnector.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorInstanceConfig", +"properties": { +"imageConfig": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaImageConfig", +"description": "ImageConfig defines the GCR images to run for the remote agent's control plane." +}, +"instanceConfig": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The SLM instance agent configuration.", +"type": "object" +}, +"notificationConfig": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfig", +"description": "NotificationConfig defines the notification mechanism that the remote instance should subscribe to in order to receive notification." +}, +"sequenceNumber": { +"description": "Required. A monotonically increasing number generated and maintained by the API provider. Every time a config changes in the backend, the sequenceNumber should be bumped up to reflect the change.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfo": { +"description": "PrincipalInfo represents an Identity oneof.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfo", +"properties": { +"serviceAccount": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccount", +"description": "A GCP service account." +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccount": { +"description": "ServiceAccount represents a GCP service account.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccount", +"properties": { +"email": { +"description": "Email address of the service account.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaContainerHealthDetails": { +"description": "ContainerHealthDetails reflects the health details of a container.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaContainerHealthDetails", +"properties": { +"currentConfigVersion": { +"description": "The version of the current config.", +"type": "string" +}, +"errorMsg": { +"description": "The latest error message.", +"type": "string" +}, +"expectedConfigVersion": { +"description": "The version of the expected config.", +"type": "string" +}, +"extendedStatus": { +"additionalProperties": { +"type": "string" +}, +"description": "The extended status. Such as ExitCode, StartedAt, FinishedAt, etc.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaImageConfig": { +"description": "ImageConfig defines the control plane images to run.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaImageConfig", +"properties": { +"stableImage": { +"description": "The stable image that the remote agent will fallback to if the target image fails. Format would be a gcr image path, e.g.: gcr.io/PROJECT-ID/my-image:tag1", +"type": "string" +}, +"targetImage": { +"description": "The initial image the remote agent will attempt to run for the control plane. Format would be a gcr image path, e.g.: gcr.io/PROJECT-ID/my-image:tag1", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaListAppConnectorsResponse": { +"description": "Response message for BeyondCorp.ListAppConnectors.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaListAppConnectorsResponse", +"properties": { +"appConnectors": { +"description": "A list of BeyondCorp AppConnectors in the project.", +"items": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfig": { +"description": "NotificationConfig defines the mechanisms to notify instance agent.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfig", +"properties": { +"pubsubNotification": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfigCloudPubSubNotificationConfig", +"description": "Cloud Pub/Sub Configuration to receive notifications." +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfigCloudPubSubNotificationConfig": { +"description": "The configuration for Pub/Sub messaging for the AppConnector.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfigCloudPubSubNotificationConfig", +"properties": { +"pubsubSubscription": { +"description": "The Pub/Sub subscription the AppConnector uses to receive notifications.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaRemoteAgentDetails": { +"description": "RemoteAgentDetails reflects the details of a remote agent.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaRemoteAgentDetails", +"properties": {}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaReportStatusRequest": { +"description": "Request report the connector status.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaReportStatusRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"resourceInfo": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo", +"description": "Required. Resource info of the connector." +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaResolveInstanceConfigResponse": { +"description": "Response message for BeyondCorp.ResolveInstanceConfig.", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaResolveInstanceConfigResponse", +"properties": { +"instanceConfig": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorInstanceConfig", +"description": "AppConnectorInstanceConfig." +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo": { +"description": "ResourceInfo represents the information/status of an app connector resource. Such as: - remote_agent - container - runtime - appgateway - appconnector - appconnection - tunnel - logagent", +"id": "GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo", +"properties": { +"id": { +"description": "Required. Unique Id for the resource.", +"type": "string" +}, +"resource": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Specific details for the resource. This is for internal use only.", +"type": "object" +}, +"status": { +"description": "Overall health status. Overall status is derived based on the status of each sub level resources.", +"enum": [ +"HEALTH_STATUS_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"UNRESPONSIVE", +"DEGRADED" +], +"enumDescriptions": [ +"Health status is unknown: not initialized or failed to retrieve.", +"The resource is healthy.", +"The resource is unhealthy.", +"The resource is unresponsive.", +"Some sub-resources are UNHEALTHY." +], +"type": "string" +}, +"sub": { +"description": "List of Info for the sub level resources.", +"items": { +"$ref": "GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo" +}, +"type": "array" +}, +"time": { +"description": "The timestamp to collect the info. It is suggested to be set by the topmost level resource only.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpAppgatewaysV1AppGatewayOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpAppgatewaysV1AppGatewayOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaBrowserDlpRule": { +"description": "Browser DLP Rule for a PartnerTenant", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaBrowserDlpRule", +"properties": { +"group": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaGroup", +"description": "Required. The group to which this Rule should be applied to." +}, +"name": { +"description": "Output only. Unique resource name. The name is ignored when creating BrowserDlpRule.", +"readOnly": true, +"type": "string" +}, +"ruleSetting": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaRuleSetting", +"description": "Required. The policy settings to apply." +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaEncryptionInfo": { +"description": "Message contains the JWT encryption information for the proxy server.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaEncryptionInfo", +"properties": { +"encryptionSaEmail": { +"description": "Optional. Service Account for encryption key.", +"type": "string" +}, +"jwk": { +"description": "Optional. JWK in string.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaGroup": { +"description": "Message to capture group information", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaGroup", +"properties": { +"email": { +"description": "The group email id", +"type": "string" +}, +"id": { +"description": "Google group id", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaListBrowserDlpRulesResponse": { +"description": "Message for response to listing BrowserDlpRules.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaListBrowserDlpRulesResponse", +"properties": { +"browserDlpRules": { +"description": "The list of BrowserDlpRule objects.", +"items": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaBrowserDlpRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaListPartnerTenantsResponse": { +"description": "Message for response to listing PartnerTenants.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaListPartnerTenantsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"partnerTenants": { +"description": "The list of PartnerTenant objects.", +"items": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaListProxyConfigsResponse": { +"description": "Message for response to listing ProxyConfigs.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaListProxyConfigsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"proxyConfigs": { +"description": "The list of ProxyConfig objects.", +"items": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerMetadata": { +"description": "Metadata associated with PartnerTenant and is provided by the Partner.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerMetadata", +"properties": { +"internalTenantId": { +"description": "Optional. UUID used by the Partner to refer to the PartnerTenant in their internal systems.", +"type": "string" +}, +"partnerTenantId": { +"description": "Optional. UUID used by the Partner to refer to the PartnerTenant in their internal systems.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerServiceOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerServiceOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant": { +"description": "Information about a BeyoncCorp Enterprise PartnerTenant.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary caller-provided name for the PartnerTenant. Cannot exceed 64 characters.", +"type": "string" +}, +"group": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaGroup", +"description": "Optional. Group information for the users enabled to use the partnerTenant. If the group information is not provided then the partnerTenant will be enabled for all users." +}, +"name": { +"description": "Output only. Unique resource name of the PartnerTenant. The name is ignored when creating PartnerTenant.", +"readOnly": true, +"type": "string" +}, +"partnerMetadata": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerMetadata", +"description": "Optional. Metadata provided by the Partner associated with PartnerTenant." +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig": { +"description": "Proxy Configuration of a PartnerTenant.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary caller-provided name for the ProxyConfig. Cannot exceed 64 characters.", +"type": "string" +}, +"encryptionInfo": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaEncryptionInfo", +"description": "Optional. Information to encrypt JWT for the proxy server." +}, +"name": { +"description": "Output only. ProxyConfig resource name.", +"readOnly": true, +"type": "string" +}, +"proxyProtocolConfig": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig", +"description": "Optional. Protocol config data for the Proxy." +}, +"proxyUri": { +"description": "Required. The URI of the proxy server.", +"type": "string" +}, +"routingInfo": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfo", +"description": "Required. Routing info to direct traffic to the proxy server." +}, +"transportInfo": { +"$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaTransportInfo", +"description": "Optional. Transport layer information to verify for the proxy server." +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig": { +"description": "The protocol data that specifies how to communicate with Partner's Proxy.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig", +"properties": { +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Untyped property bag to be sent back to the proxy using client specific mechanism.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfo": { +"description": "Message contains the routing information to direct traffic to the proxy server.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfo", +"properties": { +"pacUri": { +"description": "Required. Proxy Auto-Configuration (PAC) URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaRuleSetting": { +"description": "Message to capture settings for a BrowserDlpRule", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaRuleSetting", +"properties": { +"type": { +"description": "Required. Immutable. The type of the Setting. .", +"type": "string" +}, +"value": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. The value of the Setting.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1alphaTransportInfo": { +"description": "Message contains the transport layer information to verify the proxy server.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1alphaTransportInfo", +"properties": { +"serverCaCertPem": { +"description": "Required. PEM encoded CA certificate associated with the proxy server certificate.", +"type": "string" +}, +"sslDecryptCaCertPem": { +"description": "Optional. PEM encoded CA certificate associated with the certificate used by proxy server for SSL decryption.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpPartnerservicesV1mainPartnerServiceOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpPartnerservicesV1mainPartnerServiceOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaAppliedConfig": { +"description": "The configuration that was applied to generate the result.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaAppliedConfig", +"properties": { +"aggregation": { +"description": "Output only. Aggregation type applied.", +"enum": [ +"AGGREGATION_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"CUSTOM_DATE_RANGE" +], +"enumDescriptions": [ +"Unspecified.", +"Insight should be aggregated at hourly level.", +"Insight should be aggregated at daily level.", +"Insight should be aggregated at weekly level.", +"Insight should be aggregated at monthly level.", +"Insight should be aggregated at the custom date range passed in as the start and end time in the request." +], +"readOnly": true, +"type": "string" +}, +"customGrouping": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaCustomGrouping", +"description": "Output only. Customised grouping applied.", +"readOnly": true +}, +"endTime": { +"description": "Output only. Ending time for the duration for which insight was pulled.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"fieldFilter": { +"description": "Output only. Filters applied.", +"readOnly": true, +"type": "string" +}, +"group": { +"description": "Output only. Group id of the grouping applied.", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. Starting time for the duration for which insight was pulled.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaConfiguredInsightResponse": { +"description": "The response for the configured insight.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaConfiguredInsightResponse", +"properties": { +"appliedConfig": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaAppliedConfig", +"description": "Output only. Applied insight config to generate the result data rows.", +"readOnly": true +}, +"nextPageToken": { +"description": "Output only. Next page token to be fetched. Set to empty or NULL if there are no more pages available.", +"readOnly": true, +"type": "string" +}, +"rows": { +"description": "Output only. Result rows returned containing the required value(s) for configured insight.", +"items": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRow" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaCustomGrouping": { +"description": "Customised grouping option that allows setting the group_by fields and also the filters togather for a configured insight request.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaCustomGrouping", +"properties": { +"fieldFilter": { +"description": "Optional. Filterable parameters to be added to the grouping clause. Available fields could be fetched by calling insight list and get APIs in `BASIC` view. `=` is the only comparison operator supported. `AND` is the only logical operator supported. Usage: field_filter=\"fieldName1=fieldVal1 AND fieldName2=fieldVal2\". NOTE: Only `AND` conditions are allowed. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for the filtering the corresponding fields in this filter field. (These expressions are based on the filter language described at https://google.aip.dev/160).", +"type": "string" +}, +"groupFields": { +"description": "Required. Fields to be used for grouping. NOTE: Use the `filter_alias` from `Insight.Metadata.Field` message for declaring the fields to be grouped-by here.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsight": { +"description": "The Insight object with configuration that was returned and actual list of records.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsight", +"properties": { +"appliedConfig": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaAppliedConfig", +"description": "Output only. Applied insight config to generate the result data rows.", +"readOnly": true +}, +"metadata": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsightMetadata", +"description": "Output only. Metadata for the Insight.", +"readOnly": true +}, +"name": { +"description": "Output only. The insight resource name. e.g. `organizations/{organization_id}/locations/{location_id}/insights/{insight_id}` OR `projects/{project_id}/locations/{location_id}/insights/{insight_id}`.", +"readOnly": true, +"type": "string" +}, +"rows": { +"description": "Output only. Result rows returned containing the required value(s).", +"items": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRow" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsightMetadata": { +"description": "Insight filters, groupings and aggregations that can be applied for the insight. Examples: aggregations, groups, field filters.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsightMetadata", +"properties": { +"aggregations": { +"description": "Output only. List of aggregation types available for insight.", +"items": { +"enum": [ +"AGGREGATION_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"CUSTOM_DATE_RANGE" +], +"enumDescriptions": [ +"Unspecified.", +"Insight should be aggregated at hourly level.", +"Insight should be aggregated at daily level.", +"Insight should be aggregated at weekly level.", +"Insight should be aggregated at monthly level.", +"Insight should be aggregated at the custom date range passed in as the start and end time in the request." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"category": { +"description": "Output only. Category of the insight.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. Common name of the insight.", +"readOnly": true, +"type": "string" +}, +"fields": { +"description": "Output only. List of fields available for insight.", +"items": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsightMetadataField" +}, +"readOnly": true, +"type": "array" +}, +"groups": { +"description": "Output only. List of groupings available for insight.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"subCategory": { +"description": "Output only. Sub-Category of the insight.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type of the insight. It is metadata describing whether the insight is a metric (e.g. count) or a report (e.g. list, status).", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsightMetadataField": { +"description": "Field metadata. Commonly understandable name and description for the field. Multiple such fields constitute the Insight.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsightMetadataField", +"properties": { +"description": { +"description": "Output only. Description of the field.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. Name of the field.", +"readOnly": true, +"type": "string" +}, +"filterAlias": { +"description": "Output only. Field name to be used in filter while requesting configured insight filtered on this field.", +"readOnly": true, +"type": "string" +}, +"filterable": { +"description": "Output only. Indicates whether the field can be used for filtering.", +"readOnly": true, +"type": "boolean" +}, +"groupable": { +"description": "Output only. Indicates whether the field can be used for grouping in custom grouping request.", +"readOnly": true, +"type": "boolean" +}, +"id": { +"description": "Output only. Field id for which this is the metadata.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaListInsightsResponse": { +"description": "The response for the list of insights.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaListInsightsResponse", +"properties": { +"insights": { +"description": "Output only. List of all insights.", +"items": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaInsight" +}, +"readOnly": true, +"type": "array" +}, +"nextPageToken": { +"description": "Output only. Next page token to be fetched. Set to empty or NULL if there are no more pages available.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRow": { +"description": "Row of the fetch response consisting of a set of entries.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRow", +"properties": { +"fieldValues": { +"description": "Output only. Columns/entries/key-vals in the result.", +"items": { +"$ref": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRowFieldVal" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRowFieldVal": { +"description": "Column or key value pair from the request as part of key to use in query or a single pair of the fetch response.", +"id": "GoogleCloudBeyondcorpSaasplatformInsightsV1alphaRowFieldVal", +"properties": { +"displayName": { +"description": "Output only. Name of the field.", +"readOnly": true, +"type": "string" +}, +"filterAlias": { +"description": "Output only. Field name to be used in filter while requesting configured insight filtered on this field.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. Field id.", +"readOnly": true, +"type": "string" +}, +"value": { +"description": "Output only. Value of the field in string format. Acceptable values are strings or numbers.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaCancelSubscriptionResponse": { +"description": "Response message for BeyondCorp.CancelSubscription", +"id": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaCancelSubscriptionResponse", +"properties": { +"effectiveCancellationTime": { +"description": "Time when the cancellation will become effective", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaListSubscriptionsResponse": { +"description": "Response message for BeyondCorp.ListSubscriptions.", +"id": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaListSubscriptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"subscriptions": { +"description": "A list of BeyondCorp Subscriptions in the organization.", +"items": { +"$ref": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaRestartSubscriptionResponse": { +"description": "Response message for BeyondCorp.RestartSubscription", +"id": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaRestartSubscriptionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription": { +"description": "A BeyondCorp Subscription resource represents BeyondCorp Enterprise Subscription. BeyondCorp Enterprise Subscription enables BeyondCorp Enterprise permium features for an organization.", +"id": "GoogleCloudBeyondcorpSaasplatformSubscriptionsV1alphaSubscription", +"properties": { +"autoRenewEnabled": { +"description": "Output only. Represents that, if subscription will renew or end when the term ends.", +"readOnly": true, +"type": "boolean" +}, +"billingAccount": { +"description": "Optional. Name of the billing account in the format. e.g. billingAccounts/123456-123456-123456 Required if Subscription is of Paid type.", +"type": "string" +}, +"createTime": { +"description": "Output only. Create time of the subscription.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. End time of the subscription.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Unique resource name of the Subscription. The name is ignored when creating a subscription.", +"type": "string" +}, +"seatCount": { +"description": "Optional. Number of seats in the subscription.", +"format": "int64", +"type": "string" +}, +"sku": { +"description": "Required. SKU of subscription.", +"enum": [ +"SKU_UNSPECIFIED", +"BCE_STANDARD_SKU" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents BeyondCorp Standard SKU." +], +"type": "string" +}, +"startTime": { +"description": "Output only. Start time of the subscription.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the subscription.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE", +"COMPLETED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents an active subscription.", +"Represents an upcomming subscription.", +"Represents a completed subscription." +], +"readOnly": true, +"type": "string" +}, +"subscriberType": { +"description": "Output only. Type of subscriber.", +"enum": [ +"SUBSCRIBER_TYPE_UNSPECIFIED", +"ONLINE", +"OFFLINE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents an online subscription.", +"Represents an offline subscription." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. Type of subscription.", +"enum": [ +"TYPE_UNSPECIFIED", +"TRIAL", +"PAID", +"ALLOWLIST" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents a trial subscription.", +"Represents a paid subscription.", +"Reresents an allowlisted subscription." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1SecurityGatewayOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1SecurityGatewayOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaApplication": { +"description": "A Beyondcorp Application resource information.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaApplication", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the Application resource. Cannot exceed 64 characters.", +"type": "string" +}, +"endpointMatchers": { +"description": "Required. Endpoint matchers associated with an application. A combination of hostname and ports as endpoint matcher is used to match the application. Match conditions for OR logic. An array of match conditions to allow for multiple matching criteria. The rule is considered a match if one the conditions are met. The conditions can be one of the following combination (Hostname), (Hostname & Ports) EXAMPLES: Hostname - (\"*.abc.com\"), (\"xyz.abc.com\") Hostname and Ports - (\"abc.com\" and \"22\"), (\"abc.com\" and \"22,33\") etc", +"items": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaEndpointMatcher" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Name of the resource.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaEndpointMatcher": { +"description": "EndpointMatcher contains the information of the endpoint that will match the application.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaEndpointMatcher", +"properties": { +"hostname": { +"description": "Required. Hostname of the application.", +"type": "string" +}, +"ports": { +"description": "Optional. Ports of the application.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaHub": { +"description": "The Hub message contains information pertaining to the regional data path deployments.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaHub", +"properties": { +"internetGateway": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaInternetGateway", +"description": "Optional. Internet Gateway configuration." +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaInternetGateway": { +"description": "Represents the Internet Gateway configuration.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaInternetGateway", +"properties": { +"assignedIps": { +"description": "Output only. List of IP addresses assigned to the Cloud NAT.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaListApplicationsResponse": { +"description": "Message for response to listing Applications.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaListApplicationsResponse", +"properties": { +"applications": { +"description": "A list of BeyondCorp Application in the project.", +"items": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaApplication" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaListSecurityGatewaysResponse": { +"description": "Message for response to listing SecurityGateways.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaListSecurityGatewaysResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"securityGateways": { +"description": "A list of BeyondCorp SecurityGateway in the project.", +"items": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGateway" +}, +"type": "array" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGateway": { +"description": "Information about a BeyoncCorp SecurityGateway resource.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGateway", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. An arbitrary user-provided name for the SecurityGateway. Cannot exceed 64 characters.", +"type": "string" +}, +"externalIps": { +"description": "Output only. IP addresses that will be used for establishing connection to the endpoints.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"hubs": { +"additionalProperties": { +"$ref": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaHub" +}, +"description": "Optional. Map of Hubs that represents regional data path deployment with GCP region as a key.", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the resource.", +"type": "string" +}, +"state": { +"description": "Output only. The operational state of the SecurityGateway.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"UPDATING", +"DELETING", +"RUNNING", +"DOWN", +"ERROR" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"SecurityGateway is being created.", +"SecurityGateway is being updated.", +"SecurityGateway is being deleted.", +"SecurityGateway is running.", +"SecurityGateway is down and may be restored in the future. This happens when CCFE sends ProjectState = OFF.", +"SecurityGateway encountered an error and is in an indeterministic state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGatewayOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudBeyondcorpSecuritygatewaysV1alphaSecurityGatewayOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "GoogleIamV1AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "GoogleIamV1AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"GoogleIamV1AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "GoogleIamV1AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "GoogleIamV1Binding", +"properties": { +"condition": { +"$ref": "GoogleTypeExpr", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Policy": { +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "GoogleIamV1Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "GoogleIamV1AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "GoogleIamV1Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleIamV1SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "GoogleIamV1SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "GoogleIamV1Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "GoogleIamV1TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "GoogleIamV1TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningCancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "GoogleLongrunningCancelOperationRequest", +"properties": {}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeExpr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 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": "GoogleTypeExpr", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"ImageConfig": { +"description": "ImageConfig defines the control plane images to run.", +"id": "ImageConfig", +"properties": { +"stableImage": { +"description": "The stable image that the remote agent will fallback to if the target image fails.", +"type": "string" +}, +"targetImage": { +"description": "The initial image the remote agent will attempt to run for the control plane.", +"type": "string" +} +}, +"type": "object" +}, +"ListAppGatewaysResponse": { +"description": "Response message for BeyondCorp.ListAppGateways.", +"id": "ListAppGatewaysResponse", +"properties": { +"appGateways": { +"description": "A list of BeyondCorp AppGateways in the project.", +"items": { +"$ref": "AppGateway" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListConnectionsResponse": { +"description": "Response message for BeyondCorp.ListConnections.", +"id": "ListConnectionsResponse", +"properties": { +"connections": { +"description": "A list of BeyondCorp Connections in the project.", +"items": { +"$ref": "Connection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListConnectorsResponse": { +"description": "Response message for BeyondCorp.ListConnectors.", +"id": "ListConnectorsResponse", +"properties": { +"connectors": { +"description": "A list of BeyondCorp Connectors in the project.", +"items": { +"$ref": "Connector" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"NotificationConfig": { +"description": "NotificationConfig defines the mechanisms to notify instance agent.", +"id": "NotificationConfig", +"properties": { +"pubsubNotification": { +"$ref": "CloudPubSubNotificationConfig", +"description": "Pub/Sub topic for Connector to subscribe and receive notifications from `projects/{project}/topics/{pubsub_topic}`" +} +}, +"type": "object" +}, +"PrincipalInfo": { +"description": "PrincipalInfo represents an Identity oneof.", +"id": "PrincipalInfo", +"properties": { +"serviceAccount": { +"$ref": "ServiceAccount", +"description": "A GCP service account." +} +}, +"type": "object" +}, +"RemoteAgentDetails": { +"description": "RemoteAgentDetails reflects the details of a remote agent.", +"id": "RemoteAgentDetails", +"properties": {}, +"type": "object" +}, +"ReportStatusRequest": { +"description": "Request report the connector status.", +"id": "ReportStatusRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"resourceInfo": { +"$ref": "ResourceInfo", +"description": "Required. Resource info of the connector." +}, +"validateOnly": { +"description": "Optional. If set, validates request by executing a dry-run which would not alter the resource in any way.", +"type": "boolean" +} +}, +"type": "object" +}, +"ResolveConnectionsResponse": { +"description": "Response message for BeyondCorp.ResolveConnections.", +"id": "ResolveConnectionsResponse", +"properties": { +"connectionDetails": { +"description": "A list of BeyondCorp Connections with details in the project.", +"items": { +"$ref": "ConnectionDetails" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResolveInstanceConfigResponse": { +"description": "Response message for BeyondCorp.ResolveInstanceConfig.", +"id": "ResolveInstanceConfigResponse", +"properties": { +"instanceConfig": { +"$ref": "ConnectorInstanceConfig", +"description": "ConnectorInstanceConfig." +} +}, +"type": "object" +}, +"ResourceInfo": { +"description": "ResourceInfo represents the information/status of the associated resource.", +"id": "ResourceInfo", +"properties": { +"id": { +"description": "Required. Unique Id for the resource.", +"type": "string" +}, +"resource": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Specific details for the resource.", +"type": "object" +}, +"status": { +"description": "Overall health status. Overall status is derived based on the status of each sub level resources.", +"enum": [ +"HEALTH_STATUS_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"UNRESPONSIVE", +"DEGRADED" +], +"enumDescriptions": [ +"Health status is unknown: not initialized or failed to retrieve.", +"The resource is healthy.", +"The resource is unhealthy.", +"The resource is unresponsive.", +"Some sub-resources are UNHEALTHY." +], +"type": "string" +}, +"sub": { +"description": "List of Info for the sub level resources.", +"items": { +"$ref": "ResourceInfo" +}, +"type": "array" +}, +"time": { +"description": "The timestamp to collect the info. It is suggested to be set by the topmost level resource only.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ServiceAccount": { +"description": "ServiceAccount represents a GCP service account.", +"id": "ServiceAccount", +"properties": { +"email": { +"description": "Email address of the service account.", +"type": "string" +} +}, +"type": "object" +}, +"ShouldThrottleResponse": { +"description": "Response message for calling ShouldThrottle", +"id": "ShouldThrottleResponse", +"properties": { +"shouldThrottle": { +"description": "Whether the port should be throttled", +"type": "boolean" +} +}, +"type": "object" +}, +"Tunnelv1ProtoTunnelerError": { +"description": "TunnelerError is an error proto for errors returned by the connection manager.", +"id": "Tunnelv1ProtoTunnelerError", +"properties": { +"err": { +"description": "Original raw error", +"type": "string" +}, +"retryable": { +"description": "retryable isn't used for now, but we may want to reuse it in the future.", +"type": "boolean" +} +}, +"type": "object" +}, +"Tunnelv1ProtoTunnelerInfo": { +"description": "TunnelerInfo contains metadata about tunneler launched by connection manager.", +"id": "Tunnelv1ProtoTunnelerInfo", +"properties": { +"backoffRetryCount": { +"description": "backoff_retry_count stores the number of times the tunneler has been retried by tunManager for current backoff sequence. Gets reset to 0 if time difference between 2 consecutive retries exceeds backoffRetryResetTime.", +"format": "uint32", +"type": "integer" +}, +"id": { +"description": "id is the unique id of a tunneler.", +"type": "string" +}, +"latestErr": { +"$ref": "Tunnelv1ProtoTunnelerError", +"description": "latest_err stores the Error for the latest tunneler failure. Gets reset everytime the tunneler is retried by tunManager." +}, +"latestRetryTime": { +"description": "latest_retry_time stores the time when the tunneler was last restarted.", +"format": "google-datetime", +"type": "string" +}, +"totalRetryCount": { +"description": "total_retry_count stores the total number of times the tunneler has been retried by tunManager.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "BeyondCorp API", +"version": "v1alpha", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e4ebac15b5fb050a29f008b60c24914daf6aaef7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json @@ -0,0 +1,762 @@ +{ + "basePath": "", + "baseUrl": "https://bigtableadmin.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Bigtable Admin", + "description": "Administer your Cloud Bigtable tables and instances.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/bigtable/", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "bigtableadmin:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://bigtableadmin.mtls.googleapis.com/", + "name": "bigtableadmin", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "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.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": {}, + "revision": "20220103", + "rootUrl": "https://bigtableadmin.googleapis.com/", + "schemas": { + "AutoscalingLimits": { + "description": "Limits for the number of nodes a Cluster can autoscale up/down to.", + "id": "AutoscalingLimits", + "properties": { + "maxServeNodes": { + "description": "Required. Maximum number of nodes to scale up to.", + "format": "int32", + "type": "integer" + }, + "minServeNodes": { + "description": "Required. Minimum number of nodes to scale down to.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AutoscalingTargets": { + "description": "The Autoscaling targets for a Cluster. These determine the recommended nodes.", + "id": "AutoscalingTargets", + "properties": { + "cpuUtilizationPercent": { + "description": "The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Backup": { + "description": "A backup of a Cloud Bigtable table.", + "id": "Backup", + "properties": { + "encryptionInfo": { + "$ref": "EncryptionInfo", + "description": "Output only. The encryption information for the backup.", + "readOnly": true + }, + "endTime": { + "description": "Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.", + "type": "string" + }, + "sizeBytes": { + "description": "Output only. Size of the backup in bytes.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "sourceTable": { + "description": "Required. Immutable. Name of the table from which this backup was created. This needs to be in the same instance as the backup. Values are of the form `projects/{project}/instances/{instance}/tables/{source_table}`.", + "type": "string" + }, + "startTime": { + "description": "Output only. `start_time` is the time that the backup was started (i.e. approximately the time the CreateBackup request is received). The row data in this backup will be no older than this timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the backup.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY" + ], + "enumDescriptions": [ + "Not specified.", + "The pending backup is still being created. Operations on the backup may fail with `FAILED_PRECONDITION` in this state.", + "The backup is complete and ready for use." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BackupInfo": { + "description": "Information about a backup.", + "id": "BackupInfo", + "properties": { + "backup": { + "description": "Output only. Name of the backup.", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. This time that the backup was finished. Row data in the backup will be no newer than this timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "sourceTable": { + "description": "Output only. Name of the table the backup was created from.", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. The time that the backup was started. Row data in the backup will be no older than this timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Cluster": { + "description": "A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.", + "id": "Cluster", + "properties": { + "clusterConfig": { + "$ref": "ClusterConfig", + "description": "Configuration for this cluster." + }, + "defaultStorageType": { + "description": "Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.", + "enum": [ + "STORAGE_TYPE_UNSPECIFIED", + "SSD", + "HDD" + ], + "enumDescriptions": [ + "The user did not specify a storage type.", + "Flash (SSD) storage should be used.", + "Magnetic drive (HDD) storage should be used." + ], + "type": "string" + }, + "encryptionConfig": { + "$ref": "EncryptionConfig", + "description": "Immutable. The encryption configuration for CMEK-protected clusters." + }, + "location": { + "description": "Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.", + "type": "string" + }, + "name": { + "description": "The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.", + "type": "string" + }, + "serveNodes": { + "description": "The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.", + "format": "int32", + "type": "integer" + }, + "state": { + "description": "Output only. The current state of the cluster.", + "enum": [ + "STATE_NOT_KNOWN", + "READY", + "CREATING", + "RESIZING", + "DISABLED" + ], + "enumDescriptions": [ + "The state of the cluster could not be determined.", + "The cluster has been successfully created and is ready to serve requests.", + "The cluster is currently being created, and may be destroyed if the creation process encounters an error. A cluster may not be able to serve requests while being created.", + "The cluster is currently being resized, and may revert to its previous node count if the process encounters an error. A cluster is still capable of serving requests while being resized, but may exhibit performance as if its number of allocated nodes is between the starting and requested states.", + "The cluster has no backing nodes. The data (tables) still exist, but no operations can be performed on the cluster." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ClusterAutoscalingConfig": { + "description": "Autoscaling config for a cluster.", + "id": "ClusterAutoscalingConfig", + "properties": { + "autoscalingLimits": { + "$ref": "AutoscalingLimits", + "description": "Required. Autoscaling limits for this cluster." + }, + "autoscalingTargets": { + "$ref": "AutoscalingTargets", + "description": "Required. Autoscaling targets for this cluster." + } + }, + "type": "object" + }, + "ClusterConfig": { + "description": "Configuration for a cluster.", + "id": "ClusterConfig", + "properties": { + "clusterAutoscalingConfig": { + "$ref": "ClusterAutoscalingConfig", + "description": "Autoscaling configuration for this cluster." + } + }, + "type": "object" + }, + "CreateBackupMetadata": { + "description": "Metadata type for the operation returned by CreateBackup.", + "id": "CreateBackupMetadata", + "properties": { + "endTime": { + "description": "If set, the time at which this operation finished or was cancelled.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name of the backup being created.", + "type": "string" + }, + "sourceTable": { + "description": "The name of the table the backup is created from.", + "type": "string" + }, + "startTime": { + "description": "The time at which this operation started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "CreateClusterMetadata": { + "description": "The metadata for the Operation returned by CreateCluster.", + "id": "CreateClusterMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "CreateClusterRequest", + "description": "The request that prompted the initiation of this CreateCluster operation." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + }, + "tables": { + "additionalProperties": { + "$ref": "TableProgress" + }, + "description": "Keys: the full `name` of each table that existed in the instance when CreateCluster was first called, i.e. `projects//instances//tables/`. Any table added to the instance by a later API call will be created in the new cluster by that API call, not this one. Values: information on how much of a table's data has been copied to the newly-created cluster so far.", + "type": "object" + } + }, + "type": "object" + }, + "CreateClusterRequest": { + "description": "Request message for BigtableInstanceAdmin.CreateCluster.", + "id": "CreateClusterRequest", + "properties": { + "cluster": { + "$ref": "Cluster", + "description": "Required. The cluster to be created. Fields marked `OutputOnly` must be left blank." + }, + "clusterId": { + "description": "Required. The ID to be used when referring to the new cluster within its instance, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`.", + "type": "string" + }, + "parent": { + "description": "Required. The unique name of the instance in which to create the new cluster. Values are of the form `projects/{project}/instances/{instance}`.", + "type": "string" + } + }, + "type": "object" + }, + "CreateInstanceMetadata": { + "description": "The metadata for the Operation returned by CreateInstance.", + "id": "CreateInstanceMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "CreateInstanceRequest", + "description": "The request that prompted the initiation of this CreateInstance operation." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "CreateInstanceRequest": { + "description": "Request message for BigtableInstanceAdmin.CreateInstance.", + "id": "CreateInstanceRequest", + "properties": { + "clusters": { + "additionalProperties": { + "$ref": "Cluster" + }, + "description": "Required. The clusters to be created within the instance, mapped by desired cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank. Currently, at most four clusters can be specified.", + "type": "object" + }, + "instance": { + "$ref": "Instance", + "description": "Required. The instance to create. Fields marked `OutputOnly` must be left blank." + }, + "instanceId": { + "description": "Required. The ID to be used when referring to the new instance within its project, e.g., just `myinstance` rather than `projects/myproject/instances/myinstance`.", + "type": "string" + }, + "parent": { + "description": "Required. The unique name of the project in which to create the new instance. Values are of the form `projects/{project}`.", + "type": "string" + } + }, + "type": "object" + }, + "EncryptionConfig": { + "description": "Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster.", + "id": "EncryptionConfig", + "properties": { + "kmsKeyName": { + "description": "Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`", + "type": "string" + } + }, + "type": "object" + }, + "EncryptionInfo": { + "description": "Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.", + "id": "EncryptionInfo", + "properties": { + "encryptionStatus": { + "$ref": "Status", + "description": "Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.", + "readOnly": true + }, + "encryptionType": { + "description": "Output only. The type of encryption used to protect this resource.", + "enum": [ + "ENCRYPTION_TYPE_UNSPECIFIED", + "GOOGLE_DEFAULT_ENCRYPTION", + "CUSTOMER_MANAGED_ENCRYPTION" + ], + "enumDescriptions": [ + "Encryption type was not specified, though data at rest remains encrypted.", + "The data backing this resource is encrypted at rest with a key that is fully managed by Google. No key version or status will be populated. This is the default state.", + "The data backing this resource is encrypted at rest with a key that is managed by the customer. The in-use version of the key and its status are populated for CMEK-protected tables. CMEK-protected backups are pinned to the key version that was in use at the time the backup was taken. This key version is populated but its status is not tracked and is reported as `UNKNOWN`." + ], + "readOnly": true, + "type": "string" + }, + "kmsKeyVersion": { + "description": "Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Instance": { + "description": "A collection of Bigtable Tables and the resources that serve them. All tables in an instance are served from all Clusters in the instance.", + "id": "Instance", + "properties": { + "createTime": { + "description": "Output only. A server-assigned timestamp representing when this Instance was created. For instances created before this field was added (August 2021), this value is `seconds: 0, nanos: 1`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. The descriptive name for this instance as it appears in UIs. Can be changed at any time, but should be kept globally unique to avoid confusion.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Required. Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer's organizational needs and deployment strategies. They can be used to filter resources and aggregate metrics. * Label keys must be between 1 and 63 characters long and must conform to the regular expression: `\\p{Ll}\\p{Lo}{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression: `[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}`. * No more than 64 labels can be associated with a given resource. * Keys and values must both be under 128 bytes.", + "type": "object" + }, + "name": { + "description": "The unique name of the instance. Values are of the form `projects/{project}/instances/a-z+[a-z0-9]`.", + "type": "string" + }, + "state": { + "description": "Output only. The current state of the instance.", + "enum": [ + "STATE_NOT_KNOWN", + "READY", + "CREATING" + ], + "enumDescriptions": [ + "The state of the instance could not be determined.", + "The instance has been successfully created and can serve requests to its tables.", + "The instance is currently being created, and may be destroyed if the creation process encounters an error." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Required. The type of the instance. Defaults to `PRODUCTION`.", + "enum": [ + "TYPE_UNSPECIFIED", + "PRODUCTION", + "DEVELOPMENT" + ], + "enumDescriptions": [ + "The type of the instance is unspecified. If set when creating an instance, a `PRODUCTION` instance will be created. If set when updating an instance, the type will be left unchanged.", + "An instance meant for production use. `serve_nodes` must be set on the cluster.", + "DEPRECATED: Prefer PRODUCTION for all use cases, as it no longer enforces a higher minimum node count than DEVELOPMENT." + ], + "type": "string" + } + }, + "type": "object" + }, + "OperationProgress": { + "description": "Encapsulates progress related information for a Cloud Bigtable long running operation.", + "id": "OperationProgress", + "properties": { + "endTime": { + "description": "If set, the time at which this operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "progressPercent": { + "description": "Percent completion of the operation. Values are between 0 and 100 inclusive.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "description": "Time the request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "OptimizeRestoredTableMetadata": { + "description": "Metadata type for the long-running operation used to track the progress of optimizations performed on a newly restored table. This long-running operation is automatically created by the system after the successful completion of a table restore, and cannot be cancelled.", + "id": "OptimizeRestoredTableMetadata", + "properties": { + "name": { + "description": "Name of the restored table being optimized.", + "type": "string" + }, + "progress": { + "$ref": "OperationProgress", + "description": "The progress of the post-restore optimizations." + } + }, + "type": "object" + }, + "PartialUpdateClusterMetadata": { + "description": "The metadata for the Operation returned by PartialUpdateCluster.", + "id": "PartialUpdateClusterMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "PartialUpdateClusterRequest", + "description": "The original request for PartialUpdateCluster." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "PartialUpdateClusterRequest": { + "description": "Request message for BigtableInstanceAdmin.PartialUpdateCluster.", + "id": "PartialUpdateClusterRequest", + "properties": { + "cluster": { + "$ref": "Cluster", + "description": "Required. The Cluster which contains the partial updates to be applied, subject to the update_mask." + }, + "updateMask": { + "description": "Required. The subset of Cluster fields which should be replaced.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "PartialUpdateInstanceRequest": { + "description": "Request message for BigtableInstanceAdmin.PartialUpdateInstance.", + "id": "PartialUpdateInstanceRequest", + "properties": { + "instance": { + "$ref": "Instance", + "description": "Required. The Instance which will (partially) replace the current value." + }, + "updateMask": { + "description": "Required. The subset of Instance fields which should be replaced. Must be explicitly set.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "RestoreTableMetadata": { + "description": "Metadata type for the long-running operation returned by RestoreTable.", + "id": "RestoreTableMetadata", + "properties": { + "backupInfo": { + "$ref": "BackupInfo" + }, + "name": { + "description": "Name of the table being created and restored to.", + "type": "string" + }, + "optimizeTableOperationName": { + "description": "If exists, the name of the long-running operation that will be used to track the post-restore optimization process to optimize the performance of the restored table. The metadata type of the long-running operation is OptimizeRestoreTableMetadata. The response type is Empty. This long-running operation may be automatically created by the system if applicable after the RestoreTable long-running operation completes successfully. This operation may not be created if the table is already optimized or the restore was not successful.", + "type": "string" + }, + "progress": { + "$ref": "OperationProgress", + "description": "The progress of the RestoreTable operation." + }, + "sourceType": { + "description": "The type of the restore source.", + "enum": [ + "RESTORE_SOURCE_TYPE_UNSPECIFIED", + "BACKUP" + ], + "enumDescriptions": [ + "No restore associated.", + "A backup was used as the source of the restore." + ], + "type": "string" + } + }, + "type": "object" + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", + "id": "Status", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + }, + "TableProgress": { + "description": "Progress info for copying a table's data to the new cluster.", + "id": "TableProgress", + "properties": { + "estimatedCopiedBytes": { + "description": "Estimate of the number of bytes copied so far for this table. This will eventually reach 'estimated_size_bytes' unless the table copy is CANCELLED.", + "format": "int64", + "type": "string" + }, + "estimatedSizeBytes": { + "description": "Estimate of the size of the table to be copied.", + "format": "int64", + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "COPYING", + "COMPLETED", + "CANCELLED" + ], + "enumDescriptions": [ + "", + "The table has not yet begun copying to the new cluster.", + "The table is actively being copied to the new cluster.", + "The table has been fully copied to the new cluster.", + "The table was deleted before it finished copying to the new cluster. Note that tables deleted after completion will stay marked as COMPLETED, not CANCELLED." + ], + "type": "string" + } + }, + "type": "object" + }, + "UpdateAppProfileMetadata": { + "description": "The metadata for the Operation returned by UpdateAppProfile.", + "id": "UpdateAppProfileMetadata", + "properties": {}, + "type": "object" + }, + "UpdateClusterMetadata": { + "description": "The metadata for the Operation returned by UpdateCluster.", + "id": "UpdateClusterMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "Cluster", + "description": "The request that prompted the initiation of this UpdateCluster operation." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "UpdateInstanceMetadata": { + "description": "The metadata for the Operation returned by UpdateInstance.", + "id": "UpdateInstanceMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "PartialUpdateInstanceRequest", + "description": "The request that prompted the initiation of this UpdateInstance operation." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Cloud Bigtable Admin API", + "version": "v1", + "version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/blockchainnodeengine.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/blockchainnodeengine.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..ee0fbeecd04c2d366e6e3f270fe641071a40045a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/blockchainnodeengine.v1.json @@ -0,0 +1,995 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://blockchainnodeengine.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Blockchain Node Engine", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/blockchain-node-engine", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "blockchainnodeengine:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://blockchainnodeengine.mtls.googleapis.com/", +"name": "blockchainnodeengine", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "blockchainnodeengine.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "blockchainnodeengine.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"blockchainNodes": { +"methods": { +"create": { +"description": "Creates a new blockchain node in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes", +"httpMethod": "POST", +"id": "blockchainnodeengine.projects.locations.blockchainNodes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"blockchainNodeId": { +"description": "Required. ID of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/blockchainNodes", +"request": { +"$ref": "BlockchainNode" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single blockchain node.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes/{blockchainNodesId}", +"httpMethod": "DELETE", +"id": "blockchainnodeengine.projects.locations.blockchainNodes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified name of the blockchain node to delete. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/blockchainNodes/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single blockchain node.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes/{blockchainNodesId}", +"httpMethod": "GET", +"id": "blockchainnodeengine.projects.locations.blockchainNodes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified name of the blockchain node to fetch. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/blockchainNodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BlockchainNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists blockchain nodes in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes", +"httpMethod": "GET", +"id": "blockchainnodeengine.projects.locations.blockchainNodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for `ListNodesRequest`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/blockchainNodes", +"response": { +"$ref": "ListBlockchainNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single blockchain node.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes/{blockchainNodesId}", +"httpMethod": "PATCH", +"id": "blockchainnodeengine.projects.locations.blockchainNodes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The fully qualified name of the blockchain node. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/blockchainNodes/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Blockchain node resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BlockchainNode" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "blockchainnodeengine.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "blockchainnodeengine.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "blockchainnodeengine.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "blockchainnodeengine.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://blockchainnodeengine.googleapis.com/", +"schemas": { +"BlockchainNode": { +"description": "A representation of a blockchain node.", +"id": "BlockchainNode", +"properties": { +"blockchainType": { +"description": "Immutable. The blockchain type of the node.", +"enum": [ +"BLOCKCHAIN_TYPE_UNSPECIFIED", +"ETHEREUM" +], +"enumDescriptions": [ +"Blockchain type has not been specified, but should be.", +"The blockchain type is Ethereum." +], +"type": "string" +}, +"connectionInfo": { +"$ref": "ConnectionInfo", +"description": "Output only. The connection information used to interact with a blockchain node.", +"readOnly": true +}, +"createTime": { +"description": "Output only. The timestamp at which the blockchain node was first created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"ethereumDetails": { +"$ref": "EthereumDetails", +"description": "Ethereum-specific blockchain node details." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-provided key-value pairs.", +"type": "object" +}, +"name": { +"description": "Output only. The fully qualified name of the blockchain node. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.", +"readOnly": true, +"type": "string" +}, +"privateServiceConnectEnabled": { +"description": "Optional. When true, the node is only accessible via Private Service Connect; no public endpoints are exposed. Otherwise, the node is only accessible via public endpoints. Warning: Private Service Connect enabled nodes may require a manual migration effort to remain compatible with future versions of the product. If this feature is enabled, you will be notified of these changes along with any required action to avoid disruption. See https://cloud.google.com/vpc/docs/private-service-connect.", +"type": "boolean" +}, +"state": { +"description": "Output only. A status representing the state of the node.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"DELETING", +"RUNNING", +"ERROR", +"UPDATING", +"REPAIRING", +"RECONCILING", +"SYNCING" +], +"enumDescriptions": [ +"The state has not been specified.", +"The node has been requested and is in the process of being created.", +"The existing node is undergoing deletion, but is not yet finished.", +"The node is running and ready for use.", +"The node is in an unexpected or errored state.", +"The node is currently being updated.", +"The node is currently being repaired.", +"The node is currently being reconciled.", +"The node is syncing, which is the process by which it obtains the latest block and current global state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp at which the blockchain node was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ConnectionInfo": { +"description": "The connection information through which to interact with a blockchain node.", +"id": "ConnectionInfo", +"properties": { +"endpointInfo": { +"$ref": "EndpointInfo", +"description": "Output only. The endpoint information through which to interact with a blockchain node.", +"readOnly": true +}, +"serviceAttachment": { +"description": "Output only. A service attachment that exposes a node, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name}", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"EndpointInfo": { +"description": "Contains endpoint information through which to interact with a blockchain node.", +"id": "EndpointInfo", +"properties": { +"jsonRpcApiEndpoint": { +"description": "Output only. The assigned URL for the node JSON-RPC API endpoint.", +"readOnly": true, +"type": "string" +}, +"websocketsApiEndpoint": { +"description": "Output only. The assigned URL for the node WebSockets API endpoint.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"EthereumDetails": { +"description": "Ethereum-specific blockchain node details.", +"id": "EthereumDetails", +"properties": { +"additionalEndpoints": { +"$ref": "EthereumEndpoints", +"description": "Output only. Ethereum-specific endpoint information.", +"readOnly": true +}, +"apiEnableAdmin": { +"description": "Immutable. Enables JSON-RPC access to functions in the `admin` namespace. Defaults to `false`.", +"type": "boolean" +}, +"apiEnableDebug": { +"description": "Immutable. Enables JSON-RPC access to functions in the `debug` namespace. Defaults to `false`.", +"type": "boolean" +}, +"consensusClient": { +"description": "Immutable. The consensus client.", +"enum": [ +"CONSENSUS_CLIENT_UNSPECIFIED", +"LIGHTHOUSE", +"ERIGON_EMBEDDED_CONSENSUS_LAYER" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"Consensus client has not been specified, but should be.", +"Consensus client implementation written in Rust, maintained by Sigma Prime. See [Lighthouse - Sigma Prime](https://lighthouse.sigmaprime.io/) for details.", +"Erigon's embedded consensus client embedded in the execution client. Note this option is not currently available when creating new blockchain nodes. See [Erigon on GitHub](https://github.com/ledgerwatch/erigon#embedded-consensus-layer) for details." +], +"type": "string" +}, +"executionClient": { +"description": "Immutable. The execution client", +"enum": [ +"EXECUTION_CLIENT_UNSPECIFIED", +"GETH", +"ERIGON" +], +"enumDescriptions": [ +"Execution client has not been specified, but should be.", +"Official Go implementation of the Ethereum protocol. See [go-ethereum](https://geth.ethereum.org/) for details.", +"An implementation of Ethereum (execution client), on the efficiency frontier, written in Go. See [Erigon on GitHub](https://github.com/ledgerwatch/erigon) for details." +], +"type": "string" +}, +"gethDetails": { +"$ref": "GethDetails", +"description": "Details for the Geth execution client." +}, +"network": { +"description": "Immutable. The Ethereum environment being accessed.", +"enum": [ +"NETWORK_UNSPECIFIED", +"MAINNET", +"TESTNET_GOERLI_PRATER", +"TESTNET_SEPOLIA", +"TESTNET_HOLESKY" +], +"enumDeprecated": [ +false, +false, +true, +false, +false +], +"enumDescriptions": [ +"The network has not been specified, but should be.", +"The Ethereum Mainnet.", +"Deprecated: The Ethereum Testnet based on Goerli protocol. Please use another test network.", +"The Ethereum Testnet based on Sepolia/Bepolia protocol. See https://github.com/eth-clients/sepolia.", +"The Ethereum Testnet based on Holesky specification. See https://github.com/eth-clients/holesky." +], +"type": "string" +}, +"nodeType": { +"description": "Immutable. The type of Ethereum node.", +"enum": [ +"NODE_TYPE_UNSPECIFIED", +"LIGHT", +"FULL", +"ARCHIVE" +], +"enumDescriptions": [ +"Node type has not been specified, but should be.", +"An Ethereum node that only downloads Ethereum block headers.", +"Keeps a complete copy of the blockchain data, and contributes to the network by receiving, validating, and forwarding transactions.", +"Holds the same data as full node as well as all of the blockchain's history state data dating back to the Genesis Block." +], +"type": "string" +}, +"validatorConfig": { +"$ref": "ValidatorConfig", +"description": "Configuration for validator-related parameters on the beacon client, and for any GCP-managed validator client." +} +}, +"type": "object" +}, +"EthereumEndpoints": { +"description": "Contains endpoint information specific to Ethereum nodes.", +"id": "EthereumEndpoints", +"properties": { +"beaconApiEndpoint": { +"description": "Output only. The assigned URL for the node's Beacon API endpoint.", +"readOnly": true, +"type": "string" +}, +"beaconPrometheusMetricsApiEndpoint": { +"description": "Output only. The assigned URL for the node's Beacon Prometheus metrics endpoint. See [Prometheus Metrics](https://lighthouse-book.sigmaprime.io/advanced_metrics.html) for more details.", +"readOnly": true, +"type": "string" +}, +"executionClientPrometheusMetricsApiEndpoint": { +"description": "Output only. The assigned URL for the node's execution client's Prometheus metrics endpoint.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GethDetails": { +"description": "Options for the Geth execution client. See [Command-line Options](https://geth.ethereum.org/docs/fundamentals/command-line-options) for more details.", +"id": "GethDetails", +"properties": { +"garbageCollectionMode": { +"description": "Immutable. Blockchain garbage collection mode.", +"enum": [ +"GARBAGE_COLLECTION_MODE_UNSPECIFIED", +"FULL", +"ARCHIVE" +], +"enumDescriptions": [ +"The garbage collection has not been specified.", +"Configures Geth's garbage collection so that older data not needed for a full node is deleted. This is the default mode when creating a full node.", +"Configures Geth's garbage collection so that old data is never deleted. This is the default mode when creating an archive node. This value can also be chosen when creating a full node in order to create a partial/recent archive node. See [Sync modes](https://geth.ethereum.org/docs/fundamentals/sync-modes) for more details." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"ListBlockchainNodesResponse": { +"description": "Message for response to listing blockchain nodes.", +"id": "ListBlockchainNodesResponse", +"properties": { +"blockchainNodes": { +"description": "The list of nodes", +"items": { +"$ref": "BlockchainNode" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have `Operation.error` value with a `google.rpc.Status.code` of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"ValidatorConfig": { +"description": "Configuration for validator-related parameters on the beacon client, and for any GCP-managed validator client.", +"id": "ValidatorConfig", +"properties": { +"beaconFeeRecipient": { +"description": "An Ethereum address which the beacon client will send fee rewards to if no recipient is configured in the validator client. See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html or https://docs.prylabs.network/docs/execution-node/fee-recipient for examples of how this is used. Note that while this is often described as \"suggested\", as we run the execution node we can trust the execution node, and therefore this is considered enforced.", +"type": "string" +}, +"managedValidatorClient": { +"description": "Immutable. When true, deploys a GCP-managed validator client alongside the beacon client.", +"type": "boolean" +}, +"mevRelayUrls": { +"description": "URLs for MEV-relay services to use for block building. When set, a GCP-managed MEV-boost service is configured on the beacon client.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Blockchain Node Engine API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/checks.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/checks.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..2be55c06d7b4f03728b50080600cbd82eed8cf26 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/checks.v1alpha.json @@ -0,0 +1,2489 @@ +{ +"basePath": "", +"baseUrl": "https://checks.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Checks Service", +"description": "The Checks API contains powerful and easy-to-use privacy and compliance APIs that interact with the Checks product and its underlying technology.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/checks", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "checks:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://checks.mtls.googleapis.com/", +"name": "checks", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"apps": { +"methods": { +"get": { +"description": "Gets an app.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}", +"httpMethod": "GET", +"id": "checks.accounts.apps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the app. Example: `accounts/123/apps/456`", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleChecksAccountV1alphaApp" +} +}, +"list": { +"description": "Lists the apps under the given account.", +"flatPath": "v1alpha/accounts/{accountsId}/apps", +"httpMethod": "GET", +"id": "checks.accounts.apps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of results to return. The server may further constrain the maximum number of results returned in a single page. If unspecified, the server will decide the number of results to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token received from a previous `ListApps` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent account. Example: `accounts/123`", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/apps", +"response": { +"$ref": "GoogleChecksAccountV1alphaListAppsResponse" +} +} +}, +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "checks.accounts.apps.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +} +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "checks.accounts.apps.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +} +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "checks.accounts.apps.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +} +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations", +"httpMethod": "GET", +"id": "checks.accounts.apps.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +} +}, +"wait": { +"description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}:wait", +"httpMethod": "POST", +"id": "checks.accounts.apps.operations.wait", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to wait on.", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:wait", +"request": { +"$ref": "WaitOperationRequest" +}, +"response": { +"$ref": "Operation" +} +} +} +}, +"reports": { +"methods": { +"get": { +"description": "Gets a report. By default, only the name and results_uri fields are returned. You can include other fields by listing them in the `fields` URL query parameter. For example, `?fields=name,checks` will return the name and checks fields.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/reports/{reportsId}", +"httpMethod": "GET", +"id": "checks.accounts.apps.reports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"checksFilter": { +"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter checks within the report. Only checks that match the filter string are included in the response. Example: `state = FAILED`", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name of the report. Example: `accounts/123/apps/456/reports/789`", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleChecksReportV1alphaReport" +} +}, +"list": { +"description": "Lists reports for the specified app. By default, only the name and results_uri fields are returned. You can include other fields by listing them in the `fields` URL query parameter. For example, `?fields=reports(name,checks)` will return the name and checks fields.", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/reports", +"httpMethod": "GET", +"id": "checks.accounts.apps.reports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"checksFilter": { +"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter checks within reports. Only checks that match the filter string are included in the response. Example: `state = FAILED`", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter reports. Example: `appBundle.releaseType = PRE_RELEASE`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of reports to return. If unspecified, at most 10 reports will be returned. The maximum value is 50; values above 50 will be coerced to 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token received from a previous `ListReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListReports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the app. Example: `accounts/123/apps/456`", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/reports", +"response": { +"$ref": "GoogleChecksReportV1alphaListReportsResponse" +} +} +} +} +} +}, +"repos": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/accounts/{accountsId}/repos/{reposId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "checks.accounts.repos.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^accounts/[^/]+/repos/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +} +} +} +}, +"scans": { +"methods": { +"generate": { +"description": "Uploads the results of local Code Compliance analysis and generates a scan of privacy issues. Returns a google.longrunning.Operation containing analysis and findings.", +"flatPath": "v1alpha/accounts/{accountsId}/repos/{reposId}/scans:generate", +"httpMethod": "POST", +"id": "checks.accounts.repos.scans.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the repo. Example: `accounts/123/repos/456`", +"location": "path", +"pattern": "^accounts/[^/]+/repos/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/scans:generate", +"request": { +"$ref": "GoogleChecksRepoScanV1alphaGenerateScanRequest" +}, +"response": { +"$ref": "Operation" +} +}, +"get": { +"description": "Gets a repo scan. By default, only the name and results_uri fields are returned. You can include other fields by listing them in the `fields` URL query parameter. For example, `?fields=name,sources` will return the name and sources fields.", +"flatPath": "v1alpha/accounts/{accountsId}/repos/{reposId}/scans/{scansId}", +"httpMethod": "GET", +"id": "checks.accounts.repos.scans.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the repo scan. Example: `accounts/123/repos/456/scans/789`", +"location": "path", +"pattern": "^accounts/[^/]+/repos/[^/]+/scans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleChecksRepoScanV1alphaRepoScan" +} +}, +"list": { +"description": "Lists repo scans for the specified repo.", +"flatPath": "v1alpha/accounts/{accountsId}/repos/{reposId}/scans", +"httpMethod": "GET", +"id": "checks.accounts.repos.scans.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter repo scans. Example: `scmMetadata.branch = main`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of repo scans to return. If unspecified, at most 10 repo scans will be returned. The maximum value is 50; values above 50 will be coerced to 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token received from a previous `ListRepoScans` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRepoScans` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the repo. Example: `accounts/123/repos/456`", +"location": "path", +"pattern": "^accounts/[^/]+/repos/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/scans", +"response": { +"$ref": "GoogleChecksRepoScanV1alphaListRepoScansResponse" +} +} +} +} +} +} +} +}, +"aisafety": { +"methods": { +"classifyContent": { +"description": "Analyze a piece of content with the provided set of policies.", +"flatPath": "v1alpha/aisafety:classifyContent", +"httpMethod": "POST", +"id": "checks.aisafety.classifyContent", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha/aisafety:classifyContent", +"request": { +"$ref": "GoogleChecksAisafetyV1alphaClassifyContentRequest" +}, +"response": { +"$ref": "GoogleChecksAisafetyV1alphaClassifyContentResponse" +} +} +} +}, +"media": { +"methods": { +"upload": { +"description": "Analyzes the uploaded app bundle and returns a google.longrunning.Operation containing the generated Report. ## Example (upload only) Send a regular POST request with the header `X-Goog-Upload-Protocol: raw`. ``` POST https://checks.googleapis.com/upload/v1alpha/{parent=accounts/*/apps/*}/reports:analyzeUpload HTTP/1.1 X-Goog-Upload-Protocol: raw Content-Length: Content-Type: application/octet-stream ``` ## Example (upload with metadata) Send a multipart POST request where the first body part contains the metadata JSON and the second body part contains the binary upload. Include the header `X-Goog-Upload-Protocol: multipart`. ``` POST https://checks.googleapis.com/upload/v1alpha/{parent=accounts/*/apps/*}/reports:analyzeUpload HTTP/1.1 X-Goog-Upload-Protocol: multipart Content-Length: ? Content-Type: multipart/related; boundary=BOUNDARY --BOUNDARY Content-Type: application/json {\"code_reference_id\":\"db5bcc20f94055fb5bc08cbb9b0e7a5530308786\"} --BOUNDARY --BOUNDARY-- ``` *Note:* Metadata-only requests are not supported. ", +"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/reports:analyzeUpload", +"httpMethod": "POST", +"id": "checks.media.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"maxSize": "10737418240", +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1alpha/{+parent}/reports:analyzeUpload" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the app. Example: `accounts/123/apps/456`", +"location": "path", +"pattern": "^accounts/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/reports:analyzeUpload", +"request": { +"$ref": "GoogleChecksReportV1alphaAnalyzeUploadRequest" +}, +"response": { +"$ref": "Operation" +}, +"supportsMediaUpload": true +} +} +} +}, +"revision": "20241203", +"rootUrl": "https://checks.googleapis.com/", +"schemas": { +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GoogleChecksAccountV1alphaApp": { +"description": "Represents an app in Checks.", +"id": "GoogleChecksAccountV1alphaApp", +"properties": { +"name": { +"description": "The resource name of the app. Example: `accounts/123/apps/456`", +"type": "string" +}, +"title": { +"description": "The app's title.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksAccountV1alphaListAppsResponse": { +"description": "The response message for AccountService.ListApps.", +"id": "GoogleChecksAccountV1alphaListAppsResponse", +"properties": { +"apps": { +"description": "The apps.", +"items": { +"$ref": "GoogleChecksAccountV1alphaApp" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaClassifyContentRequest": { +"description": "Request proto for ClassifyContent RPC.", +"id": "GoogleChecksAisafetyV1alphaClassifyContentRequest", +"properties": { +"classifierVersion": { +"description": "Optional. Version of the classifier to use. If not specified, the latest version will be used.", +"enum": [ +"CLASSIFIER_VERSION_UNSPECIFIED", +"STABLE", +"LATEST" +], +"enumDescriptions": [ +"Unspecified version.", +"Stable version.", +"Latest version." +], +"type": "string" +}, +"context": { +"$ref": "GoogleChecksAisafetyV1alphaClassifyContentRequestContext", +"description": "Optional. Context about the input that will be used to help on the classification." +}, +"input": { +"$ref": "GoogleChecksAisafetyV1alphaClassifyContentRequestInputContent", +"description": "Required. Content to be classified." +}, +"policies": { +"description": "Required. List of policies to classify against.", +"items": { +"$ref": "GoogleChecksAisafetyV1alphaClassifyContentRequestPolicyConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaClassifyContentRequestContext": { +"description": "Context about the input that will be used to help on the classification.", +"id": "GoogleChecksAisafetyV1alphaClassifyContentRequestContext", +"properties": { +"prompt": { +"description": "Optional. Prompt that generated the model response.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaClassifyContentRequestInputContent": { +"description": "Content to be classified.", +"id": "GoogleChecksAisafetyV1alphaClassifyContentRequestInputContent", +"properties": { +"textInput": { +"$ref": "GoogleChecksAisafetyV1alphaTextInput", +"description": "Content in text format." +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaClassifyContentRequestPolicyConfig": { +"description": "List of policies to classify against.", +"id": "GoogleChecksAisafetyV1alphaClassifyContentRequestPolicyConfig", +"properties": { +"policyType": { +"description": "Required. Type of the policy.", +"enum": [ +"POLICY_TYPE_UNSPECIFIED", +"DANGEROUS_CONTENT", +"PII_SOLICITING_RECITING", +"HARASSMENT", +"SEXUALLY_EXPLICIT", +"HATE_SPEECH", +"MEDICAL_INFO", +"VIOLENCE_AND_GORE", +"OBSCENITY_AND_PROFANITY" +], +"enumDescriptions": [ +"Default.", +"The model facilitates, promotes or enables access to harmful goods, services, and activities.", +"The model reveals an individual\u2019s personal information and data.", +"The model generates content that is malicious, intimidating, bullying, or abusive towards another individual.", +"The model generates content that is sexually explicit in nature.", +"The model promotes violence, hatred, discrimination on the basis of race, religion, etc.", +"The model provides or offers to facilitate access to medical advice or guidance.", +"The model generates content that contains gratuitous, realistic descriptions of violence or gore.", +"The model generates profanity and obscenities." +], +"type": "string" +}, +"threshold": { +"description": "Optional. Score threshold to use when deciding if the content is violative or non-violative. If not specified, the default 0.5 threshold for the policy will be used.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaClassifyContentResponse": { +"description": "Response proto for ClassifyContent RPC.", +"id": "GoogleChecksAisafetyV1alphaClassifyContentResponse", +"properties": { +"policyResults": { +"description": "Results of the classification for each policy.", +"items": { +"$ref": "GoogleChecksAisafetyV1alphaClassifyContentResponsePolicyResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaClassifyContentResponsePolicyResult": { +"description": "Result for one policy against the corresponding input.", +"id": "GoogleChecksAisafetyV1alphaClassifyContentResponsePolicyResult", +"properties": { +"policyType": { +"description": "Type of the policy.", +"enum": [ +"POLICY_TYPE_UNSPECIFIED", +"DANGEROUS_CONTENT", +"PII_SOLICITING_RECITING", +"HARASSMENT", +"SEXUALLY_EXPLICIT", +"HATE_SPEECH", +"MEDICAL_INFO", +"VIOLENCE_AND_GORE", +"OBSCENITY_AND_PROFANITY" +], +"enumDescriptions": [ +"Default.", +"The model facilitates, promotes or enables access to harmful goods, services, and activities.", +"The model reveals an individual\u2019s personal information and data.", +"The model generates content that is malicious, intimidating, bullying, or abusive towards another individual.", +"The model generates content that is sexually explicit in nature.", +"The model promotes violence, hatred, discrimination on the basis of race, religion, etc.", +"The model provides or offers to facilitate access to medical advice or guidance.", +"The model generates content that contains gratuitous, realistic descriptions of violence or gore.", +"The model generates profanity and obscenities." +], +"type": "string" +}, +"score": { +"description": "Final score for the results of this policy.", +"format": "float", +"type": "number" +}, +"violationResult": { +"description": "Result of the classification for the policy.", +"enum": [ +"VIOLATION_RESULT_UNSPECIFIED", +"VIOLATIVE", +"NON_VIOLATIVE", +"CLASSIFICATION_ERROR" +], +"enumDescriptions": [ +"Unspecified result.", +"The final score is greater or equal the input score threshold.", +"The final score is smaller than the input score threshold.", +"There was an error and the violation result could not be determined." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksAisafetyV1alphaTextInput": { +"description": "Text input to be classified.", +"id": "GoogleChecksAisafetyV1alphaTextInput", +"properties": { +"content": { +"description": "Actual piece of text to be classified.", +"type": "string" +}, +"languageCode": { +"description": "Optional. Language of the text in ISO 639-1 format. If the language is invalid or not specified, the system will try to detect it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaCliAnalysis": { +"description": "The results of a Code Compliance CLI analysis.", +"id": "GoogleChecksRepoScanV1alphaCliAnalysis", +"properties": { +"codeScans": { +"description": "Optional. Requested code scans resulting from preliminary CLI analysis.", +"items": { +"$ref": "GoogleChecksRepoScanV1alphaCodeScan" +}, +"type": "array" +}, +"sources": { +"description": "Optional. Data sources detected in the scan.", +"items": { +"$ref": "GoogleChecksRepoScanV1alphaSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaCodeAttribution": { +"description": "Source code attribution.", +"id": "GoogleChecksRepoScanV1alphaCodeAttribution", +"properties": { +"codeExcerpt": { +"description": "Optional. Code excerpt where the source was detected along with surrounding code.", +"type": "string" +}, +"lineNumber": { +"description": "Required. Line number (1-based).", +"format": "int32", +"type": "integer" +}, +"path": { +"description": "Required. Path of the file.", +"type": "string" +}, +"startLineNumber": { +"description": "Optional. Start line number of the code excerpt (1-based).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaCodeScan": { +"description": "A requested analysis of source code. Contains the source code and processing state.", +"id": "GoogleChecksRepoScanV1alphaCodeScan", +"properties": { +"dataTypeClassifications": { +"description": "Optional. Data type classification requests.", +"items": { +"$ref": "GoogleChecksRepoScanV1alphaCodeScanDataTypeClassification" +}, +"type": "array" +}, +"sourceCode": { +"$ref": "GoogleChecksRepoScanV1alphaSourceCode", +"description": "Required. Source code to analyze." +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaCodeScanDataTypeClassification": { +"description": "A request to classify data types.", +"id": "GoogleChecksRepoScanV1alphaCodeScanDataTypeClassification", +"properties": { +"dataType": { +"description": "Required. Candidate data type.", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"DATA_TYPE_APPROXIMATE_LOCATION", +"DATA_TYPE_PRECISE_LOCATION", +"DATA_TYPE_PERSONAL_NAME", +"DATA_TYPE_EMAIL_ADDRESS", +"DATA_TYPE_USER_IDS", +"DATA_TYPE_PHYSICAL_ADDRESS", +"DATA_TYPE_PHONE_NUMBER", +"DATA_TYPE_RACE_AND_ETHNICITY", +"DATA_TYPE_POLITICAL_OR_RELIGIOUS_BELIEFS", +"DATA_TYPE_SEXUAL_ORIENTATION", +"DATA_TYPE_OTHER_PERSONAL_INFO", +"DATA_TYPE_PAYMENT_INFO", +"DATA_TYPE_PURCHASE_HISTORY", +"DATA_TYPE_CREDIT_SCORE", +"DATA_TYPE_OTHER_FINANCIAL_INFO", +"DATA_TYPE_HEALTH_INFO", +"DATA_TYPE_FITNESS_INFO", +"DATA_TYPE_EMAILS", +"DATA_TYPE_TEXT_MESSAGES", +"DATA_TYPE_OTHER_IN_APP_MESSAGES", +"DATA_TYPE_PHOTOS", +"DATA_TYPE_VIDEOS", +"DATA_TYPE_VOICE_OR_SOUND_RECORDINGS", +"DATA_TYPE_MUSIC_FILES", +"DATA_TYPE_OTHER_AUDIO_FILES", +"DATA_TYPE_FILES_AND_DOCS", +"DATA_TYPE_CALENDAR_EVENTS", +"DATA_TYPE_CONTACTS", +"DATA_TYPE_APP_INTERACTIONS", +"DATA_TYPE_IN_APP_SEARCH_HISTORY", +"DATA_TYPE_INSTALLED_APPS", +"DATA_TYPE_OTHER_USER_GENERATED_CONTENT", +"DATA_TYPE_OTHER_ACTIONS", +"DATA_TYPE_WEB_BROWSING_HISTORY", +"DATA_TYPE_CRASH_LOGS", +"DATA_TYPE_PERFORMANCE_DIAGNOSTICS", +"DATA_TYPE_OTHER_APP_PERFORMANCE_DATA", +"DATA_TYPE_DEVICE_OR_OTHER_IDS" +], +"enumDescriptions": [ +"Not specified.", +"User or device physical location to an area greater than or equal to 3 square kilometers, such as the city a user is in, or location provided by Android's ACCESS_COARSE_LOCATION permission.", +"User or device physical location within an area less than 3 square kilometers, such as location provided by Android's ACCESS_FINE_LOCATION permission.", +"How a user refers to themselves, such as their first or last name, or nickname.", +"A user's email address.", +"Identifiers that relate to an identifiable person. For example, an account ID, account number, or account name.", +"A user's address, such as a mailing or home address.", +"A user's phone number.", +"Information about a user's race or ethnicity.", +"Information about a user's political or religious beliefs.", +"Information about a user's sexual orientation.", +"Any other personal information such as date of birth, gender identity, veteran status, etc.", +"Information about a user's financial accounts such as credit card number.", +"Information about purchases or transactions a user has made.", +"Information about a user's credit score.", +"Any other financial information such as user salary or debts.", +"Information about a user's health, such as medical records or symptoms.", +"Information about a user's fitness, such as exercise or other physical activity.", +"A user's emails including the email subject line, sender, recipients, and the content of the email.", +"A user's text messages including the sender, recipients, and the content of the message.", +"Any other types of messages. For example, instant messages or chat content.", +"A user's photos.", +"A user's videos.", +"A user's voice such as a voicemail or a sound recording.", +"A user's music files.", +"Any other user-created or user-provided audio files.", +"A user's files or documents, or information about their files or documents such as file names.", +"Information from a user's calendar such as events, event notes, and attendees.", +"Information about the user\u2019s contacts such as contact names, message history, and social graph information like usernames, contact recency, contact frequency, interaction duration and call history.", +"Information about how a user interacts with your app, such as the number of page views or taps.", +"Information about what a user has searched for in your app.", +"Inventory of apps or packages installed on the user\u2019s device.", +"Any other user-generated content not listed here, or in any other section. For example, user bios, notes, or open-ended responses.", +"Any other user activity or actions in-app not listed here such as gameplay, likes, and dialog options.", +"Information about the websites a user has visited.", +"Crash log data from your app. For example, the number of times your app has crashed, stack traces, or other information directly related to a crash.", +"Information about the performance of your app. For example battery life, loading time, latency, framerate, or any technical diagnostics.", +"Any other app performance data not listed here.", +"Identifiers that relate to an individual device, browser or app. For example, an IMEI number, MAC address, Widevine Device ID, Firebase installation ID, or advertising identifier." +], +"type": "string" +}, +"lineNumber": { +"description": "Required. Line number (1-based).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaGenerateScanRequest": { +"description": "The request message for RepoScanService.GenerateScan.", +"id": "GoogleChecksRepoScanV1alphaGenerateScanRequest", +"properties": { +"cliAnalysis": { +"$ref": "GoogleChecksRepoScanV1alphaCliAnalysis", +"description": "Required. CLI analysis results." +}, +"cliVersion": { +"description": "Required. CLI version.", +"type": "string" +}, +"localScanPath": { +"description": "Required. Local scan path.", +"type": "string" +}, +"scmMetadata": { +"$ref": "GoogleChecksRepoScanV1alphaScmMetadata", +"description": "Required. SCM metadata." +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaListRepoScansResponse": { +"description": "The response message for RepoScanService.ListRepoScans.", +"id": "GoogleChecksRepoScanV1alphaListRepoScansResponse", +"properties": { +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"repoScans": { +"description": "The repo scans for the specified app.", +"items": { +"$ref": "GoogleChecksRepoScanV1alphaRepoScan" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaPullRequest": { +"description": "Pull request info.", +"id": "GoogleChecksRepoScanV1alphaPullRequest", +"properties": { +"baseBranch": { +"description": "Required. For PR analysis, we compare against the most recent scan of the base branch to highlight new issues.", +"type": "string" +}, +"prNumber": { +"description": "Required. This can be supplied by the user or parsed automatically from predefined CI environment variables.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaRepoScan": { +"description": "Repo scan.", +"id": "GoogleChecksRepoScanV1alphaRepoScan", +"properties": { +"cliVersion": { +"description": "CLI version.", +"type": "string" +}, +"localScanPath": { +"description": "Local scan path.", +"type": "string" +}, +"name": { +"description": "Identifier. Resource name of the scan.", +"type": "string" +}, +"resultsUri": { +"description": "A URL to view results.", +"type": "string" +}, +"scmMetadata": { +"$ref": "GoogleChecksRepoScanV1alphaScmMetadata", +"description": "SCM metadata." +}, +"sources": { +"description": "Data sources detected.", +"items": { +"$ref": "GoogleChecksRepoScanV1alphaSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaScmMetadata": { +"description": "SCM metadata.", +"id": "GoogleChecksRepoScanV1alphaScmMetadata", +"properties": { +"branch": { +"description": "Required. Branch name.", +"type": "string" +}, +"pullRequest": { +"$ref": "GoogleChecksRepoScanV1alphaPullRequest", +"description": "Optional. Contains info about the associated pull request. This is only populated for pull request scans." +}, +"remoteUri": { +"description": "Required. Git remote URL.", +"type": "string" +}, +"revisionId": { +"description": "Required. Revision ID, e.g. Git commit hash.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaSource": { +"description": "Represents a data source finding.", +"id": "GoogleChecksRepoScanV1alphaSource", +"properties": { +"codeAttribution": { +"$ref": "GoogleChecksRepoScanV1alphaCodeAttribution", +"description": "Optional. Source code attribution for the finding." +}, +"dataType": { +"description": "Required. Data type.", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"DATA_TYPE_APPROXIMATE_LOCATION", +"DATA_TYPE_PRECISE_LOCATION", +"DATA_TYPE_PERSONAL_NAME", +"DATA_TYPE_EMAIL_ADDRESS", +"DATA_TYPE_USER_IDS", +"DATA_TYPE_PHYSICAL_ADDRESS", +"DATA_TYPE_PHONE_NUMBER", +"DATA_TYPE_RACE_AND_ETHNICITY", +"DATA_TYPE_POLITICAL_OR_RELIGIOUS_BELIEFS", +"DATA_TYPE_SEXUAL_ORIENTATION", +"DATA_TYPE_OTHER_PERSONAL_INFO", +"DATA_TYPE_PAYMENT_INFO", +"DATA_TYPE_PURCHASE_HISTORY", +"DATA_TYPE_CREDIT_SCORE", +"DATA_TYPE_OTHER_FINANCIAL_INFO", +"DATA_TYPE_HEALTH_INFO", +"DATA_TYPE_FITNESS_INFO", +"DATA_TYPE_EMAILS", +"DATA_TYPE_TEXT_MESSAGES", +"DATA_TYPE_OTHER_IN_APP_MESSAGES", +"DATA_TYPE_PHOTOS", +"DATA_TYPE_VIDEOS", +"DATA_TYPE_VOICE_OR_SOUND_RECORDINGS", +"DATA_TYPE_MUSIC_FILES", +"DATA_TYPE_OTHER_AUDIO_FILES", +"DATA_TYPE_FILES_AND_DOCS", +"DATA_TYPE_CALENDAR_EVENTS", +"DATA_TYPE_CONTACTS", +"DATA_TYPE_APP_INTERACTIONS", +"DATA_TYPE_IN_APP_SEARCH_HISTORY", +"DATA_TYPE_INSTALLED_APPS", +"DATA_TYPE_OTHER_USER_GENERATED_CONTENT", +"DATA_TYPE_OTHER_ACTIONS", +"DATA_TYPE_WEB_BROWSING_HISTORY", +"DATA_TYPE_CRASH_LOGS", +"DATA_TYPE_PERFORMANCE_DIAGNOSTICS", +"DATA_TYPE_OTHER_APP_PERFORMANCE_DATA", +"DATA_TYPE_DEVICE_OR_OTHER_IDS" +], +"enumDescriptions": [ +"Not specified.", +"User or device physical location to an area greater than or equal to 3 square kilometers, such as the city a user is in, or location provided by Android's ACCESS_COARSE_LOCATION permission.", +"User or device physical location within an area less than 3 square kilometers, such as location provided by Android's ACCESS_FINE_LOCATION permission.", +"How a user refers to themselves, such as their first or last name, or nickname.", +"A user's email address.", +"Identifiers that relate to an identifiable person. For example, an account ID, account number, or account name.", +"A user's address, such as a mailing or home address.", +"A user's phone number.", +"Information about a user's race or ethnicity.", +"Information about a user's political or religious beliefs.", +"Information about a user's sexual orientation.", +"Any other personal information such as date of birth, gender identity, veteran status, etc.", +"Information about a user's financial accounts such as credit card number.", +"Information about purchases or transactions a user has made.", +"Information about a user's credit score.", +"Any other financial information such as user salary or debts.", +"Information about a user's health, such as medical records or symptoms.", +"Information about a user's fitness, such as exercise or other physical activity.", +"A user's emails including the email subject line, sender, recipients, and the content of the email.", +"A user's text messages including the sender, recipients, and the content of the message.", +"Any other types of messages. For example, instant messages or chat content.", +"A user's photos.", +"A user's videos.", +"A user's voice such as a voicemail or a sound recording.", +"A user's music files.", +"Any other user-created or user-provided audio files.", +"A user's files or documents, or information about their files or documents such as file names.", +"Information from a user's calendar such as events, event notes, and attendees.", +"Information about the user\u2019s contacts such as contact names, message history, and social graph information like usernames, contact recency, contact frequency, interaction duration and call history.", +"Information about how a user interacts with your app, such as the number of page views or taps.", +"Information about what a user has searched for in your app.", +"Inventory of apps or packages installed on the user\u2019s device.", +"Any other user-generated content not listed here, or in any other section. For example, user bios, notes, or open-ended responses.", +"Any other user activity or actions in-app not listed here such as gameplay, likes, and dialog options.", +"Information about the websites a user has visited.", +"Crash log data from your app. For example, the number of times your app has crashed, stack traces, or other information directly related to a crash.", +"Information about the performance of your app. For example battery life, loading time, latency, framerate, or any technical diagnostics.", +"Any other app performance data not listed here.", +"Identifiers that relate to an individual device, browser or app. For example, an IMEI number, MAC address, Widevine Device ID, Firebase installation ID, or advertising identifier." +], +"type": "string" +}, +"falsePositive": { +"description": "Optional. Whether the finding was marked as a false positive.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleChecksRepoScanV1alphaSourceCode": { +"description": "Contains source code from a repo.", +"id": "GoogleChecksRepoScanV1alphaSourceCode", +"properties": { +"code": { +"description": "Required. Source code.", +"type": "string" +}, +"endLine": { +"description": "Required. End line number (1-based).", +"format": "int32", +"type": "integer" +}, +"path": { +"description": "Required. Path of the file.", +"type": "string" +}, +"startLine": { +"description": "Required. Start line number (1-based).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaAnalyzeUploadRequest": { +"description": "The request message for ReportService.AnalyzeUpload.", +"id": "GoogleChecksReportV1alphaAnalyzeUploadRequest", +"properties": { +"appBinaryFileType": { +"description": "Optional. The type of the uploaded app binary. If not provided, the server assumes APK file for Android and IPA file for iOS.", +"enum": [ +"APP_BINARY_FILE_TYPE_UNSPECIFIED", +"ANDROID_APK", +"ANDROID_AAB", +"IOS_IPA" +], +"enumDescriptions": [ +"Not specified.", +".apk file type.", +".aab (app bundle) file type.", +".ipa file type." +], +"type": "string" +}, +"codeReferenceId": { +"description": "Optional. Git commit hash or changelist number associated with the upload.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaAppBundle": { +"description": "Information about the analyzed app bundle.", +"id": "GoogleChecksReportV1alphaAppBundle", +"properties": { +"bundleId": { +"description": "Unique id of the bundle. For example: \"com.google.Gmail\".", +"type": "string" +}, +"codeReferenceId": { +"description": "Git commit hash or changelist number associated with the release.", +"type": "string" +}, +"releaseType": { +"description": "Identifies the type of release.", +"enum": [ +"APP_BUNDLE_RELEASE_TYPE_UNSPECIFIED", +"PUBLIC", +"PRE_RELEASE" +], +"enumDescriptions": [ +"Not specified.", +"Published production bundle.", +"Pre-release bundle." +], +"type": "string" +}, +"version": { +"description": "The user-visible version of the bundle such as the Android `versionName` or iOS `CFBundleShortVersionString`. For example: \"7.21.1\".", +"type": "string" +}, +"versionId": { +"description": "The version used throughout the operating system and store to identify the build such as the Android `versionCode` or iOS `CFBundleVersion`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheck": { +"description": "A check that was run on your app.", +"id": "GoogleChecksReportV1alphaCheck", +"properties": { +"citations": { +"description": "Regulations and policies that serve as the legal basis for the check.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckCitation" +}, +"type": "array" +}, +"evidence": { +"$ref": "GoogleChecksReportV1alphaCheckEvidence", +"description": "Evidence that substantiates the check result." +}, +"regionCodes": { +"description": "Regions that are impacted by the check. For more info, see https://google.aip.dev/143#countries-and-regions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"severity": { +"description": "The urgency or risk level of the check.", +"enum": [ +"CHECK_SEVERITY_UNSPECIFIED", +"PRIORITY", +"POTENTIAL", +"OPPORTUNITY" +], +"enumDescriptions": [ +"Not specified.", +"Important privacy issue.", +"Potential privacy issue.", +"Opportunity to improve privacy coverage." +], +"type": "string" +}, +"state": { +"description": "The result after running the check.", +"enum": [ +"CHECK_STATE_UNSPECIFIED", +"PASSED", +"FAILED", +"UNCHECKED" +], +"enumDescriptions": [ +"Not specified.", +"The check passed.", +"The check failed.", +"The check was not run." +], +"type": "string" +}, +"stateMetadata": { +"$ref": "GoogleChecksReportV1alphaCheckStateMetadata", +"description": "Additional information about the check state in relation to past reports." +}, +"type": { +"description": "The type of check that was run. A type will only appear once in a report's list of checks.", +"enum": [ +"CHECK_TYPE_UNSPECIFIED", +"STORE_LISTING_PRIVACY_POLICY_LINK_PRESENT", +"PRIVACY_POLICY_UPDATE_DATE_RECENT", +"PRIVACY_POLICY_GDPR_GENERAL_RULES", +"PRIVACY_POLICY_CCPA_GENERAL_RULES", +"PRIVACY_POLICY_COLLECTION_CATEGORIES_DATA_NOTICE", +"PRIVACY_POLICY_PROCESSING_PURPOSE_DATA_NOTICE", +"PRIVACY_POLICY_SHARING_CATEGORIES_DATA_NOTICE", +"PRIVACY_POLICY_DATA_RETENTION_NOTICE", +"PRIVACY_POLICY_CONTACT_DETAILS_NOTICE", +"PRIVACY_POLICY_CHILDREN_GENERAL_RULES", +"PRIVACY_POLICY_DATA_TYPE_PHONE_NUMBER", +"PRIVACY_POLICY_DATA_TYPE_USER_ACCOUNT_INFO", +"PRIVACY_POLICY_DATA_TYPE_PRECISE_LOCATION", +"PRIVACY_POLICY_DATA_TYPE_DEVICE_ID", +"PRIVACY_POLICY_DATA_TYPE_APPS_ON_DEVICE", +"PRIVACY_POLICY_DATA_TYPE_CONTACTS", +"PRIVACY_POLICY_DATA_TYPE_TEXT_MESSAGES", +"PRIVACY_POLICY_DATA_TYPE_PII", +"PRIVACY_POLICY_DATA_TYPE_PII_CATEGORIES", +"PRIVACY_POLICY_DATA_TYPE_HEALTH_AND_BIOMETRIC", +"PRIVACY_POLICY_BRAZIL_LGPD_GENERAL_RULES", +"PRIVACY_POLICY_VIRGINIA_VCDPA_GENERAL_RULES", +"PRIVACY_POLICY_AFFILIATION_MENTION", +"PRIVACY_POLICY_RIGHT_TO_DELETE_NOTICE", +"PRIVACY_POLICY_RIGHT_TO_ACCESS_NOTICE", +"PRIVACY_POLICY_RIGHT_TO_RECTIFICATION_NOTICE", +"PRIVACY_POLICY_RIGHT_TO_KNOW_ABOUT_SELLING_NOTICE", +"PRIVACY_POLICY_RIGHT_TO_KNOW_ABOUT_SHARING_NOTICE", +"PRIVACY_POLICY_RIGHT_TO_OPT_OUT_FROM_SELLING_NOTICE", +"PRIVACY_POLICY_METHOD_TO_OPT_OUT_FROM_SELLING_OR_SHARING_NOTICE", +"PRIVACY_POLICY_DATA_CONTROLLER_IDENTITY", +"PRIVACY_POLICY_DPO_CONTACT_DETAILS", +"PRIVACY_POLICY_RIGHT_TO_LODGE_A_COMPLAINT", +"PRIVACY_POLICY_LEGAL_BASIS", +"PRIVACY_POLICY_CHILDREN_INFO_COLLECTION", +"PRIVACY_POLICY_CHILDREN_INFO_USAGE_PURPOSES", +"PRIVACY_POLICY_CHILDREN_INFO_DISCLOSURE_PRACTICES", +"PRIVACY_POLICY_CHILDREN_INFO_PUBLICITY", +"PRIVACY_POLICY_PARENTS_METHOD_OF_INFO_DELETION", +"PRIVACY_POLICY_PARENTS_METHOD_TO_INFO_REVIEW", +"PRIVACY_POLICY_PARENTS_METHOD_TO_STOP_FURTHER_INFO_COLLECTION_USE", +"PRIVACY_POLICY_PARENTS_RIGHT_TO_INFO_DELETION", +"PRIVACY_POLICY_PARENTS_RIGHT_TO_INFO_REVIEW", +"PRIVACY_POLICY_PARENTS_RIGHT_TO_STOP_FURTHER_INFO_COLLECTION_USE", +"PRIVACY_POLICY_PSL_APPROXIMATE_LOCATION", +"PRIVACY_POLICY_PSL_PRECISE_LOCATION", +"PRIVACY_POLICY_PSL_NAME", +"PRIVACY_POLICY_PSL_EMAIL_ADDRESS", +"PRIVACY_POLICY_PSL_USER_IDENTIFIERS", +"PRIVACY_POLICY_PSL_ADDRESS", +"PRIVACY_POLICY_PSL_PHONE_NUMBER", +"PRIVACY_POLICY_PSL_RACE_AND_ETHNICITY", +"PRIVACY_POLICY_PSL_CREDIT_SCORE", +"PRIVACY_POLICY_PSL_PURCHASE_HISTORY", +"PRIVACY_POLICY_PSL_HEALTH_INFO", +"PRIVACY_POLICY_PSL_FITNESS_INFO", +"PRIVACY_POLICY_PSL_EMAIL_MESSAGES", +"PRIVACY_POLICY_PSL_TEXT_MESSAGES", +"PRIVACY_POLICY_PSL_PHOTOS", +"PRIVACY_POLICY_PSL_VIDEOS", +"PRIVACY_POLICY_PSL_MUSIC_FILES", +"PRIVACY_POLICY_PSL_VOICE_OR_SOUND_RECORDINGS", +"PRIVACY_POLICY_PSL_FILES_AND_DOCS", +"PRIVACY_POLICY_PSL_CALENDAR_EVENTS", +"PRIVACY_POLICY_PSL_CONTACTS", +"PRIVACY_POLICY_PSL_APP_INTERACTIONS", +"PRIVACY_POLICY_PSL_IN_APP_SEARCH_HISTORY", +"PRIVACY_POLICY_PSL_WEB_BROWSING_HISTORY", +"PRIVACY_POLICY_PSL_INSTALLED_APPS", +"PRIVACY_POLICY_PSL_CRASH_LOGS", +"PRIVACY_POLICY_PSL_DIAGNOSTICS", +"PRIVACY_POLICY_PSL_DEVICE_OR_OTHER_IDS", +"DATA_MONITORING_NEW_ENDPOINT", +"DATA_MONITORING_NEW_PERMISSION", +"DATA_MONITORING_NEW_DATA_TYPE", +"DATA_MONITORING_NEW_SDK", +"DATA_MONITORING_ENCRYPTION", +"DATA_MONITORING_NEW_DATA_TYPE_VERSION_DIFF", +"DATA_MONITORING_NEW_ENDPOINT_VERSION_DIFF", +"DATA_MONITORING_NEW_PERMISSION_VERSION_DIFF", +"DATA_MONITORING_NEW_SDK_VERSION_DIFF", +"DATA_MONITORING_SDKS_DENYLIST_VIOLATION", +"DATA_MONITORING_PERMISSIONS_DENYLIST_VIOLATION", +"DATA_MONITORING_ENDPOINTS_DENYLIST_VIOLATION", +"DATA_MONITORING_OUTDATED_SDK_VERSION", +"DATA_MONITORING_CRITICAL_SDK_ISSUE", +"PRIVACY_POLICY_DATA_TYPE_SENSITIVE_INFO", +"DATA_MONITORING_PII_LOGCAT_LEAK", +"DATA_MONITORING_MINIMIZE_PERMISSION_MEDIA", +"DATA_MONITORING_MINIMIZE_PERMISSION_CAMERA", +"DATA_MONITORING_MINIMIZE_PERMISSION_DOCUMENTS" +], +"enumDescriptions": [ +"Not specified.", +"Checks that your store listing includes a working link to your privacy policy.", +"Checks that your privacy policy has been updated recently.", +"Checks if your privacy policy references rights under GDPR for users in the EU.", +"Checks if your privacy policy references rights under the CCPA.", +"Checks if your privacy policy mentions the categories of personal data that are collected.", +"Checks if your privacy policy explains why personal data is processed.", +"Checks if your privacy policy includes information about third-party sharing of personal data.", +"Checks if your privacy policy describes your data retention practices.", +"Checks if contact information is included in your privacy policy.", +"Checks if information about requirements related to children is included in your privacy policy.", +"Checks if the Phone Number data type declaration in your privacy policy matches usage.", +"Checks if the User Account Info data type declaration in your privacy policy matches usage.", +"Checks if the Precise Location data type declaration in your privacy policy matches usage.", +"Checks if the Device ID data type declaration in your privacy policy matches usage.", +"Checks if the Apps on Device data type declaration in your privacy policy matches usage.", +"Checks if the Contacts data type declaration in your privacy policy matches usage.", +"Checks if the Text Messages data type declaration in your privacy policy matches usage.", +"Checks if the PII data type declaration in your privacy policy matches usage.", +"Checks if the PII Categories data type declaration in your privacy policy matches usage.", +"Checks if the Health and Biometric data type declaration in your privacy policy matches usage.", +"Checks if your privacy policy references rights under LGPD for users in Brazil.", +"Checks if your privacy policy references rights under VCDPA for users in Virginia.", +"Checks if your privacy policy identifies your company or app name(s).", +"Checks if your privacy policy mentions your users' right to delete their data.", +"Checks if your privacy policy mentions your users' right to access the data held about them.", +"Checks if your privacy policy mentions your users' right to correct inaccuracies within their data.", +"Checks if your privacy policy mentions your users' right to know about information selling.", +"Checks if your privacy policy mentions your users' right to know about information sharing.", +"Checks if your privacy policy mentions your users' right to opt out from information selling.", +"Checks if your privacy policy explains how your users opt out from the selling or sharing of their data.", +"Checks if your privacy policy provides the name and contact information for your data controller.", +"Checks if your privacy policy provides the name and contact information for your Data Protection Officer.", +"Checks if your privacy policy mentions your users' right to lodge a complaint with a supervisory authority.", +"Checks if your privacy policy mentions the legal basis you rely on for processing your users' data.", +"Checks if your privacy policy mentions what personal information is collected from children.", +"Checks if your privacy policy mentions why you collect personal information from children.", +"Checks if your privacy policy mentions what personal information from children is shared with third parties.", +"Checks if your privacy policy mentions whether your app allows children to make their personal information publicly available.", +"Checks if your privacy policy mentions how parents/caregivers/guardians can request the deletion of their child's personal information.", +"Checks if your privacy policy mentions how parents/caregivers/guardians can review their child's personal information.", +"Checks if your privacy policy explains how a parent/caregiver/guardian can stop the collection/use from their child's personal information.", +"Checks if your privacy policy mentions the right of a parent/caregiver/guardian to request the deletion of their child's personal information.", +"Checks if your privacy policy mentions the right of a parent/caregiver/guardian to review their child's personal information.", +"Checks if your privacy policy mentions the right of a parent/caregiver/guardian to stop collection/use from their child's personal information.", +"Checks if your privacy policy mentions collection of your users' approximate location if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' precise location if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' personal names if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' email addresses if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' user IDs if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' physical addresses if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' phone numbers if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' race or ethnicity if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' credit score if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' purchase history if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' health info if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' fitness info if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' emails if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' text messages if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' photos if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' videos if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' music files if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' voice or sound recordings if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' files or documents if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' calendar events if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' contacts if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' app interactions if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' in-app search history if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' web browsing history if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' installed apps if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' crash logs if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' performance diagnostics if this data type is declared in your Play Data Safety Section.", +"Checks if your privacy policy mentions collection of your users' device or other IDs if this data type is declared in your Play Data Safety Section.", +"Checks if there is a new endpoint we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the endpoint is not detected in the current report.", +"Checks if there is a new permission we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the permission is not detected in the current report.", +"Checks if there is a new data type we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the data type is not detected in the current report.", +"Checks if there is a new SDK we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the SDK is not detected in the current report.", +"Checks if there is any endpoint contacted using HTTP protocol instead of HTTPS. If no protocol is found in the URL, the endpoint is not considered for analysis.", +"Checks if new data types have been detected since a specific app version.", +"Checks if new endpoints have been detected since a specific app version.", +"Checks if new permissions have been detected since a specific app version.", +"Checks if new SDKs have been detected since a specific app version.", +"Checks if any SDKs were detected that are specified in the denylist.", +"Checks if any permissions were detected that are specified in the denylist.", +"Checks if any endpoints were detected that are specified in the denylist.", +"Checks if there are any outdated SDKs.", +"Checks if there are any SDKs with critical issues.", +"Checks if the Sensitive Information data type declaration matches usage.", +"Checks if there were any PII leaked to device logs.", +"Checks if there are media (photo and video) permissions that are considered sensitive and should be minimized for Android.", +"Checks if there are camera use permissions that are considered sensitive and should be minimized for Android.", +"Checks if there are documents and file permissions that are considered sensitive and should be minimized for Android." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckCitation": { +"description": "Regulation or policy that serves as the legal basis for the check.", +"id": "GoogleChecksReportV1alphaCheckCitation", +"properties": { +"type": { +"description": "Citation type.", +"enum": [ +"CITATION_TYPE_UNSPECIFIED", +"COPPA", +"GDPR", +"FERPA", +"CAL_OPPA", +"CCPA", +"SOPIPA", +"LGPD", +"CPRA", +"VCDPA", +"GOOGLE_PLAY_POLICY", +"APP_STORE_POLICY", +"CPA", +"CTDPA", +"UCPA", +"PIPEDA", +"ALBERTA_PIPA", +"QUEBEC_ACT", +"QUEBEC_BILL_64", +"CHINA_PIPL", +"SOUTH_KOREA_PIPA", +"SOUTH_AFRICA_POPIA", +"JAPAN_APPI", +"INDIA_DPDPA", +"OCPA", +"TDPSA", +"MCDPA" +], +"enumDescriptions": [ +"Not specified.", +"Children's Online Privacy Protection Act.", +"General Data Protection Regulation.", +"Family Educational Rights and Privacy Act.", +"The California Online Privacy Protection Act.", +"California Consumer Privacy Act.", +"Student Online Personal Information Protection Act.", +"Lei Geral de Prote\u00e7\u00e3o de Dados.", +"California Consumer Privacy Act.", +"Virginia Consumer Data Protection Act.", +"Google Play Policy.", +"App Store Policy.", +"Colorado Privacy Act.", +"Connecticut Data Privacy Act.", +"Utah Consumer Privacy Act.", +"Personal Information Protection and Electronic Documents Act.", +"Alberta (Canada) Personal Information Protection Act.", +"Quebec: Act Respecting the Protection of Personal Information in the Private Sector.", +"Quebec Bill 64: An Act to Modernize Legislative Provisions as Regards the Protection of Personal Information.", +"China Personal Information Protection Law.", +"South Korea Personal Information Protection Act.", +"South Africa Protection of Personal Information Act.", +"Japan Act on the Protection of Personal Information.", +"India: The Digital Personal Data Protection Act, 2023.", +"Oregon Consumer Privacy Act.", +"Texas Data Privacy and Security Act.", +"Montana Consumer Data Privacy Act." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckDataSecurityEvidence": { +"description": "Evidence concerning data security.", +"id": "GoogleChecksReportV1alphaCheckDataSecurityEvidence", +"properties": { +"dataInTransitInfo": { +"description": "Evidence related to data in transit.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckDataSecurityEvidenceDataInTransitInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckDataSecurityEvidenceDataInTransitInfo": { +"description": "Evidence related to data in transit detected in your app.", +"id": "GoogleChecksReportV1alphaCheckDataSecurityEvidenceDataInTransitInfo", +"properties": { +"uri": { +"description": "The URL contacted by your app. This includes the protocol, domain, and URL parameters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckDataTypeEvidence": { +"description": "Evidence concerning a data type that was found in your app.", +"id": "GoogleChecksReportV1alphaCheckDataTypeEvidence", +"properties": { +"dataType": { +"description": "The data type that was found in your app.", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"DATA_TYPE_APPROXIMATE_LOCATION", +"DATA_TYPE_PRECISE_LOCATION", +"DATA_TYPE_PERSONAL_NAME", +"DATA_TYPE_EMAIL_ADDRESS", +"DATA_TYPE_USER_IDS", +"DATA_TYPE_PHYSICAL_ADDRESS", +"DATA_TYPE_PHONE_NUMBER", +"DATA_TYPE_RACE_AND_ETHNICITY", +"DATA_TYPE_POLITICAL_OR_RELIGIOUS_BELIEFS", +"DATA_TYPE_SEXUAL_ORIENTATION", +"DATA_TYPE_OTHER_PERSONAL_INFO", +"DATA_TYPE_PAYMENT_INFO", +"DATA_TYPE_PURCHASE_HISTORY", +"DATA_TYPE_CREDIT_SCORE", +"DATA_TYPE_OTHER_FINANCIAL_INFO", +"DATA_TYPE_HEALTH_INFO", +"DATA_TYPE_FITNESS_INFO", +"DATA_TYPE_EMAILS", +"DATA_TYPE_TEXT_MESSAGES", +"DATA_TYPE_OTHER_IN_APP_MESSAGES", +"DATA_TYPE_PHOTOS", +"DATA_TYPE_VIDEOS", +"DATA_TYPE_VOICE_OR_SOUND_RECORDINGS", +"DATA_TYPE_MUSIC_FILES", +"DATA_TYPE_OTHER_AUDIO_FILES", +"DATA_TYPE_FILES_AND_DOCS", +"DATA_TYPE_CALENDAR_EVENTS", +"DATA_TYPE_CONTACTS", +"DATA_TYPE_APP_INTERACTIONS", +"DATA_TYPE_IN_APP_SEARCH_HISTORY", +"DATA_TYPE_INSTALLED_APPS", +"DATA_TYPE_OTHER_USER_GENERATED_CONTENT", +"DATA_TYPE_OTHER_ACTIONS", +"DATA_TYPE_WEB_BROWSING_HISTORY", +"DATA_TYPE_CRASH_LOGS", +"DATA_TYPE_PERFORMANCE_DIAGNOSTICS", +"DATA_TYPE_OTHER_APP_PERFORMANCE_DATA", +"DATA_TYPE_DEVICE_OR_OTHER_IDS" +], +"enumDescriptions": [ +"Not specified.", +"User or device physical location to an area greater than or equal to 3 square kilometers, such as the city a user is in, or location provided by Android's ACCESS_COARSE_LOCATION permission.", +"User or device physical location within an area less than 3 square kilometers, such as location provided by Android's ACCESS_FINE_LOCATION permission.", +"How a user refers to themselves, such as their first or last name, or nickname.", +"A user's email address.", +"Identifiers that relate to an identifiable person. For example, an account ID, account number, or account name.", +"A user's address, such as a mailing or home address.", +"A user's phone number.", +"Information about a user's race or ethnicity.", +"Information about a user's political or religious beliefs.", +"Information about a user's sexual orientation.", +"Any other personal information such as date of birth, gender identity, veteran status, etc.", +"Information about a user's financial accounts such as credit card number.", +"Information about purchases or transactions a user has made.", +"Information about a user's credit score.", +"Any other financial information such as user salary or debts.", +"Information about a user's health, such as medical records or symptoms.", +"Information about a user's fitness, such as exercise or other physical activity.", +"A user's emails including the email subject line, sender, recipients, and the content of the email.", +"A user's text messages including the sender, recipients, and the content of the message.", +"Any other types of messages. For example, instant messages or chat content.", +"A user's photos.", +"A user's videos.", +"A user's voice such as a voicemail or a sound recording.", +"A user's music files.", +"Any other user-created or user-provided audio files.", +"A user's files or documents, or information about their files or documents such as file names.", +"Information from a user's calendar such as events, event notes, and attendees.", +"Information about the user\u2019s contacts such as contact names, message history, and social graph information like usernames, contact recency, contact frequency, interaction duration and call history.", +"Information about how a user interacts with your app, such as the number of page views or taps.", +"Information about what a user has searched for in your app.", +"Inventory of apps or packages installed on the user\u2019s device.", +"Any other user-generated content not listed here, or in any other section. For example, user bios, notes, or open-ended responses.", +"Any other user activity or actions in-app not listed here such as gameplay, likes, and dialog options.", +"Information about the websites a user has visited.", +"Crash log data from your app. For example, the number of times your app has crashed, stack traces, or other information directly related to a crash.", +"Information about the performance of your app. For example battery life, loading time, latency, framerate, or any technical diagnostics.", +"Any other app performance data not listed here.", +"Identifiers that relate to an individual device, browser or app. For example, an IMEI number, MAC address, Widevine Device ID, Firebase installation ID, or advertising identifier." +], +"type": "string" +}, +"dataTypeEvidence": { +"$ref": "GoogleChecksReportV1alphaDataTypeEvidence", +"description": "Evidence collected about the data type." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckEndpointEvidence": { +"description": "Evidence concerning an endpoint that was contacted by your app.", +"id": "GoogleChecksReportV1alphaCheckEndpointEvidence", +"properties": { +"endpoint": { +"$ref": "GoogleChecksReportV1alphaEndpoint", +"description": "The endpoint that was contacted by your app." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidence": { +"description": "Evidence collected from endpoint restriction violation analysis.", +"id": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidence", +"properties": { +"endpointDetails": { +"description": "Endpoints in violation.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidenceEndpointDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidenceEndpointDetails": { +"description": "Details of the endpoint in violation.", +"id": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidenceEndpointDetails", +"properties": { +"endpoint": { +"$ref": "GoogleChecksReportV1alphaEndpoint", +"description": "The endpoint in violation." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckEvidence": { +"description": "Evidence for a check.", +"id": "GoogleChecksReportV1alphaCheckEvidence", +"properties": { +"dataSecurity": { +"$ref": "GoogleChecksReportV1alphaCheckDataSecurityEvidence", +"description": "Evidence concerning data security." +}, +"dataTypes": { +"description": "Evidence concerning data types found in your app.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckDataTypeEvidence" +}, +"type": "array" +}, +"endpointRestrictionViolations": { +"description": "Evidence collected from endpoint restriction violation analysis.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidence" +}, +"type": "array" +}, +"endpoints": { +"description": "Evidence concerning endpoints that were contacted by your app.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckEndpointEvidence" +}, +"type": "array" +}, +"permissionRestrictionViolations": { +"description": "Evidence collected from permission restriction violation analysis.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckPermissionRestrictionViolationEvidence" +}, +"type": "array" +}, +"permissions": { +"description": "Evidence concerning permissions that were found in your app.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckPermissionEvidence" +}, +"type": "array" +}, +"privacyPolicyTexts": { +"description": "Evidence collected from your privacy policy(s).", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckPrivacyPolicyTextEvidence" +}, +"type": "array" +}, +"sdkIssues": { +"description": "Evidence concerning SDK issues.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckSdkIssueEvidence" +}, +"type": "array" +}, +"sdkRestrictionViolations": { +"description": "Evidence collected from SDK restriction violation analysis.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckSdkRestrictionViolationEvidence" +}, +"type": "array" +}, +"sdks": { +"description": "Evidence concerning SDKs that were found in your app.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckSdkEvidence" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckPermissionEvidence": { +"description": "Evidence concerning a permission that was found in your app.", +"id": "GoogleChecksReportV1alphaCheckPermissionEvidence", +"properties": { +"permission": { +"$ref": "GoogleChecksReportV1alphaPermission", +"description": "The permission that was found in your app." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckPermissionRestrictionViolationEvidence": { +"description": "Evidence collected from permission restriction violation analysis.", +"id": "GoogleChecksReportV1alphaCheckPermissionRestrictionViolationEvidence", +"properties": { +"permissionDetails": { +"description": "Permissions in violation.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckPermissionRestrictionViolationEvidencePermissionDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckPermissionRestrictionViolationEvidencePermissionDetails": { +"description": "Details of the permission in violation.", +"id": "GoogleChecksReportV1alphaCheckPermissionRestrictionViolationEvidencePermissionDetails", +"properties": { +"permission": { +"$ref": "GoogleChecksReportV1alphaPermission", +"description": "The permission in violation." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckPrivacyPolicyTextEvidence": { +"description": "Evidence collected from your privacy policy(s).", +"id": "GoogleChecksReportV1alphaCheckPrivacyPolicyTextEvidence", +"properties": { +"policyFragment": { +"$ref": "GoogleChecksReportV1alphaPolicyFragment", +"description": "The privacy policy fragment that was used during the check." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckSdkEvidence": { +"description": "Evidence conerning an SDK that was found in your app.", +"id": "GoogleChecksReportV1alphaCheckSdkEvidence", +"properties": { +"sdk": { +"$ref": "GoogleChecksReportV1alphaSdk", +"description": "The SDK that was found in your app." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckSdkIssueEvidence": { +"description": "Evidence concerning an SDK issue.", +"id": "GoogleChecksReportV1alphaCheckSdkIssueEvidence", +"properties": { +"sdk": { +"$ref": "GoogleChecksReportV1alphaSdk", +"description": "The SDK with an issue." +}, +"sdkVersion": { +"description": "The SDK version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckSdkRestrictionViolationEvidence": { +"description": "Evidence collected from SDK restriction violation analysis.", +"id": "GoogleChecksReportV1alphaCheckSdkRestrictionViolationEvidence", +"properties": { +"sdkDetails": { +"description": "SDKs in violation.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheckSdkRestrictionViolationEvidenceSdkDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckSdkRestrictionViolationEvidenceSdkDetails": { +"description": "Details of the SDK in violation.", +"id": "GoogleChecksReportV1alphaCheckSdkRestrictionViolationEvidenceSdkDetails", +"properties": { +"sdk": { +"$ref": "GoogleChecksReportV1alphaSdk", +"description": "The SDK in violation." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaCheckStateMetadata": { +"description": "Additional information about the check state in relation to past reports.", +"id": "GoogleChecksReportV1alphaCheckStateMetadata", +"properties": { +"badges": { +"description": "Indicators related to the check state.", +"items": { +"enum": [ +"CHECK_STATE_BADGE_UNSPECIFIED", +"NEWLY_FAILING", +"RECENTLY_FAILING", +"RESOLVED" +], +"enumDescriptions": [ +"Not specified.", +"The check is newly failing, i.e. now failing but previously passing.", +"The check is currently failing and first started failing continuously within the last 28 days.", +"The check is newly passing, i.e. now passing but previously failing." +], +"type": "string" +}, +"type": "array" +}, +"firstFailingTime": { +"description": "The time when the check first started failing.", +"format": "google-datetime", +"type": "string" +}, +"lastFailingTime": { +"description": "The last time the check failed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataMonitoring": { +"description": "Represents the data monitoring section of the report.", +"id": "GoogleChecksReportV1alphaDataMonitoring", +"properties": { +"dataTypes": { +"description": "Data types that your app shares or collects.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringDataTypeResult" +}, +"type": "array" +}, +"endpoints": { +"description": "Endpoints that were found by dynamic analysis of your app.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringEndpointResult" +}, +"type": "array" +}, +"permissions": { +"description": "Permissions that your app uses.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringPermissionResult" +}, +"type": "array" +}, +"sdks": { +"description": "SDKs that your app uses.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringSdkResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataMonitoringDataTypeResult": { +"description": "Information about a data type that was found in your app.", +"id": "GoogleChecksReportV1alphaDataMonitoringDataTypeResult", +"properties": { +"dataType": { +"description": "The data type that was shared or collected by your app.", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"DATA_TYPE_APPROXIMATE_LOCATION", +"DATA_TYPE_PRECISE_LOCATION", +"DATA_TYPE_PERSONAL_NAME", +"DATA_TYPE_EMAIL_ADDRESS", +"DATA_TYPE_USER_IDS", +"DATA_TYPE_PHYSICAL_ADDRESS", +"DATA_TYPE_PHONE_NUMBER", +"DATA_TYPE_RACE_AND_ETHNICITY", +"DATA_TYPE_POLITICAL_OR_RELIGIOUS_BELIEFS", +"DATA_TYPE_SEXUAL_ORIENTATION", +"DATA_TYPE_OTHER_PERSONAL_INFO", +"DATA_TYPE_PAYMENT_INFO", +"DATA_TYPE_PURCHASE_HISTORY", +"DATA_TYPE_CREDIT_SCORE", +"DATA_TYPE_OTHER_FINANCIAL_INFO", +"DATA_TYPE_HEALTH_INFO", +"DATA_TYPE_FITNESS_INFO", +"DATA_TYPE_EMAILS", +"DATA_TYPE_TEXT_MESSAGES", +"DATA_TYPE_OTHER_IN_APP_MESSAGES", +"DATA_TYPE_PHOTOS", +"DATA_TYPE_VIDEOS", +"DATA_TYPE_VOICE_OR_SOUND_RECORDINGS", +"DATA_TYPE_MUSIC_FILES", +"DATA_TYPE_OTHER_AUDIO_FILES", +"DATA_TYPE_FILES_AND_DOCS", +"DATA_TYPE_CALENDAR_EVENTS", +"DATA_TYPE_CONTACTS", +"DATA_TYPE_APP_INTERACTIONS", +"DATA_TYPE_IN_APP_SEARCH_HISTORY", +"DATA_TYPE_INSTALLED_APPS", +"DATA_TYPE_OTHER_USER_GENERATED_CONTENT", +"DATA_TYPE_OTHER_ACTIONS", +"DATA_TYPE_WEB_BROWSING_HISTORY", +"DATA_TYPE_CRASH_LOGS", +"DATA_TYPE_PERFORMANCE_DIAGNOSTICS", +"DATA_TYPE_OTHER_APP_PERFORMANCE_DATA", +"DATA_TYPE_DEVICE_OR_OTHER_IDS" +], +"enumDescriptions": [ +"Not specified.", +"User or device physical location to an area greater than or equal to 3 square kilometers, such as the city a user is in, or location provided by Android's ACCESS_COARSE_LOCATION permission.", +"User or device physical location within an area less than 3 square kilometers, such as location provided by Android's ACCESS_FINE_LOCATION permission.", +"How a user refers to themselves, such as their first or last name, or nickname.", +"A user's email address.", +"Identifiers that relate to an identifiable person. For example, an account ID, account number, or account name.", +"A user's address, such as a mailing or home address.", +"A user's phone number.", +"Information about a user's race or ethnicity.", +"Information about a user's political or religious beliefs.", +"Information about a user's sexual orientation.", +"Any other personal information such as date of birth, gender identity, veteran status, etc.", +"Information about a user's financial accounts such as credit card number.", +"Information about purchases or transactions a user has made.", +"Information about a user's credit score.", +"Any other financial information such as user salary or debts.", +"Information about a user's health, such as medical records or symptoms.", +"Information about a user's fitness, such as exercise or other physical activity.", +"A user's emails including the email subject line, sender, recipients, and the content of the email.", +"A user's text messages including the sender, recipients, and the content of the message.", +"Any other types of messages. For example, instant messages or chat content.", +"A user's photos.", +"A user's videos.", +"A user's voice such as a voicemail or a sound recording.", +"A user's music files.", +"Any other user-created or user-provided audio files.", +"A user's files or documents, or information about their files or documents such as file names.", +"Information from a user's calendar such as events, event notes, and attendees.", +"Information about the user\u2019s contacts such as contact names, message history, and social graph information like usernames, contact recency, contact frequency, interaction duration and call history.", +"Information about how a user interacts with your app, such as the number of page views or taps.", +"Information about what a user has searched for in your app.", +"Inventory of apps or packages installed on the user\u2019s device.", +"Any other user-generated content not listed here, or in any other section. For example, user bios, notes, or open-ended responses.", +"Any other user activity or actions in-app not listed here such as gameplay, likes, and dialog options.", +"Information about the websites a user has visited.", +"Crash log data from your app. For example, the number of times your app has crashed, stack traces, or other information directly related to a crash.", +"Information about the performance of your app. For example battery life, loading time, latency, framerate, or any technical diagnostics.", +"Any other app performance data not listed here.", +"Identifiers that relate to an individual device, browser or app. For example, an IMEI number, MAC address, Widevine Device ID, Firebase installation ID, or advertising identifier." +], +"type": "string" +}, +"dataTypeEvidence": { +"$ref": "GoogleChecksReportV1alphaDataTypeEvidence", +"description": "Evidence collected about the data type." +}, +"metadata": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringResultMetadata", +"description": "Metadata about the result." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataMonitoringEndpointResult": { +"description": "Information about an endpoint that was contacted by your app.", +"id": "GoogleChecksReportV1alphaDataMonitoringEndpointResult", +"properties": { +"endpoint": { +"$ref": "GoogleChecksReportV1alphaEndpoint", +"description": "The endpoint that was contacted by your app." +}, +"hitCount": { +"description": "The number of times this endpoint was contacted by your app.", +"format": "int32", +"type": "integer" +}, +"metadata": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringResultMetadata", +"description": "Metadata about the result." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataMonitoringPermissionResult": { +"description": "Information about a permission that was found in your app.", +"id": "GoogleChecksReportV1alphaDataMonitoringPermissionResult", +"properties": { +"metadata": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringResultMetadata", +"description": "Metadata about the result." +}, +"permission": { +"$ref": "GoogleChecksReportV1alphaPermission", +"description": "The permission that was found in your app." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataMonitoringResultMetadata": { +"description": "Information about a data monitoring result.", +"id": "GoogleChecksReportV1alphaDataMonitoringResultMetadata", +"properties": { +"badges": { +"description": "Badges that apply to this result.", +"items": { +"enum": [ +"DATA_MONITORING_RESULT_BADGE_UNSPECIFIED", +"NEW" +], +"enumDescriptions": [ +"Not specified.", +"Indicates a newly detected result in the data monitoring report." +], +"type": "string" +}, +"type": "array" +}, +"firstDetectedTime": { +"description": "The timestamp when this result was first detected within the last 8 weeks. If not set, it wasn't detected within the last 8 weeks.", +"format": "google-datetime", +"type": "string" +}, +"lastDetectedAppVersion": { +"description": "Your app's version name when this result was last detected within the last 8 weeks. If not set, it wasn't detected within the last 8 weeks.", +"type": "string" +}, +"lastDetectedTime": { +"description": "The timestamp when this result was last detected within the last 8 weeks. If not set, it wasn't detected within the last 8 weeks.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataMonitoringSdkResult": { +"description": "Information about an SDK that was found in your app.", +"id": "GoogleChecksReportV1alphaDataMonitoringSdkResult", +"properties": { +"metadata": { +"$ref": "GoogleChecksReportV1alphaDataMonitoringResultMetadata", +"description": "Metadata about the result." +}, +"sdk": { +"$ref": "GoogleChecksReportV1alphaSdk", +"description": "The SDK that was found in your app." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataTypeEndpointEvidence": { +"description": "Evidence based on an endpoint that data was sent to.", +"id": "GoogleChecksReportV1alphaDataTypeEndpointEvidence", +"properties": { +"attributedSdks": { +"description": "Set of SDKs that are attributed to the exfiltration.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataTypeEndpointEvidenceAttributedSdk" +}, +"type": "array" +}, +"endpointDetails": { +"description": "Endpoints the data type was sent to.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataTypeEndpointEvidenceEndpointDetails" +}, +"type": "array" +}, +"exfiltratedDataType": { +"description": "Type of data that was exfiltrated.", +"enum": [ +"EXFILTRATED_DATA_TYPE_UNSPECIFIED", +"EXFILTRATED_DATA_TYPE_PHONE_NUMBER", +"EXFILTRATED_DATA_TYPE_PRECISE_LOCATION", +"EXFILTRATED_DATA_TYPE_CONTACT_NAME", +"EXFILTRATED_DATA_TYPE_CONTACT_EMAIL", +"EXFILTRATED_DATA_TYPE_CONTACT_PHONE_NUMBER", +"EXFILTRATED_DATA_TYPE_INCOMING_TEXT_NUMBER", +"EXFILTRATED_DATA_TYPE_INCOMING_TEXT_MESSAGE", +"EXFILTRATED_DATA_TYPE_OUTGOING_TEXT_NUMBER", +"EXFILTRATED_DATA_TYPE_OUTGOING_TEXT_MESSAGE", +"EXFILTRATED_DATA_TYPE_ADVERTISING_ID", +"EXFILTRATED_DATA_TYPE_ANDROID_ID", +"EXFILTRATED_DATA_TYPE_IMEI", +"EXFILTRATED_DATA_TYPE_IMSI", +"EXFILTRATED_DATA_TYPE_SIM_SERIAL_NUMBER", +"EXFILTRATED_DATA_TYPE_SSID", +"EXFILTRATED_DATA_TYPE_ACCOUNT", +"EXFILTRATED_DATA_TYPE_EXTERNAL_ACCOUNT", +"EXFILTRATED_DATA_TYPE_INSTALLED_PACKAGES" +], +"enumDescriptions": [ +"Not specified.", +"The user's phone number.", +"The user's precise location.", +"Name of one or more contacts from the user's phone.", +"Email of one or more contacts from the user's phone.", +"Phone number of one or more contacts from the user's phone.", +"Phone number of an incoming text message.", +"Content of an incoming text message.", +"Phone number of an outgoing text message.", +"Content of an outgoing text message.", +"Advertising ID.", +"Android ID.", +"IMEI.", +"IMSI.", +"Sim serial number.", +"SSID: Service Set IDentifier, i.e. the network's name.", +"Information about the main account of the device.", +"Information about an external account, e.g. Facebook, Twitter.", +"One or more of the package names of apps on the device." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataTypeEndpointEvidenceAttributedSdk": { +"description": "Details of SDK that is attributed to the exfiltration.", +"id": "GoogleChecksReportV1alphaDataTypeEndpointEvidenceAttributedSdk", +"properties": { +"sdk": { +"$ref": "GoogleChecksReportV1alphaSdk", +"description": "SDK that is attributed to the exfiltration." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataTypeEndpointEvidenceEndpointDetails": { +"description": "Details of the endpoint the data type was sent to.", +"id": "GoogleChecksReportV1alphaDataTypeEndpointEvidenceEndpointDetails", +"properties": { +"endpoint": { +"$ref": "GoogleChecksReportV1alphaEndpoint", +"description": "Endpoint the data type was sent to." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataTypeEvidence": { +"description": "Evidence collected about a data type.", +"id": "GoogleChecksReportV1alphaDataTypeEvidence", +"properties": { +"endpoints": { +"description": "List of endpoints the data type was sent to.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataTypeEndpointEvidence" +}, +"type": "array" +}, +"permissions": { +"description": "List of included permissions that imply collection of the data type.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataTypePermissionEvidence" +}, +"type": "array" +}, +"privacyPolicyTexts": { +"description": "List of privacy policy texts that imply collection of the data type.", +"items": { +"$ref": "GoogleChecksReportV1alphaDataTypePrivacyPolicyTextEvidence" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataTypePermissionEvidence": { +"description": "Evidence based on the inclusion of a permission.", +"id": "GoogleChecksReportV1alphaDataTypePermissionEvidence", +"properties": { +"permission": { +"$ref": "GoogleChecksReportV1alphaPermission", +"description": "Permission declared by your app." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaDataTypePrivacyPolicyTextEvidence": { +"description": "Evidence based on information from the privacy policy.", +"id": "GoogleChecksReportV1alphaDataTypePrivacyPolicyTextEvidence", +"properties": { +"policyFragment": { +"$ref": "GoogleChecksReportV1alphaPolicyFragment", +"description": "The privacy policy fragment that implies collection of the data type." +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaEndpoint": { +"description": "Information about an endpoint.", +"id": "GoogleChecksReportV1alphaEndpoint", +"properties": { +"domain": { +"description": "Domain name (e.g. ads.google.com).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaListReportsResponse": { +"description": "The response message for ReportService.ListReports.", +"id": "GoogleChecksReportV1alphaListReportsResponse", +"properties": { +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"reports": { +"description": "The reports for the specified app.", +"items": { +"$ref": "GoogleChecksReportV1alphaReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaPermission": { +"description": "Information about a permission.", +"id": "GoogleChecksReportV1alphaPermission", +"properties": { +"id": { +"description": "Permission identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaPolicyFragment": { +"description": "Information about a policy fragment.", +"id": "GoogleChecksReportV1alphaPolicyFragment", +"properties": { +"htmlContent": { +"description": "HTML content.", +"type": "string" +}, +"sourceUri": { +"description": "Policy URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaReport": { +"description": "Privacy report.", +"id": "GoogleChecksReportV1alphaReport", +"properties": { +"appBundle": { +"$ref": "GoogleChecksReportV1alphaAppBundle", +"description": "Information about the analyzed app bundle." +}, +"checks": { +"description": "List of checks that were run on the app bundle.", +"items": { +"$ref": "GoogleChecksReportV1alphaCheck" +}, +"type": "array" +}, +"dataMonitoring": { +"$ref": "GoogleChecksReportV1alphaDataMonitoring", +"description": "Information related to data monitoring." +}, +"name": { +"description": "Resource name of the report.", +"type": "string" +}, +"resultsUri": { +"description": "A URL to view results.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleChecksReportV1alphaSdk": { +"description": "Information about an SDK.", +"id": "GoogleChecksReportV1alphaSdk", +"properties": { +"id": { +"description": "SDK identifier.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"WaitOperationRequest": { +"description": "The request message for Operations.WaitOperation.", +"id": "WaitOperationRequest", +"properties": { +"timeout": { +"description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Checks API", +"version": "v1alpha", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudbuild.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudbuild.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..1ca5f58d690cd18271978f9bc406e8f5a97c7f3f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudbuild.v2.json @@ -0,0 +1,3444 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudbuild.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Build", +"description": "Creates and manages builds on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/cloud-build/docs/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.northamerica-south1.rep.googleapis.com/", +"location": "northamerica-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudbuild:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudbuild.mtls.googleapis.com/", +"name": "cloudbuild", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v2/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"connections": { +"methods": { +"create": { +"description": "Creates a Connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectionId": { +"description": "Required. The ID to use for the Connection, which will become the final component of the Connection's resource name. Names must be unique per-project per-location. Allows alphanumeric characters and any of -._~%!$&'()*+,;=@.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location where the connection will be created. Format: `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.connections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "The current etag of the connection. If an etag is provided and does not match the current etag of the connection, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the Connection to delete. Format: `projects/*/locations/*/connections/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request, but do not actually post it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchLinkableRepositories": { +"description": "FetchLinkableRepositories get repositories from SCM that are accessible and could be added to the connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:fetchLinkableRepositories", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.fetchLinkableRepositories", +"parameterOrder": [ +"connection" +], +"parameters": { +"connection": { +"description": "Required. The name of the Connection. Format: `projects/*/locations/*/connections/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Number of results to return in the list. Default to 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page start.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+connection}:fetchLinkableRepositories", +"response": { +"$ref": "FetchLinkableRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Connection to retrieve. Format: `projects/*/locations/*/connections/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:getIamPolicy", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Connections in a given project and location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Number of results to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page start.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of Connections. Format: `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections", +"response": { +"$ref": "ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.locations.connections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the connection is not found a new connection will be created. In this situation `update_mask` is ignored. The creation will succeed only if the input connection has all the necessary information (e.g a github_config with both user_oauth_token and installation_id properties).", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the connection. If an etag is provided and does not match the current etag of the connection, update will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the connection, in the format `projects/{project}/locations/{location}/connections/{connection_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"processWebhook": { +"description": "ProcessWebhook is called by the external SCM for notifying of events.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections:processWebhook", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.processWebhook", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project and location where the webhook will be received. Format: `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"webhookKey": { +"description": "Arbitrary additional key to find the maching repository for a webhook event if needed.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/connections:processWebhook", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "Empty" +} +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"repositories": { +"methods": { +"accessReadToken": { +"description": "Fetches read token of a given repository.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories/{repositoriesId}:accessReadToken", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.repositories.accessReadToken", +"parameterOrder": [ +"repository" +], +"parameters": { +"repository": { +"description": "Required. The resource name of the repository in the format `projects/*/locations/*/connections/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+repository}:accessReadToken", +"request": { +"$ref": "FetchReadTokenRequest" +}, +"response": { +"$ref": "FetchReadTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"accessReadWriteToken": { +"description": "Fetches read/write token of a given repository.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories/{repositoriesId}:accessReadWriteToken", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.repositories.accessReadWriteToken", +"parameterOrder": [ +"repository" +], +"parameters": { +"repository": { +"description": "Required. The resource name of the repository in the format `projects/*/locations/*/connections/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+repository}:accessReadWriteToken", +"request": { +"$ref": "FetchReadWriteTokenRequest" +}, +"response": { +"$ref": "FetchReadWriteTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"batchCreate": { +"description": "Creates multiple repositories inside a connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories:batchCreate", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.repositories.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The connection to contain all the repositories being created. Format: projects/*/locations/*/connections/* The parent field in the CreateRepositoryRequest messages must either be empty or match this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/repositories:batchCreate", +"request": { +"$ref": "BatchCreateRepositoriesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a Repository.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.connections.repositories.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The connection to contain the repository. If the request is part of a BatchCreateRepositoriesRequest, this field should be empty or match the parent specified there.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"repositoryId": { +"description": "Required. The ID to use for the repository, which will become the final component of the repository's resource name. This ID should be unique in the connection. Allows alphanumeric characters and any of -._~%!$&'()*+,;=@.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/repositories", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single repository.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories/{repositoriesId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.connections.repositories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "The current etag of the repository. If an etag is provided and does not match the current etag of the repository, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the Repository to delete. Format: `projects/*/locations/*/connections/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request, but do not actually post it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchGitRefs": { +"description": "Fetch the list of branches or tags for a given repository.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories/{repositoriesId}:fetchGitRefs", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.repositories.fetchGitRefs", +"parameterOrder": [ +"repository" +], +"parameters": { +"pageSize": { +"description": "Optional. Number of results to return in the list. Default to 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page start.", +"location": "query", +"type": "string" +}, +"refType": { +"description": "Type of refs to fetch", +"enum": [ +"REF_TYPE_UNSPECIFIED", +"TAG", +"BRANCH" +], +"enumDescriptions": [ +"No type specified.", +"To fetch tags.", +"To fetch branches." +], +"location": "query", +"type": "string" +}, +"repository": { +"description": "Required. The resource name of the repository in the format `projects/*/locations/*/connections/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+repository}:fetchGitRefs", +"response": { +"$ref": "FetchGitRefsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single repository.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories/{repositoriesId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.repositories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Repository to retrieve. Format: `projects/*/locations/*/connections/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Repositories in a given connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/repositories", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.connections.repositories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Expressions must follow API improvement proposal [AIP-160](https://google.aip.dev/160). e.g. `remote_uri:\"https://github.com*\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of results to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page start.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of Repositories. Format: `projects/*/locations/*/connections/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/repositories", +"response": { +"$ref": "ListRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250102", +"rootUrl": "https://cloudbuild.googleapis.com/", +"schemas": { +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"BatchCreateRepositoriesRequest": { +"description": "Message for creating repositoritories in batch.", +"id": "BatchCreateRepositoriesRequest", +"properties": { +"requests": { +"description": "Required. The request messages specifying the repositories to create.", +"items": { +"$ref": "CreateRepositoryRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateRepositoriesResponse": { +"description": "Message for response of creating repositories in batch.", +"id": "BatchCreateRepositoriesResponse", +"properties": { +"repositories": { +"description": "Repository resources created.", +"items": { +"$ref": "Repository" +}, +"type": "array" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BitbucketCloudConfig": { +"description": "Configuration for connections to Bitbucket Cloud.", +"id": "BitbucketCloudConfig", +"properties": { +"authorizerCredential": { +"$ref": "UserCredential", +"description": "Required. An access token with the `webhook`, `repository`, `repository:admin` and `pullrequest` scope access. It can be either a workspace, project or repository access token. It's recommended to use a system account to generate these credentials." +}, +"readAuthorizerCredential": { +"$ref": "UserCredential", +"description": "Required. An access token with the `repository` access. It can be either a workspace, project or repository access token. It's recommended to use a system account to generate the credentials." +}, +"webhookSecretSecretVersion": { +"description": "Required. SecretManager resource containing the webhook secret used to verify webhook events, formatted as `projects/*/secrets/*/versions/*`.", +"type": "string" +}, +"workspace": { +"description": "Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud Platform.", +"type": "string" +} +}, +"type": "object" +}, +"BitbucketDataCenterConfig": { +"description": "Configuration for connections to Bitbucket Data Center.", +"id": "BitbucketDataCenterConfig", +"properties": { +"authorizerCredential": { +"$ref": "UserCredential", +"description": "Required. A http access token with the `REPO_ADMIN` scope access." +}, +"hostUri": { +"description": "Required. The URI of the Bitbucket Data Center instance or cluster this connection is for.", +"type": "string" +}, +"readAuthorizerCredential": { +"$ref": "UserCredential", +"description": "Required. A http access token with the `REPO_READ` access." +}, +"serverVersion": { +"description": "Output only. Version of the Bitbucket Data Center running on the `host_uri`.", +"readOnly": true, +"type": "string" +}, +"serviceDirectoryConfig": { +"$ref": "GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig", +"description": "Optional. Configuration for using Service Directory to privately connect to a Bitbucket Data Center. This should only be set if the Bitbucket Data Center is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the Bitbucket Data Center will be made over the public internet." +}, +"sslCa": { +"description": "Optional. SSL certificate to use for requests to the Bitbucket Data Center.", +"type": "string" +}, +"webhookSecretSecretVersion": { +"description": "Required. Immutable. SecretManager resource containing the webhook secret used to verify webhook events, formatted as `projects/*/secrets/*/versions/*`.", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Capabilities": { +"description": "Capabilities adds and removes POSIX capabilities from running containers.", +"id": "Capabilities", +"properties": { +"add": { +"description": "Optional. Added capabilities +optional", +"items": { +"type": "string" +}, +"type": "array" +}, +"drop": { +"description": "Optional. Removed capabilities +optional", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ChildStatusReference": { +"description": "ChildStatusReference is used to point to the statuses of individual TaskRuns and Runs within this PipelineRun.", +"id": "ChildStatusReference", +"properties": { +"name": { +"description": "Name is the name of the TaskRun or Run this is referencing.", +"type": "string" +}, +"pipelineTaskName": { +"description": "PipelineTaskName is the name of the PipelineTask this is referencing.", +"type": "string" +}, +"type": { +"description": "Output only. Type of the child reference.", +"enum": [ +"TYPE_UNSPECIFIED", +"TASK_RUN" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"TaskRun." +], +"readOnly": true, +"type": "string" +}, +"whenExpressions": { +"description": "WhenExpressions is the list of checks guarding the execution of the PipelineTask", +"items": { +"$ref": "WhenExpression" +}, +"type": "array" +} +}, +"type": "object" +}, +"Connection": { +"description": "A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Data Center, Bitbucket Cloud or GitLab.", +"id": "Connection", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Allows clients to store small amounts of arbitrary data.", +"type": "object" +}, +"bitbucketCloudConfig": { +"$ref": "BitbucketCloudConfig", +"description": "Configuration for connections to Bitbucket Cloud." +}, +"bitbucketDataCenterConfig": { +"$ref": "BitbucketDataCenterConfig", +"description": "Configuration for connections to Bitbucket Data Center." +}, +"createTime": { +"description": "Output only. Server assigned timestamp for when the connection was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"disabled": { +"description": "Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.", +"type": "boolean" +}, +"etag": { +"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"githubConfig": { +"$ref": "GitHubConfig", +"description": "Configuration for connections to github.com." +}, +"githubEnterpriseConfig": { +"$ref": "GoogleDevtoolsCloudbuildV2GitHubEnterpriseConfig", +"description": "Configuration for connections to an instance of GitHub Enterprise." +}, +"gitlabConfig": { +"$ref": "GoogleDevtoolsCloudbuildV2GitLabConfig", +"description": "Configuration for connections to gitlab.com or an instance of GitLab Enterprise." +}, +"installationState": { +"$ref": "InstallationState", +"description": "Output only. Installation state of the Connection.", +"readOnly": true +}, +"name": { +"description": "Immutable. The resource name of the connection, in the format `projects/{project}/locations/{location}/connections/{connection_id}`.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Set to true when the connection is being set up or updated in the background.", +"readOnly": true, +"type": "boolean" +}, +"updateTime": { +"description": "Output only. Server assigned timestamp for when the connection was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CreateRepositoryRequest": { +"description": "Message for creating a Repository.", +"id": "CreateRepositoryRequest", +"properties": { +"parent": { +"description": "Required. The connection to contain the repository. If the request is part of a BatchCreateRepositoriesRequest, this field should be empty or match the parent specified there.", +"type": "string" +}, +"repository": { +"$ref": "Repository", +"description": "Required. The repository to create." +}, +"repositoryId": { +"description": "Required. The ID to use for the repository, which will become the final component of the repository's resource name. This ID should be unique in the connection. Allows alphanumeric characters and any of -._~%!$&'()*+,;=@.", +"type": "string" +} +}, +"type": "object" +}, +"EmbeddedTask": { +"description": "EmbeddedTask defines a Task that is embedded in a Pipeline.", +"id": "EmbeddedTask", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "User annotations. See https://google.aip.dev/128#annotations", +"type": "object" +}, +"taskSpec": { +"$ref": "TaskSpec", +"description": "Spec to instantiate this TaskRun." +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EmptyDirVolumeSource": { +"description": "Represents an empty Volume source.", +"id": "EmptyDirVolumeSource", +"properties": {}, +"type": "object" +}, +"EnvVar": { +"description": "Environment variable.", +"id": "EnvVar", +"properties": { +"name": { +"description": "Name of the environment variable.", +"type": "string" +}, +"value": { +"description": "Value of the environment variable.", +"type": "string" +} +}, +"type": "object" +}, +"ExecAction": { +"description": "ExecAction describes a \"run in container\" action.", +"id": "ExecAction", +"properties": { +"command": { +"description": "Optional. Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. +optional", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"FetchGitRefsResponse": { +"description": "Response for fetching git refs", +"id": "FetchGitRefsResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"refNames": { +"description": "Name of the refs fetched.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FetchLinkableRepositoriesResponse": { +"description": "Response message for FetchLinkableRepositories.", +"id": "FetchLinkableRepositoriesResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"repositories": { +"description": "repositories ready to be created.", +"items": { +"$ref": "Repository" +}, +"type": "array" +} +}, +"type": "object" +}, +"FetchReadTokenRequest": { +"description": "Message for fetching SCM read token.", +"id": "FetchReadTokenRequest", +"properties": {}, +"type": "object" +}, +"FetchReadTokenResponse": { +"description": "Message for responding to get read token.", +"id": "FetchReadTokenResponse", +"properties": { +"expirationTime": { +"description": "Expiration timestamp. Can be empty if unknown or non-expiring.", +"format": "google-datetime", +"type": "string" +}, +"token": { +"description": "The token content.", +"type": "string" +} +}, +"type": "object" +}, +"FetchReadWriteTokenRequest": { +"description": "Message for fetching SCM read/write token.", +"id": "FetchReadWriteTokenRequest", +"properties": {}, +"type": "object" +}, +"FetchReadWriteTokenResponse": { +"description": "Message for responding to get read/write token.", +"id": "FetchReadWriteTokenResponse", +"properties": { +"expirationTime": { +"description": "Expiration timestamp. Can be empty if unknown or non-expiring.", +"format": "google-datetime", +"type": "string" +}, +"token": { +"description": "The token content.", +"type": "string" +} +}, +"type": "object" +}, +"GitHubConfig": { +"description": "Configuration for connections to github.com.", +"id": "GitHubConfig", +"properties": { +"appInstallationId": { +"description": "Optional. GitHub App installation id.", +"format": "int64", +"type": "string" +}, +"authorizerCredential": { +"$ref": "OAuthCredential", +"description": "Optional. OAuth credential of the account that authorized the Cloud Build GitHub App. It is recommended to use a robot account instead of a human user account. The OAuth token must be tied to the Cloud Build GitHub App." +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV2Condition": { +"description": "Conditions defines a readiness condition for a Knative resource.", +"id": "GoogleDevtoolsCloudbuildV2Condition", +"properties": { +"lastTransitionTime": { +"description": "LastTransitionTime is the last time the condition transitioned from one status to another.", +"format": "google-datetime", +"type": "string" +}, +"message": { +"description": "A human readable message indicating details about the transition.", +"type": "string" +}, +"reason": { +"description": "The reason for the condition's last transition.", +"type": "string" +}, +"severity": { +"description": "Severity with which to treat failures of this type of condition.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"WARNING", +"INFO" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Severity is warning.", +"Severity is informational only." +], +"type": "string" +}, +"status": { +"description": "Status of the condition.", +"enum": [ +"UNKNOWN", +"TRUE", +"FALSE" +], +"enumDescriptions": [ +"Default enum type indicating execution is still ongoing.", +"Success", +"Failure" +], +"type": "string" +}, +"type": { +"description": "Type of condition.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV2GitHubEnterpriseConfig": { +"description": "Configuration for connections to an instance of GitHub Enterprise.", +"id": "GoogleDevtoolsCloudbuildV2GitHubEnterpriseConfig", +"properties": { +"apiKey": { +"description": "Required. API Key used for authentication of webhook events.", +"type": "string" +}, +"appId": { +"description": "Optional. Id of the GitHub App created from the manifest.", +"format": "int64", +"type": "string" +}, +"appInstallationId": { +"description": "Optional. ID of the installation of the GitHub App.", +"format": "int64", +"type": "string" +}, +"appSlug": { +"description": "Optional. The URL-friendly name of the GitHub App.", +"type": "string" +}, +"hostUri": { +"description": "Required. The URI of the GitHub Enterprise host this connection is for.", +"type": "string" +}, +"privateKeySecretVersion": { +"description": "Optional. SecretManager resource containing the private key of the GitHub App, formatted as `projects/*/secrets/*/versions/*`.", +"type": "string" +}, +"serverVersion": { +"description": "Output only. GitHub Enterprise version installed at the host_uri.", +"readOnly": true, +"type": "string" +}, +"serviceDirectoryConfig": { +"$ref": "GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig", +"description": "Optional. Configuration for using Service Directory to privately connect to a GitHub Enterprise server. This should only be set if the GitHub Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitHub Enterprise server will be made over the public internet." +}, +"sslCa": { +"description": "Optional. SSL certificate to use for requests to GitHub Enterprise.", +"type": "string" +}, +"webhookSecretSecretVersion": { +"description": "Optional. SecretManager resource containing the webhook secret of the GitHub App, formatted as `projects/*/secrets/*/versions/*`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV2GitLabConfig": { +"description": "Configuration for connections to gitlab.com or an instance of GitLab Enterprise.", +"id": "GoogleDevtoolsCloudbuildV2GitLabConfig", +"properties": { +"authorizerCredential": { +"$ref": "UserCredential", +"description": "Required. A GitLab personal access token with the `api` scope access." +}, +"hostUri": { +"description": "Optional. The URI of the GitLab Enterprise host this connection is for. If not specified, the default value is https://gitlab.com.", +"type": "string" +}, +"readAuthorizerCredential": { +"$ref": "UserCredential", +"description": "Required. A GitLab personal access token with the minimum `read_api` scope access." +}, +"serverVersion": { +"description": "Output only. Version of the GitLab Enterprise server running on the `host_uri`.", +"readOnly": true, +"type": "string" +}, +"serviceDirectoryConfig": { +"$ref": "GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig", +"description": "Optional. Configuration for using Service Directory to privately connect to a GitLab Enterprise server. This should only be set if the GitLab Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitLab Enterprise server will be made over the public internet." +}, +"sslCa": { +"description": "Optional. SSL certificate to use for requests to GitLab Enterprise.", +"type": "string" +}, +"webhookSecretSecretVersion": { +"description": "Required. Immutable. SecretManager resource containing the webhook secret of a GitLab Enterprise project, formatted as `projects/*/secrets/*/versions/*`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV2OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleDevtoolsCloudbuildV2OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig": { +"description": "ServiceDirectoryConfig represents Service Directory configuration for a connection.", +"id": "GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig", +"properties": { +"service": { +"description": "Required. The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.", +"type": "string" +} +}, +"type": "object" +}, +"HttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "HttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"InstallationState": { +"description": "Describes stage and necessary actions to be taken by the user to complete the installation. Used for GitHub and GitHub Enterprise based connections.", +"id": "InstallationState", +"properties": { +"actionUri": { +"description": "Output only. Link to follow for next action. Empty string if the installation is already complete.", +"readOnly": true, +"type": "string" +}, +"message": { +"description": "Output only. Message of what the user should do next to continue the installation. Empty string if the installation is already complete.", +"readOnly": true, +"type": "string" +}, +"stage": { +"description": "Output only. Current step of the installation process.", +"enum": [ +"STAGE_UNSPECIFIED", +"PENDING_CREATE_APP", +"PENDING_USER_OAUTH", +"PENDING_INSTALL_APP", +"COMPLETE" +], +"enumDescriptions": [ +"No stage specified.", +"Only for GitHub Enterprise. An App creation has been requested. The user needs to confirm the creation in their GitHub enterprise host.", +"User needs to authorize the GitHub (or Enterprise) App via OAuth.", +"User needs to follow the link to install the GitHub (or Enterprise) App.", +"Installation process has been completed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionsResponse": { +"description": "Message for response to listing Connections.", +"id": "ListConnectionsResponse", +"properties": { +"connections": { +"description": "The list of Connections.", +"items": { +"$ref": "Connection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListRepositoriesResponse": { +"description": "Message for response to listing Repositories.", +"id": "ListRepositoriesResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"repositories": { +"description": "The list of Repositories.", +"items": { +"$ref": "Repository" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"OAuthCredential": { +"description": "Represents an OAuth token of the account that authorized the Connection, and associated metadata.", +"id": "OAuthCredential", +"properties": { +"oauthTokenSecretVersion": { +"description": "Optional. A SecretManager resource containing the OAuth token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.", +"type": "string" +}, +"username": { +"description": "Output only. The username associated to this token.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Param": { +"description": "Param defined with name and value. PipelineRef can be used to refer to a specific instance of a Pipeline.", +"id": "Param", +"properties": { +"name": { +"description": "Name of the parameter.", +"type": "string" +}, +"value": { +"$ref": "ParamValue", +"description": "Value of the parameter." +} +}, +"type": "object" +}, +"ParamSpec": { +"description": "ParamSpec defines parameters needed beyond typed inputs (such as resources). Parameter values are provided by users as inputs on a TaskRun or PipelineRun.", +"id": "ParamSpec", +"properties": { +"default": { +"$ref": "ParamValue", +"description": "The default value a parameter takes if no input value is supplied" +}, +"description": { +"description": "Description of the ParamSpec", +"type": "string" +}, +"name": { +"description": "Name of the ParamSpec", +"type": "string" +}, +"type": { +"description": "Type of ParamSpec", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"ARRAY", +"OBJECT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Default", +"Array type.", +"Object type." +], +"type": "string" +} +}, +"type": "object" +}, +"ParamValue": { +"description": "Parameter value.", +"id": "ParamValue", +"properties": { +"arrayVal": { +"description": "Value of the parameter if type is array.", +"items": { +"type": "string" +}, +"type": "array" +}, +"objectVal": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Value of the parameter if type is object.", +"type": "object" +}, +"stringVal": { +"description": "Value of the parameter if type is string.", +"type": "string" +}, +"type": { +"description": "Type of parameter.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"ARRAY", +"OBJECT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Default", +"Array type", +"Object type" +], +"type": "string" +} +}, +"type": "object" +}, +"PipelineRef": { +"description": "PipelineRef can be used to refer to a specific instance of a Pipeline.", +"id": "PipelineRef", +"properties": { +"name": { +"description": "Optional. Name of the Pipeline.", +"type": "string" +}, +"params": { +"description": "Params contains the parameters used to identify the referenced Tekton resource. Example entries might include \"repo\" or \"path\" but the set of params ultimately depends on the chosen resolver.", +"items": { +"$ref": "Param" +}, +"type": "array" +}, +"resolver": { +"description": "Resolver is the name of the resolver that should perform resolution of the referenced Tekton resource.", +"enum": [ +"RESOLVER_NAME_UNSPECIFIED", +"BUNDLES", +"GCB_REPO", +"GIT", +"DEVELOPER_CONNECT", +"DEFAULT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Bundles resolver. https://tekton.dev/docs/pipelines/bundle-resolver/", +"GCB repo resolver.", +"Simple Git resolver. https://tekton.dev/docs/pipelines/git-resolver/", +"Developer Connect resolver.", +"Default resolver." +], +"type": "string" +} +}, +"type": "object" +}, +"PipelineResult": { +"description": "A value produced by a Pipeline.", +"id": "PipelineResult", +"properties": { +"description": { +"description": "Output only. Description of the result.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Name of the result.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of data that the result holds.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"ARRAY", +"OBJECT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Default", +"Array type", +"Object type" +], +"readOnly": true, +"type": "string" +}, +"value": { +"$ref": "ResultValue", +"description": "Output only. Value of the result.", +"readOnly": true +} +}, +"type": "object" +}, +"PipelineRun": { +"description": "Message describing PipelineRun object", +"id": "PipelineRun", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "User annotations. See https://google.aip.dev/128#annotations", +"type": "object" +}, +"childReferences": { +"description": "Output only. List of TaskRun and Run names and PipelineTask names for children of this PipelineRun.", +"items": { +"$ref": "ChildStatusReference" +}, +"readOnly": true, +"type": "array" +}, +"completionTime": { +"description": "Output only. Time the pipeline completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"conditions": { +"description": "Output only. Kubernetes Conditions convention for PipelineRun status and error.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV2Condition" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. Time at which the request to create the `PipelineRun` was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Needed for declarative-friendly resources.", +"type": "string" +}, +"finallyStartTime": { +"description": "Output only. FinallyStartTime is when all non-finally tasks have been completed and only finally tasks are being executed. +optional", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"gcbParams": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. GCB default params.", +"readOnly": true, +"type": "object" +}, +"name": { +"description": "Output only. The `PipelineRun` name with format `projects/{project}/locations/{location}/pipelineRuns/{pipeline_run}`", +"readOnly": true, +"type": "string" +}, +"params": { +"description": "Params is a list of parameter names and values.", +"items": { +"$ref": "Param" +}, +"type": "array" +}, +"pipelineRef": { +"$ref": "PipelineRef", +"description": "PipelineRef refer to a specific instance of a Pipeline." +}, +"pipelineRunStatus": { +"description": "Pipelinerun status the user can provide. Used for cancellation.", +"enum": [ +"PIPELINE_RUN_STATUS_UNSPECIFIED", +"PIPELINE_RUN_CANCELLED" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Cancelled status." +], +"type": "string" +}, +"pipelineSpec": { +"$ref": "PipelineSpec", +"description": "PipelineSpec defines the desired state of Pipeline." +}, +"pipelineSpecYaml": { +"description": "Output only. Inline pipelineSpec yaml string, used by workflow run requests.", +"readOnly": true, +"type": "string" +}, +"provenance": { +"$ref": "Provenance", +"description": "Optional. Provenance configuration." +}, +"record": { +"description": "Output only. The `Record` of this `PipelineRun`. Format: `projects/{project}/locations/{location}/results/{result_id}/records/{record_id}`", +"readOnly": true, +"type": "string" +}, +"resolvedPipelineSpec": { +"$ref": "PipelineSpec", +"description": "Output only. The exact PipelineSpec used to instantiate the run.", +"readOnly": true +}, +"results": { +"description": "Optional. Output only. List of results written out by the pipeline's containers", +"items": { +"$ref": "PipelineRunResult" +}, +"readOnly": true, +"type": "array" +}, +"security": { +"$ref": "Security", +"description": "Optional. Security configuration." +}, +"serviceAccount": { +"deprecated": true, +"description": "Service account used in the Pipeline. Deprecated; please use security.service_account instead.", +"type": "string" +}, +"skippedTasks": { +"description": "Output only. List of tasks that were skipped due to when expressions evaluating to false.", +"items": { +"$ref": "SkippedTask" +}, +"readOnly": true, +"type": "array" +}, +"startTime": { +"description": "Output only. Time the pipeline is actually started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"timeouts": { +"$ref": "TimeoutFields", +"description": "Time after which the Pipeline times out. Currently three keys are accepted in the map pipeline, tasks and finally with Timeouts.pipeline >= Timeouts.tasks + Timeouts.finally" +}, +"uid": { +"description": "Output only. A unique identifier for the `PipelineRun`.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time at which the request to update the `PipelineRun` was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"worker": { +"$ref": "Worker", +"description": "Optional. Worker configuration." +}, +"workerPool": { +"description": "Output only. The WorkerPool used to run this PipelineRun.", +"readOnly": true, +"type": "string" +}, +"workflow": { +"description": "Output only. The Workflow used to create this PipelineRun.", +"readOnly": true, +"type": "string" +}, +"workspaces": { +"description": "Workspaces is a list of WorkspaceBindings from volumes to workspaces.", +"items": { +"$ref": "WorkspaceBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"PipelineRunResult": { +"description": "PipelineRunResult used to describe the results of a pipeline", +"id": "PipelineRunResult", +"properties": { +"name": { +"description": "Output only. Name of the TaskRun", +"readOnly": true, +"type": "string" +}, +"value": { +"$ref": "ResultValue", +"description": "Output only. Value of the result.", +"readOnly": true +} +}, +"type": "object" +}, +"PipelineSpec": { +"description": "PipelineSpec defines the desired state of Pipeline.", +"id": "PipelineSpec", +"properties": { +"finallyTasks": { +"description": "List of Tasks that execute just before leaving the Pipeline i.e. either after all Tasks are finished executing successfully or after a failure which would result in ending the Pipeline.", +"items": { +"$ref": "PipelineTask" +}, +"type": "array" +}, +"generatedYaml": { +"description": "Output only. auto-generated yaml that is output only for display purpose for workflows using pipeline_spec, used by UI/gcloud cli for Workflows.", +"readOnly": true, +"type": "string" +}, +"params": { +"description": "List of parameters.", +"items": { +"$ref": "ParamSpec" +}, +"type": "array" +}, +"results": { +"description": "Optional. Output only. List of results written out by the pipeline's containers", +"items": { +"$ref": "PipelineResult" +}, +"readOnly": true, +"type": "array" +}, +"tasks": { +"description": "List of Tasks that execute when this Pipeline is run.", +"items": { +"$ref": "PipelineTask" +}, +"type": "array" +}, +"workspaces": { +"description": "Workspaces declares a set of named workspaces that are expected to be provided by a PipelineRun.", +"items": { +"$ref": "PipelineWorkspaceDeclaration" +}, +"type": "array" +} +}, +"type": "object" +}, +"PipelineTask": { +"description": "PipelineTask defines a task in a Pipeline.", +"id": "PipelineTask", +"properties": { +"name": { +"description": "Name of the task.", +"type": "string" +}, +"params": { +"description": "Params is a list of parameter names and values.", +"items": { +"$ref": "Param" +}, +"type": "array" +}, +"retries": { +"description": "Retries represents how many times this task should be retried in case of task failure.", +"format": "int32", +"type": "integer" +}, +"runAfter": { +"description": "RunAfter is the list of PipelineTask names that should be executed before this Task executes. (Used to force a specific ordering in graph execution.)", +"items": { +"type": "string" +}, +"type": "array" +}, +"taskRef": { +"$ref": "TaskRef", +"description": "Reference to a specific instance of a task." +}, +"taskSpec": { +"$ref": "EmbeddedTask", +"description": "Spec to instantiate this TaskRun." +}, +"timeout": { +"description": "Time after which the TaskRun times out. Defaults to 1 hour. Specified TaskRun timeout should be less than 24h.", +"format": "google-duration", +"type": "string" +}, +"whenExpressions": { +"description": "Conditions that need to be true for the task to run.", +"items": { +"$ref": "WhenExpression" +}, +"type": "array" +}, +"workspaces": { +"description": "Workspaces maps workspaces from the pipeline spec to the workspaces declared in the Task.", +"items": { +"$ref": "WorkspacePipelineTaskBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"PipelineWorkspaceDeclaration": { +"description": "Workspaces declares a set of named workspaces that are expected to be provided by a PipelineRun.", +"id": "PipelineWorkspaceDeclaration", +"properties": { +"description": { +"description": "Description is a human readable string describing how the workspace will be used in the Pipeline.", +"type": "string" +}, +"name": { +"description": "Name is the name of a workspace to be provided by a PipelineRun.", +"type": "string" +}, +"optional": { +"description": "Optional marks a Workspace as not being required in PipelineRuns. By default this field is false and so declared workspaces are required.", +"type": "boolean" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Probe": { +"description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", +"id": "Probe", +"properties": { +"exec": { +"$ref": "ExecAction", +"description": "Optional. Exec specifies the action to take. +optional" +}, +"periodSeconds": { +"description": "Optional. How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. +optional", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PropertySpec": { +"description": "PropertySpec holds information about a property in an object.", +"id": "PropertySpec", +"properties": { +"type": { +"description": "A type for the object.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Default" +], +"type": "string" +} +}, +"type": "object" +}, +"Provenance": { +"description": "Provenance configuration.", +"id": "Provenance", +"properties": { +"enabled": { +"description": "Optional. Provenance push mode.", +"enum": [ +"ENABLED_UNSPECIFIED", +"REQUIRED", +"OPTIMISTIC", +"DISABLED" +], +"enumDescriptions": [ +"Default to disabled (before AA regionalization), optimistic after", +"Provenance failures would fail the run", +"GCB will attempt to push to artifact analaysis and build state would not be impacted by the push failures.", +"Disable the provenance push entirely." +], +"type": "string" +}, +"region": { +"description": "Optional. Provenance region.", +"enum": [ +"REGION_UNSPECIFIED", +"GLOBAL" +], +"enumDescriptions": [ +"The PipelineRun/TaskRun/Workflow will be rejected. Update this comment to push to the same region as the run in Artifact Analysis when it's regionalized.", +"Push provenance to Artifact Analysis in global region." +], +"type": "string" +}, +"storage": { +"description": "Optional. Where provenance is stored.", +"enum": [ +"STORAGE_UNSPECIFIED", +"PREFER_ARTIFACT_PROJECT", +"ARTIFACT_PROJECT_ONLY", +"BUILD_PROJECT_ONLY" +], +"enumDescriptions": [ +"Default PREFER_ARTIFACT_PROJECT.", +"GCB will attempt to push provenance to the artifact project. If it is not available, fallback to build project.", +"Only push to artifact project.", +"Only push to build project." +], +"type": "string" +} +}, +"type": "object" +}, +"Repository": { +"description": "A repository associated to a parent connection.", +"id": "Repository", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Allows clients to store small amounts of arbitrary data.", +"type": "object" +}, +"createTime": { +"description": "Output only. Server assigned timestamp for when the connection was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"name": { +"description": "Immutable. Resource name of the repository, in the format `projects/*/locations/*/connections/*/repositories/*`.", +"type": "string" +}, +"remoteUri": { +"description": "Required. Git Clone HTTPS URI.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Server assigned timestamp for when the connection was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"webhookId": { +"description": "Output only. External ID of the webhook created for the repository.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ResultValue": { +"description": "ResultValue holds different types of data for a single result.", +"id": "ResultValue", +"properties": { +"arrayVal": { +"description": "Value of the result if type is array.", +"items": { +"type": "string" +}, +"type": "array" +}, +"objectVal": { +"additionalProperties": { +"type": "string" +}, +"description": "Value of the result if type is object.", +"type": "object" +}, +"stringVal": { +"description": "Value of the result if type is string.", +"type": "string" +}, +"type": { +"description": "Output only. The type of data that the result holds.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"ARRAY", +"OBJECT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Default", +"Array type", +"Object type" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RunWorkflowCustomOperationMetadata": { +"description": "Represents the custom metadata of the RunWorkflow long-running operation.", +"id": "RunWorkflowCustomOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"pipelineRunId": { +"description": "Output only. ID of the pipeline run created by RunWorkflow.", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SecretVolumeSource": { +"description": "Secret Volume Source.", +"id": "SecretVolumeSource", +"properties": { +"secretName": { +"description": "Name of the secret referenced by the WorkspaceBinding.", +"type": "string" +}, +"secretVersion": { +"description": "Optional. Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*", +"type": "string" +} +}, +"type": "object" +}, +"Security": { +"description": "Security configuration.", +"id": "Security", +"properties": { +"privilegeMode": { +"deprecated": true, +"description": "Optional. Privilege mode.", +"enum": [ +"PRIVILEGE_MODE_UNSPECIFIED", +"PRIVILEGED", +"UNPRIVILEGED" +], +"enumDescriptions": [ +"Default to PRIVILEGED.", +"Privileged mode.", +"Unprivileged mode." +], +"type": "string" +}, +"serviceAccount": { +"description": "IAM service account whose credentials will be used at runtime.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityContext": { +"description": "Security options the container should be run with.", +"id": "SecurityContext", +"properties": { +"allowPrivilegeEscalation": { +"description": "Optional. AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. +optional", +"type": "boolean" +}, +"capabilities": { +"$ref": "Capabilities", +"description": "Optional. Adds and removes POSIX capabilities from running containers." +}, +"privileged": { +"description": "Run container in privileged mode.", +"type": "boolean" +}, +"runAsGroup": { +"description": "Optional. The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. +optional", +"format": "int64", +"type": "string" +}, +"runAsNonRoot": { +"description": "Optional. Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. +optional", +"type": "boolean" +}, +"runAsUser": { +"description": "Optional. The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. +optional", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Sidecar": { +"description": "Sidecars run alongside the Task's step containers.", +"id": "Sidecar", +"properties": { +"args": { +"description": "Arguments to the entrypoint.", +"items": { +"type": "string" +}, +"type": "array" +}, +"command": { +"description": "Entrypoint array.", +"items": { +"type": "string" +}, +"type": "array" +}, +"env": { +"description": "List of environment variables to set in the container.", +"items": { +"$ref": "EnvVar" +}, +"type": "array" +}, +"image": { +"description": "Docker image name.", +"type": "string" +}, +"name": { +"description": "Name of the Sidecar.", +"type": "string" +}, +"readinessProbe": { +"$ref": "Probe", +"description": "Optional. Periodic probe of Sidecar service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes +optional" +}, +"script": { +"description": "The contents of an executable file to execute.", +"type": "string" +}, +"securityContext": { +"$ref": "SecurityContext", +"description": "Optional. Security options the container should be run with." +}, +"volumeMounts": { +"description": "Pod volumes to mount into the container's filesystem.", +"items": { +"$ref": "VolumeMount" +}, +"type": "array" +}, +"workingDir": { +"description": "Container's working directory.", +"type": "string" +} +}, +"type": "object" +}, +"SkippedTask": { +"description": "SkippedTask is used to describe the Tasks that were skipped due to their When Expressions evaluating to False.", +"id": "SkippedTask", +"properties": { +"name": { +"description": "Name is the Pipeline Task name", +"type": "string" +}, +"reason": { +"description": "Output only. Reason is the cause of the PipelineTask being skipped.", +"readOnly": true, +"type": "string" +}, +"whenExpressions": { +"description": "WhenExpressions is the list of checks guarding the execution of the PipelineTask", +"items": { +"$ref": "WhenExpression" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Step": { +"description": "Step embeds the Container type, which allows it to include fields not provided by Container.", +"id": "Step", +"properties": { +"args": { +"description": "Arguments to the entrypoint.", +"items": { +"type": "string" +}, +"type": "array" +}, +"command": { +"description": "Entrypoint array.", +"items": { +"type": "string" +}, +"type": "array" +}, +"env": { +"description": "List of environment variables to set in the container.", +"items": { +"$ref": "EnvVar" +}, +"type": "array" +}, +"image": { +"description": "Docker image name.", +"type": "string" +}, +"name": { +"description": "Name of the container specified as a DNS_LABEL.", +"type": "string" +}, +"onError": { +"description": "Optional. OnError defines the exiting behavior on error can be set to [ continue | stopAndFail ]", +"enum": [ +"ON_ERROR_TYPE_UNSPECIFIED", +"STOP_AND_FAIL", +"CONTINUE" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"StopAndFail indicates exit if the step/task exits with non-zero exit code", +"Continue indicates continue executing the rest of the steps/tasks irrespective of the exit code" +], +"type": "string" +}, +"params": { +"description": "Optional. Optional parameters passed to the StepAction.", +"items": { +"$ref": "Param" +}, +"type": "array" +}, +"ref": { +"$ref": "StepRef", +"description": "Optional. Optional reference to a remote StepAction." +}, +"script": { +"description": "The contents of an executable file to execute.", +"type": "string" +}, +"securityContext": { +"$ref": "SecurityContext", +"description": "Optional. SecurityContext defines the security options the Step should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +optional" +}, +"timeout": { +"description": "Time after which the Step times out. Defaults to never.", +"format": "google-duration", +"type": "string" +}, +"volumeMounts": { +"description": "Pod volumes to mount into the container's filesystem.", +"items": { +"$ref": "VolumeMount" +}, +"type": "array" +}, +"workingDir": { +"description": "Container's working directory.", +"type": "string" +} +}, +"type": "object" +}, +"StepRef": { +"description": "A reference to a remote Step, i.e. a StepAction.", +"id": "StepRef", +"properties": { +"name": { +"description": "Optional. Name of the step.", +"type": "string" +}, +"params": { +"description": "Optional. Parameters used to control the resolution.", +"items": { +"$ref": "Param" +}, +"type": "array" +}, +"resolver": { +"description": "Optional. Type of the resolver.", +"enum": [ +"RESOLVER_NAME_UNSPECIFIED", +"BUNDLES", +"GCB_REPO", +"GIT", +"DEVELOPER_CONNECT", +"DEFAULT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Bundles resolver. https://tekton.dev/docs/pipelines/bundle-resolver/", +"GCB repo resolver.", +"Simple Git resolver. https://tekton.dev/docs/pipelines/git-resolver/", +"Developer Connect resolver.", +"Default resolver." +], +"type": "string" +} +}, +"type": "object" +}, +"StepTemplate": { +"description": "StepTemplate can be used as the basis for all step containers within the Task, so that the steps inherit settings on the base container.", +"id": "StepTemplate", +"properties": { +"env": { +"description": "Optional. List of environment variables to set in the Step. Cannot be updated.", +"items": { +"$ref": "EnvVar" +}, +"type": "array" +}, +"volumeMounts": { +"description": "Optional. Pod volumes to mount into the container's filesystem.", +"items": { +"$ref": "VolumeMount" +}, +"type": "array" +} +}, +"type": "object" +}, +"TaskRef": { +"description": "TaskRef can be used to refer to a specific instance of a task. PipelineRef can be used to refer to a specific instance of a Pipeline.", +"id": "TaskRef", +"properties": { +"name": { +"description": "Optional. Name of the task.", +"type": "string" +}, +"params": { +"description": "Params contains the parameters used to identify the referenced Tekton resource. Example entries might include \"repo\" or \"path\" but the set of params ultimately depends on the chosen resolver.", +"items": { +"$ref": "Param" +}, +"type": "array" +}, +"resolver": { +"description": "Resolver is the name of the resolver that should perform resolution of the referenced Tekton resource.", +"enum": [ +"RESOLVER_NAME_UNSPECIFIED", +"BUNDLES", +"GCB_REPO", +"GIT", +"DEVELOPER_CONNECT", +"DEFAULT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Bundles resolver. https://tekton.dev/docs/pipelines/bundle-resolver/", +"GCB repo resolver.", +"Simple Git resolver. https://tekton.dev/docs/pipelines/git-resolver/", +"Developer Connect resolver.", +"Default resolver." +], +"type": "string" +} +}, +"type": "object" +}, +"TaskResult": { +"description": "TaskResult is used to describe the results of a task.", +"id": "TaskResult", +"properties": { +"description": { +"description": "Description of the result.", +"type": "string" +}, +"name": { +"description": "Name of the result.", +"type": "string" +}, +"properties": { +"additionalProperties": { +"$ref": "PropertySpec" +}, +"description": "When type is OBJECT, this map holds the names of fields inside that object along with the type of data each field holds.", +"type": "object" +}, +"type": { +"description": "The type of data that the result holds.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"ARRAY", +"OBJECT" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Default", +"Array type", +"Object type" +], +"type": "string" +}, +"value": { +"$ref": "ParamValue", +"description": "Optional. Optionally used to initialize a Task's result with a Step's result." +} +}, +"type": "object" +}, +"TaskSpec": { +"description": "TaskSpec contains the Spec to instantiate a TaskRun.", +"id": "TaskSpec", +"properties": { +"description": { +"description": "Description of the task.", +"type": "string" +}, +"managedSidecars": { +"description": "Sidecars that run alongside the Task\u2019s step containers that should be added to this Task.", +"items": { +"enum": [ +"MANAGED_SIDECAR_UNSPECIFIED", +"PRIVILEGED_DOCKER_DAEMON" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Sidecar for a privileged docker daemon." +], +"type": "string" +}, +"type": "array" +}, +"params": { +"description": "List of parameters.", +"items": { +"$ref": "ParamSpec" +}, +"type": "array" +}, +"results": { +"description": "Values that this Task can output.", +"items": { +"$ref": "TaskResult" +}, +"type": "array" +}, +"sidecars": { +"description": "Sidecars that run alongside the Task's step containers.", +"items": { +"$ref": "Sidecar" +}, +"type": "array" +}, +"stepTemplate": { +"$ref": "StepTemplate", +"description": "Optional. StepTemplate can be used as the basis for all step containers within the Task, so that the steps inherit settings on the base container." +}, +"steps": { +"description": "Steps of the task.", +"items": { +"$ref": "Step" +}, +"type": "array" +}, +"volumes": { +"description": "A collection of volumes that are available to mount into steps.", +"items": { +"$ref": "VolumeSource" +}, +"type": "array" +}, +"workspaces": { +"description": "The volumes that this Task requires.", +"items": { +"$ref": "WorkspaceDeclaration" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeoutFields": { +"description": "TimeoutFields allows granular specification of pipeline, task, and finally timeouts", +"id": "TimeoutFields", +"properties": { +"finally": { +"description": "Finally sets the maximum allowed duration of this pipeline's finally", +"format": "google-duration", +"type": "string" +}, +"pipeline": { +"description": "Pipeline sets the maximum allowed duration for execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value.", +"format": "google-duration", +"type": "string" +}, +"tasks": { +"description": "Tasks sets the maximum allowed duration of this pipeline's tasks", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"UserCredential": { +"description": "Represents a personal access token that authorized the Connection, and associated metadata.", +"id": "UserCredential", +"properties": { +"userTokenSecretVersion": { +"description": "Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.", +"type": "string" +}, +"username": { +"description": "Output only. The username associated to this token.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"VolumeMount": { +"description": "Pod volumes to mount into the container's filesystem.", +"id": "VolumeMount", +"properties": { +"mountPath": { +"description": "Path within the container at which the volume should be mounted. Must not contain ':'.", +"type": "string" +}, +"name": { +"description": "Name of the volume.", +"type": "string" +}, +"readOnly": { +"description": "Mounted read-only if true, read-write otherwise (false or unspecified).", +"type": "boolean" +}, +"subPath": { +"description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", +"type": "string" +}, +"subPathExpr": { +"description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root).", +"type": "string" +} +}, +"type": "object" +}, +"VolumeSource": { +"description": "Volumes available to mount.", +"id": "VolumeSource", +"properties": { +"emptyDir": { +"$ref": "EmptyDirVolumeSource", +"description": "A temporary directory that shares a pod's lifetime." +}, +"name": { +"description": "Name of the Volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", +"type": "string" +} +}, +"type": "object" +}, +"WhenExpression": { +"description": "Conditions that need to be true for the task to run.", +"id": "WhenExpression", +"properties": { +"expressionOperator": { +"description": "Operator that represents an Input's relationship to the values", +"enum": [ +"EXPRESSION_OPERATOR_UNSPECIFIED", +"IN", +"NOT_IN" +], +"enumDescriptions": [ +"Default enum type; should not be used.", +"Input is in values.", +"Input is not in values." +], +"type": "string" +}, +"input": { +"description": "Input is the string for guard checking which can be a static input or an output from a parent Task.", +"type": "string" +}, +"values": { +"description": "Values is an array of strings, which is compared against the input, for guard checking.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Worker": { +"description": "Configuration for the worker.", +"id": "Worker", +"properties": { +"machineType": { +"description": "Optional. Machine type of a worker, default is \"e2-standard-2\".", +"type": "string" +} +}, +"type": "object" +}, +"WorkspaceBinding": { +"description": "WorkspaceBinding maps a workspace to a Volume. PipelineRef can be used to refer to a specific instance of a Pipeline.", +"id": "WorkspaceBinding", +"properties": { +"name": { +"description": "Name of the workspace.", +"type": "string" +}, +"secret": { +"$ref": "SecretVolumeSource", +"description": "Secret Volume Source." +}, +"subPath": { +"description": "Optional. SubPath is optionally a directory on the volume which should be used for this binding (i.e. the volume will be mounted at this sub directory). +optional", +"type": "string" +} +}, +"type": "object" +}, +"WorkspaceDeclaration": { +"description": "WorkspaceDeclaration is a declaration of a volume that a Task requires.", +"id": "WorkspaceDeclaration", +"properties": { +"description": { +"description": "Description is a human readable description of this volume.", +"type": "string" +}, +"mountPath": { +"description": "MountPath overrides the directory that the volume will be made available at.", +"type": "string" +}, +"name": { +"description": "Name is the name by which you can bind the volume at runtime.", +"type": "string" +}, +"optional": { +"description": "Optional. Optional marks a Workspace as not being required in TaskRuns. By default this field is false and so declared workspaces are required.", +"type": "boolean" +}, +"readOnly": { +"description": "ReadOnly dictates whether a mounted volume is writable.", +"type": "boolean" +} +}, +"type": "object" +}, +"WorkspacePipelineTaskBinding": { +"description": "WorkspacePipelineTaskBinding maps workspaces from the PipelineSpec to the workspaces declared in the Task.", +"id": "WorkspacePipelineTaskBinding", +"properties": { +"name": { +"description": "Name of the workspace as declared by the task.", +"type": "string" +}, +"subPath": { +"description": "Optional. SubPath is optionally a directory on the volume which should be used for this binding (i.e. the volume will be mounted at this sub directory). +optional", +"type": "string" +}, +"workspace": { +"description": "Name of the workspace declared by the pipeline.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Build API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudcontrolspartner.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudcontrolspartner.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..67a8e00f66895aee8f4ba8e2cef00f42818da3c4 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudcontrolspartner.v1.json @@ -0,0 +1,1400 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudcontrolspartner.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Controls Partner Service", +"description": "Provides insights about your customers and their Assured Workloads based on your Sovereign Controls by Partners offering.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/sovereign-controls-by-partners/docs/sovereign-partners/reference/rest", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudcontrolspartner:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudcontrolspartner.mtls.googleapis.com/", +"name": "cloudcontrolspartner", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"methods": { +"getPartner": { +"description": "Get details of a Partner.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/partner", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.getPartner", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `organizations/{organization}/locations/{location}/partner`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/partner$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Partner" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"customers": { +"methods": { +"create": { +"description": "Creates a new customer.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers", +"httpMethod": "POST", +"id": "cloudcontrolspartner.organizations.locations.customers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"customerId": { +"description": "Required. The customer id to use for the customer, which will become the final component of the customer's resource name. The specified value must be a valid Google cloud organization id.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customers", +"request": { +"$ref": "Customer" +}, +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete details of a single customer", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}", +"httpMethod": "DELETE", +"id": "cloudcontrolspartner.organizations.locations.customers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. name of the resource to be deleted format: name=organizations/*/locations/*/customers/*", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single customer", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists customers of a partner identified by its Google Cloud organization ID", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of Customers to return. The service may return fewer than this value. If unspecified, at most 500 Customers will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListCustomers` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customers", +"response": { +"$ref": "ListCustomersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update details of a single customer", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}", +"httpMethod": "PATCH", +"id": "cloudcontrolspartner.organizations.locations.customers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to update", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Customer" +}, +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"workloads": { +"methods": { +"get": { +"description": "Gets details of a single workload", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Workload" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getEkmConnections": { +"description": "Gets the EKM connections associated with a workload", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/ekmConnections", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.getEkmConnections", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/ekmConnections$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EkmConnections" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getPartnerPermissions": { +"description": "Gets the partner permissions granted for a workload", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/partnerPermissions", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.getPartnerPermissions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource to get in the format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/partnerPermissions$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PartnerPermissions" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists customer workloads for a given customer org id", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of workloads to return. The service may return fewer than this value. If unspecified, at most 500 workloads will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkloads` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}/customers/{customer}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/workloads", +"response": { +"$ref": "ListWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"accessApprovalRequests": { +"deprecated": true, +"methods": { +"list": { +"deprecated": true, +"description": "Deprecated: Only returns access approval requests directly associated with an assured workload folder.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/accessApprovalRequests", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.accessApprovalRequests.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of access requests to return. The service may return fewer than this value. If unspecified, at most 500 access requests will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListAccessApprovalRequests` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/accessApprovalRequests", +"response": { +"$ref": "ListAccessApprovalRequestsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"violations": { +"methods": { +"get": { +"description": "Gets details of a single Violation.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/violations/{violationsId}", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.violations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/violations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Violation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Violations for a workload Callers may also choose to read across multiple Customers or for a single customer as per [AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash character) as a wildcard character instead of {customer} & {workload}. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/violations", +"httpMethod": "GET", +"id": "cloudcontrolspartner.organizations.locations.customers.workloads.violations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"interval.endTime": { +"description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"interval.startTime": { +"description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of customers row to return. The service may return fewer than this value. If unspecified, at most 10 customers will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListViolations` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource Format `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/violations", +"response": { +"$ref": "ListViolationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20241231", +"rootUrl": "https://cloudcontrolspartner.googleapis.com/", +"schemas": { +"AccessApprovalRequest": { +"description": "Details about the Access request.", +"id": "AccessApprovalRequest", +"properties": { +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}`", +"type": "string" +}, +"requestTime": { +"description": "The time at which approval was requested.", +"format": "google-datetime", +"type": "string" +}, +"requestedExpirationTime": { +"description": "The requested expiration for the approval. If the request is approved, access will be granted from the time of approval until the expiration time.", +"format": "google-datetime", +"type": "string" +}, +"requestedReason": { +"$ref": "AccessReason", +"description": "The justification for which approval is being requested." +} +}, +"type": "object" +}, +"AccessReason": { +"description": "Reason for the access.", +"id": "AccessReason", +"properties": { +"detail": { +"description": "More detail about certain reason types. See comments for each type above.", +"type": "string" +}, +"type": { +"description": "Type of access justification.", +"enum": [ +"TYPE_UNSPECIFIED", +"CUSTOMER_INITIATED_SUPPORT", +"GOOGLE_INITIATED_SERVICE", +"GOOGLE_INITIATED_REVIEW", +"THIRD_PARTY_DATA_REQUEST", +"GOOGLE_RESPONSE_TO_PRODUCTION_ALERT", +"CLOUD_INITIATED_ACCESS" +], +"enumDescriptions": [ +"Default value for proto, shouldn't be used.", +"Customer made a request or raised an issue that required the principal to access customer data. `detail` is of the form (\"#####\" is the issue ID): - \"Feedback Report: #####\" - \"Case Number: #####\" - \"Case ID: #####\" - \"E-PIN Reference: #####\" - \"Google-#####\" - \"T-#####\"", +"The principal accessed customer data in order to diagnose or resolve a suspected issue in services. Often this access is used to confirm that customers are not affected by a suspected service issue or to remediate a reversible system issue.", +"Google initiated service for security, fraud, abuse, or compliance purposes.", +"The principal was compelled to access customer data in order to respond to a legal third party data request or process, including legal processes from customers themselves.", +"The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage.", +"Similar to 'GOOGLE_INITIATED_SERVICE' or 'GOOGLE_INITIATED_REVIEW', but with universe agnostic naming. The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage, or for security, fraud, abuse, or compliance review purposes." +], +"type": "string" +} +}, +"type": "object" +}, +"ConnectionError": { +"description": "Information around the error that occurred if the connection state is anything other than available or unspecified", +"id": "ConnectionError", +"properties": { +"errorDomain": { +"description": "The error domain for the error", +"type": "string" +}, +"errorMessage": { +"description": "The error message for the error", +"type": "string" +} +}, +"type": "object" +}, +"Console": { +"description": "Remediation instructions to resolve violation via cloud console", +"id": "Console", +"properties": { +"additionalLinks": { +"description": "Additional urls for more information about steps", +"items": { +"type": "string" +}, +"type": "array" +}, +"consoleUris": { +"description": "Link to console page where violations can be resolved", +"items": { +"type": "string" +}, +"type": "array" +}, +"steps": { +"description": "Steps to resolve violation via cloud console", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Customer": { +"description": "Contains metadata around a Cloud Controls Partner Customer", +"id": "Customer", +"properties": { +"customerOnboardingState": { +"$ref": "CustomerOnboardingState", +"description": "Output only. Container for customer onboarding steps", +"readOnly": true +}, +"displayName": { +"description": "Required. Display name for the customer", +"type": "string" +}, +"isOnboarded": { +"description": "Output only. Indicates whether a customer is fully onboarded", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}`", +"type": "string" +}, +"organizationDomain": { +"description": "Output only. The customer organization domain, extracted from CRM Organization\u2019s display_name field. e.g. \"google.com\"", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomerOnboardingState": { +"description": "Container for customer onboarding steps", +"id": "CustomerOnboardingState", +"properties": { +"onboardingSteps": { +"description": "List of customer onboarding steps", +"items": { +"$ref": "CustomerOnboardingStep" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomerOnboardingStep": { +"description": "Container for customer onboarding information", +"id": "CustomerOnboardingStep", +"properties": { +"completionState": { +"description": "Output only. Current state of the step", +"enum": [ +"COMPLETION_STATE_UNSPECIFIED", +"PENDING", +"SUCCEEDED", +"FAILED", +"NOT_APPLICABLE" +], +"enumDescriptions": [ +"Unspecified completion state.", +"Task started (has start date) but not yet completed.", +"Succeeded state.", +"Failed state.", +"Not applicable state." +], +"readOnly": true, +"type": "string" +}, +"completionTime": { +"description": "The completion time of the onboarding step", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The starting time of the onboarding step", +"format": "google-datetime", +"type": "string" +}, +"step": { +"description": "The onboarding step", +"enum": [ +"STEP_UNSPECIFIED", +"KAJ_ENROLLMENT", +"CUSTOMER_ENVIRONMENT" +], +"enumDescriptions": [ +"Unspecified step", +"KAJ Enrollment", +"Customer Environment" +], +"type": "string" +} +}, +"type": "object" +}, +"EkmConnection": { +"description": "Details about the EKM connection", +"id": "EkmConnection", +"properties": { +"connectionError": { +"$ref": "ConnectionError", +"description": "The connection error that occurred if any" +}, +"connectionName": { +"description": "Resource name of the EKM connection in the format: projects/{project}/locations/{location}/ekmConnections/{ekm_connection}", +"type": "string" +}, +"connectionState": { +"description": "Output only. The connection state", +"enum": [ +"CONNECTION_STATE_UNSPECIFIED", +"AVAILABLE", +"NOT_AVAILABLE", +"ERROR", +"PERMISSION_DENIED" +], +"enumDescriptions": [ +"Unspecified EKM connection state", +"Available EKM connection state", +"Not available EKM connection state", +"Error EKM connection state", +"Permission denied EKM connection state" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"EkmConnections": { +"description": "The EKM connections associated with a workload", +"id": "EkmConnections", +"properties": { +"ekmConnections": { +"description": "The EKM connections associated with the workload", +"items": { +"$ref": "EkmConnection" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections`", +"type": "string" +} +}, +"type": "object" +}, +"EkmMetadata": { +"description": "Holds information needed by Mudbray to use partner EKMs for workloads.", +"id": "EkmMetadata", +"properties": { +"ekmEndpointUri": { +"description": "Endpoint for sending requests to the EKM for key provisioning during Assured Workload creation.", +"type": "string" +}, +"ekmSolution": { +"description": "The Cloud EKM partner.", +"enum": [ +"EKM_SOLUTION_UNSPECIFIED", +"FORTANIX", +"FUTUREX", +"THALES", +"VIRTRU" +], +"enumDeprecated": [ +false, +false, +false, +false, +true +], +"enumDescriptions": [ +"Unspecified EKM solution", +"EKM Partner Fortanix", +"EKM Partner FutureX", +"EKM Partner Thales", +"This enum value is never used." +], +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Gcloud": { +"description": "Remediation instructions to resolve violation via gcloud cli", +"id": "Gcloud", +"properties": { +"additionalLinks": { +"description": "Additional urls for more information about steps", +"items": { +"type": "string" +}, +"type": "array" +}, +"gcloudCommands": { +"description": "Gcloud command to resolve violation", +"items": { +"type": "string" +}, +"type": "array" +}, +"steps": { +"description": "Steps to resolve violation via gcloud cli", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Instructions": { +"description": "Instructions to remediate violation", +"id": "Instructions", +"properties": { +"consoleInstructions": { +"$ref": "Console", +"description": "Remediation instructions to resolve violation via cloud console" +}, +"gcloudInstructions": { +"$ref": "Gcloud", +"description": "Remediation instructions to resolve violation via gcloud cli" +} +}, +"type": "object" +}, +"ListAccessApprovalRequestsResponse": { +"description": "Response message for list access requests.", +"id": "ListAccessApprovalRequestsResponse", +"properties": { +"accessApprovalRequests": { +"description": "List of access approval requests", +"items": { +"$ref": "AccessApprovalRequest" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListCustomersResponse": { +"description": "Response message for list customer Customers requests", +"id": "ListCustomersResponse", +"properties": { +"customers": { +"description": "List of customers", +"items": { +"$ref": "Customer" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListViolationsResponse": { +"description": "Response message for list customer violation requests", +"id": "ListViolationsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Workloads that could not be reached due to permission errors or any other error. Ref: https://google.aip.dev/217", +"items": { +"type": "string" +}, +"type": "array" +}, +"violations": { +"description": "List of violation", +"items": { +"$ref": "Violation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadsResponse": { +"description": "Response message for list customer workloads requests.", +"id": "ListWorkloadsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workloads": { +"description": "List of customer workloads", +"items": { +"$ref": "Workload" +}, +"type": "array" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Partner": { +"description": "Message describing Partner resource", +"id": "Partner", +"properties": { +"createTime": { +"description": "Output only. Time the resource was created", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"ekmSolutions": { +"description": "List of Google Cloud supported EKM partners supported by the partner", +"items": { +"$ref": "EkmMetadata" +}, +"type": "array" +}, +"name": { +"description": "Identifier. The resource name of the partner. Format: `organizations/{organization}/locations/{location}/partner` Example: \"organizations/123456/locations/us-central1/partner\"", +"type": "string" +}, +"operatedCloudRegions": { +"description": "List of Google Cloud regions that the partner sells services to customers. Valid Google Cloud regions found here: https://cloud.google.com/compute/docs/regions-zones", +"items": { +"type": "string" +}, +"type": "array" +}, +"partnerProjectId": { +"description": "Google Cloud project ID in the partner's Google Cloud organization for receiving enhanced Logs for Partners.", +"type": "string" +}, +"skus": { +"description": "List of SKUs the partner is offering", +"items": { +"$ref": "Sku" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last time the resource was updated", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PartnerPermissions": { +"description": "The permissions granted to the partner for a workload", +"id": "PartnerPermissions", +"properties": { +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions`", +"type": "string" +}, +"partnerPermissions": { +"description": "The partner permissions granted for the workload", +"items": { +"enum": [ +"PERMISSION_UNSPECIFIED", +"ACCESS_TRANSPARENCY_AND_EMERGENCY_ACCESS_LOGS", +"ASSURED_WORKLOADS_MONITORING", +"ACCESS_APPROVAL_REQUESTS", +"ASSURED_WORKLOADS_EKM_CONNECTION_STATUS", +"ACCESS_TRANSPARENCY_LOGS_SUPPORT_CASE_VIEWER" +], +"enumDescriptions": [ +"Unspecified partner permission", +"Permission for Access Transparency and emergency logs", +"Permission for Assured Workloads monitoring violations", +"Permission for Access Approval requests", +"Permission for External Key Manager connection status", +"Permission for support case details for Access Transparency log entries" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Remediation": { +"description": "Represents remediation guidance to resolve compliance violation for AssuredWorkload", +"id": "Remediation", +"properties": { +"compliantValues": { +"description": "Values that can resolve the violation For example: for list org policy violations, this will either be the list of allowed or denied values", +"items": { +"type": "string" +}, +"type": "array" +}, +"instructions": { +"$ref": "Instructions", +"description": "Required. Remediation instructions to resolve violations" +}, +"remediationType": { +"description": "Output only. Remediation type based on the type of org policy values violated", +"enum": [ +"REMEDIATION_TYPE_UNSPECIFIED", +"REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION", +"REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION", +"REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION", +"REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION", +"REMEDIATION_RESOURCE_VIOLATION" +], +"enumDescriptions": [ +"Unspecified remediation type", +"Remediation type for boolean org policy", +"Remediation type for list org policy which have allowed values in the monitoring rule", +"Remediation type for list org policy which have denied values in the monitoring rule", +"Remediation type for gcp.restrictCmekCryptoKeyProjects", +"Remediation type for resource violation." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Sku": { +"description": "Represents the SKU a partner owns inside Google Cloud to sell to customers.", +"id": "Sku", +"properties": { +"displayName": { +"description": "Display name of the product identified by the SKU. A partner may want to show partner branded names for their offerings such as local sovereign cloud solutions.", +"type": "string" +}, +"id": { +"description": "Argentum product SKU, that is associated with the partner offerings to customers used by Syntro for billing purposes. SKUs can represent resold Google products or support services.", +"type": "string" +} +}, +"type": "object" +}, +"Violation": { +"description": "Details of resource Violation", +"id": "Violation", +"properties": { +"beginTime": { +"description": "Output only. Time of the event which triggered the Violation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"category": { +"description": "Output only. Category under which this violation is mapped. e.g. Location, Service Usage, Access, Encryption, etc.", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. Description for the Violation. e.g. OrgPolicy gcp.resourceLocations has non compliant value.", +"readOnly": true, +"type": "string" +}, +"folderId": { +"description": "The folder_id of the violation", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}`", +"type": "string" +}, +"nonCompliantOrgPolicy": { +"description": "Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and resulted this violation. Format: `projects/{project_number}/policies/{constraint_name}` `folders/{folder_id}/policies/{constraint_name}` `organizations/{organization_id}/policies/{constraint_name}`", +"readOnly": true, +"type": "string" +}, +"remediation": { +"$ref": "Remediation", +"description": "Output only. Compliance violation remediation", +"readOnly": true +}, +"resolveTime": { +"description": "Output only. Time of the event which fixed the Violation. If the violation is ACTIVE this will be empty.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the violation", +"enum": [ +"STATE_UNSPECIFIED", +"RESOLVED", +"UNRESOLVED", +"EXCEPTION" +], +"enumDescriptions": [ +"Unspecified state.", +"Violation is resolved.", +"Violation is Unresolved", +"Violation is Exception" +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last time when the Violation record was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Workload": { +"description": "Contains metadata around the [Workload resource](https://cloud.google.com/assured-workloads/docs/reference/rest/Shared.Types/Workload) in the Assured Workloads API.", +"id": "Workload", +"properties": { +"createTime": { +"description": "Output only. Time the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"folder": { +"description": "Output only. The name of container folder of the assured workload", +"readOnly": true, +"type": "string" +}, +"folderId": { +"description": "Output only. Folder id this workload is associated with", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"isOnboarded": { +"description": "Indicates whether a workload is fully onboarded.", +"type": "boolean" +}, +"keyManagementProjectId": { +"description": "The project id of the key management project for the workload", +"type": "string" +}, +"location": { +"description": "The Google Cloud location of the workload", +"type": "string" +}, +"name": { +"description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`", +"type": "string" +}, +"partner": { +"description": "Partner associated with this workload.", +"enum": [ +"PARTNER_UNSPECIFIED", +"PARTNER_LOCAL_CONTROLS_BY_S3NS", +"PARTNER_SOVEREIGN_CONTROLS_BY_T_SYSTEMS", +"PARTNER_SOVEREIGN_CONTROLS_BY_SIA_MINSAIT", +"PARTNER_SOVEREIGN_CONTROLS_BY_PSN", +"PARTNER_SOVEREIGN_CONTROLS_BY_CNTXT", +"PARTNER_SOVEREIGN_CONTROLS_BY_CNTXT_NO_EKM" +], +"enumDescriptions": [ +"Unknown Partner.", +"Enum representing S3NS (Thales) partner.", +"Enum representing T_SYSTEM (TSI) partner.", +"Enum representing SIA_MINSAIT (Indra) partner.", +"Enum representing PSN (TIM) partner.", +"Enum representing CNTXT (Kingdom of Saudi Arabia) partner.", +"Enum representing CNXT (Kingdom of Saudi Arabia) partner offering without EKM provisioning." +], +"type": "string" +}, +"workloadOnboardingState": { +"$ref": "WorkloadOnboardingState", +"description": "Container for workload onboarding steps." +} +}, +"type": "object" +}, +"WorkloadOnboardingState": { +"description": "Container for workload onboarding steps.", +"id": "WorkloadOnboardingState", +"properties": { +"onboardingSteps": { +"description": "List of workload onboarding steps.", +"items": { +"$ref": "WorkloadOnboardingStep" +}, +"type": "array" +} +}, +"type": "object" +}, +"WorkloadOnboardingStep": { +"description": "Container for workload onboarding information.", +"id": "WorkloadOnboardingStep", +"properties": { +"completionState": { +"description": "Output only. The completion state of the onboarding step.", +"enum": [ +"COMPLETION_STATE_UNSPECIFIED", +"PENDING", +"SUCCEEDED", +"FAILED", +"NOT_APPLICABLE" +], +"enumDescriptions": [ +"Unspecified completion state.", +"Task started (has start date) but not yet completed.", +"Succeeded state.", +"Failed state.", +"Not applicable state." +], +"readOnly": true, +"type": "string" +}, +"completionTime": { +"description": "The completion time of the onboarding step.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The starting time of the onboarding step.", +"format": "google-datetime", +"type": "string" +}, +"step": { +"description": "The onboarding step.", +"enum": [ +"STEP_UNSPECIFIED", +"EKM_PROVISIONED", +"SIGNED_ACCESS_APPROVAL_CONFIGURED" +], +"enumDescriptions": [ +"Unspecified step.", +"EKM Provisioned step.", +"Signed Access Approval step." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Controls Partner API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..5786bc32fd5f4d436c4fe99e63f44cc70b7374e8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json @@ -0,0 +1,3046 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudresourcemanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Resource Manager", +"description": "Creates, reads, and updates metadata for Google Cloud Platform resource containers.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/resource-manager", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudresourcemanager:v3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudresourcemanager.mtls.googleapis.com/", +"name": "cloudresourcemanager", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"effectiveTags": { +"methods": { +"list": { +"description": "Return a list of effective tags for the given Google Cloud resource, as specified in `parent`.", +"flatPath": "v3/effectiveTags", +"httpMethod": "GET", +"id": "cloudresourcemanager.effectiveTags.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of effective tags to return in the response. The server allows a maximum of 300 effective tags to return in a single page. If unspecified, the server will use 100 as the default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `ListEffectiveTags` that indicates from where this listing should continue.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The full resource name of a resource for which you want to list the effective tags. E.g. \"//cloudresourcemanager.googleapis.com/projects/123\"", +"location": "query", +"type": "string" +} +}, +"path": "v3/effectiveTags", +"response": { +"$ref": "ListEffectiveTagsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"folders": { +"methods": { +"create": { +"description": "Creates a folder in the resource hierarchy. Returns an `Operation` which can be used to track the progress of the folder creation workflow. Upon success, the `Operation.response` field will be populated with the created Folder. In order to succeed, the addition of this new folder must not violate the folder naming, height, or fanout constraints. + The folder's `display_name` must be distinct from all other folders that share its parent. + The addition of the folder must not cause the active folder hierarchy to exceed a height of 10. Note, the full active + deleted folder hierarchy is allowed to reach a height of 20; this provides additional headroom when moving folders that contain deleted folders. + The addition of the folder must not cause the total number of folders under its parent to exceed 300. If the operation fails due to a folder constraint violation, some errors may be returned by the `CreateFolder` request, with status code `FAILED_PRECONDITION` and an error description. Other folder constraint violations will be communicated in the `Operation`, with the specific `PreconditionFailure` returned in the details list in the `Operation.error` field. The caller must have `resourcemanager.folders.create` permission on the identified parent.", +"flatPath": "v3/folders", +"httpMethod": "POST", +"id": "cloudresourcemanager.folders.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/folders", +"request": { +"$ref": "Folder" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Requests deletion of a folder. The folder is moved into the DELETE_REQUESTED state immediately, and is deleted approximately 30 days later. This method may only be called on an empty folder, where a folder is empty if it doesn't contain any folders or projects in the ACTIVE state. If called on a folder in DELETE_REQUESTED state the operation will result in a no-op success. The caller must have `resourcemanager.folders.delete` permission on the identified folder.", +"flatPath": "v3/folders/{foldersId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.folders.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the folder to be deleted. Must be of the form `folders/{folder_id}`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a folder identified by the supplied resource name. Valid folder resource names have the format `folders/{folder_id}` (for example, `folders/1234`). The caller must have `resourcemanager.folders.get` permission on the identified folder.", +"flatPath": "v3/folders/{foldersId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.folders.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the folder to retrieve. Must be of the form `folders/{folder_id}`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Folder" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a folder. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the folder's resource name, for example: \"folders/1234\". The caller must have `resourcemanager.folders.getIamPolicy` permission on the identified folder.", +"flatPath": "v3/folders/{foldersId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.folders.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists the folders that are direct descendants of supplied parent resource. `list()` provides a strongly consistent view of the folders underneath the specified parent resource. `list()` returns folders sorted based upon the (ascending) lexical ordering of their display_name. The caller must have `resourcemanager.folders.list` permission on the identified parent.", +"flatPath": "v3/folders", +"httpMethod": "GET", +"id": "cloudresourcemanager.folders.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of folders to return in the response. The server can return fewer folders than requested. If unspecified, server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `ListFolders` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource whose folders are being listed. Only children of this parent resource are listed; descendants are not listed. If the parent is a folder, use the value `folders/{folder_id}`. If the parent is an organization, use the value `organizations/{org_id}`. Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Optional. Controls whether folders in the DELETE_REQUESTED state should be returned. Defaults to false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/folders", +"response": { +"$ref": "ListFoldersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"move": { +"description": "Moves a folder under a new resource parent. Returns an `Operation` which can be used to track the progress of the folder move workflow. Upon success, the `Operation.response` field will be populated with the moved folder. Upon failure, a `FolderOperationError` categorizing the failure cause will be returned - if the failure occurs synchronously then the `FolderOperationError` will be returned in the `Status.details` field. If it occurs asynchronously, then the FolderOperation will be returned in the `Operation.error` field. In addition, the `Operation.metadata` field will be populated with a `FolderOperation` message as an aid to stateless clients. Folder moves will be rejected if they violate either the naming, height, or fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.move` permission on the folder's current and proposed new parent.", +"flatPath": "v3/folders/{foldersId}:move", +"httpMethod": "POST", +"id": "cloudresourcemanager.folders.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Folder to move. Must be of the form folders/{folder_id}", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:move", +"request": { +"$ref": "MoveFolderRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a folder, changing its `display_name`. Changes to the folder `display_name` will be rejected if they violate either the `display_name` formatting rules or the naming constraints described in the CreateFolder documentation. The folder's `display_name` must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be between 3 and 30 characters. This is captured by the regular expression: `\\p{L}\\p{N}{1,28}[\\p{L}\\p{N}]`. The caller must have `resourcemanager.folders.update` permission on the identified folder. If the update fails due to the unique name constraint then a `PreconditionFailure` explaining this violation will be returned in the Status.details field.", +"flatPath": "v3/folders/{foldersId}", +"httpMethod": "PATCH", +"id": "cloudresourcemanager.folders.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: \"folders/1234\".", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Fields to be updated. Only the `display_name` can be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "Folder" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Search for folders that match specific filter criteria. `search()` provides an eventually consistent view of the folders a user has access to which meet the specified filter criteria. This will only return folders on which the caller has the permission `resourcemanager.folders.get`.", +"flatPath": "v3/folders:search", +"httpMethod": "GET", +"id": "cloudresourcemanager.folders.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of folders to return in the response. The server can return fewer folders than requested. If unspecified, server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `SearchFolders` that indicates from where search should continue.", +"location": "query", +"type": "string" +}, +"query": { +"description": "Optional. Search criteria used to select the folders to return. If no search criteria is specified then all accessible folders will be returned. Query expressions can be used to restrict results based upon displayName, state and parent, where the operators `=` (`:`) `NOT`, `AND` and `OR` can be used along with the suffix wildcard symbol `*`. The `displayName` field in a query expression should use escaped quotes for values that include whitespace to prevent unexpected behavior. ``` | Field | Description | |-------------------------|----------------------------------------| | displayName | Filters by displayName. | | parent | Filters by parent (for example: folders/123). | | state, lifecycleState | Filters by state. | ``` Some example queries are: * Query `displayName=Test*` returns Folder resources whose display name starts with \"Test\". * Query `state=ACTIVE` returns Folder resources with `state` set to `ACTIVE`. * Query `parent=folders/123` returns Folder resources that have `folders/123` as a parent resource. * Query `parent=folders/123 AND state=ACTIVE` returns active Folder resources that have `folders/123` as a parent resource. * Query `displayName=\\\\\"Test String\\\\\"` returns Folder resources with display names that include both \"Test\" and \"String\".", +"location": "query", +"type": "string" +} +}, +"path": "v3/folders:search", +"response": { +"$ref": "SearchFoldersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on a folder, replacing any existing policy. The `resource` field should be the folder's resource name, for example: \"folders/1234\". The caller must have `resourcemanager.folders.setIamPolicy` permission on the identified folder.", +"flatPath": "v3/folders/{foldersId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.folders.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified folder. The `resource` field should be the folder's resource name, for example: \"folders/1234\". There are no permissions required for making this API call.", +"flatPath": "v3/folders/{foldersId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.folders.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Cancels the deletion request for a folder. This method may be called on a folder in any state. If the folder is in the ACTIVE state the result will be a no-op success. In order to succeed, the folder's parent must be in the ACTIVE state. In addition, reintroducing the folder into the tree must not violate folder naming, height, and fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.undelete` permission on the identified folder.", +"flatPath": "v3/folders/{foldersId}:undelete", +"httpMethod": "POST", +"id": "cloudresourcemanager.folders.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the folder to undelete. Must be of the form `folders/{folder_id}`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:undelete", +"request": { +"$ref": "UndeleteFolderRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"liens": { +"methods": { +"create": { +"description": "Create a Lien which applies to the resource denoted by the `parent` field. Callers of this method will require permission on the `parent` resource. For example, applying to `projects/1234` requires permission `resourcemanager.projects.updateLiens`. NOTE: Some resources may limit the number of Liens which may be applied.", +"flatPath": "v3/liens", +"httpMethod": "POST", +"id": "cloudresourcemanager.liens.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/liens", +"request": { +"$ref": "Lien" +}, +"response": { +"$ref": "Lien" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"delete": { +"description": "Delete a Lien by `name`. Callers of this method will require permission on the `parent` resource. For example, a Lien with a `parent` of `projects/1234` requires permission `resourcemanager.projects.updateLiens`.", +"flatPath": "v3/liens/{liensId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.liens.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name/identifier of the Lien to delete.", +"location": "path", +"pattern": "^liens/.*$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"get": { +"description": "Retrieve a Lien by `name`. Callers of this method will require permission on the `parent` resource. For example, a Lien with a `parent` of `projects/1234` requires permission `resourcemanager.projects.get`", +"flatPath": "v3/liens/{liensId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.liens.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name/identifier of the Lien.", +"location": "path", +"pattern": "^liens/.*$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Lien" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "List all Liens applied to the `parent` resource. Callers of this method will require permission on the `parent` resource. For example, a Lien with a `parent` of `projects/1234` requires permission `resourcemanager.projects.get`.", +"flatPath": "v3/liens", +"httpMethod": "GET", +"id": "cloudresourcemanager.liens.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. This is a suggestion for the server. The server can return fewer liens than requested. If unspecified, server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the resource to list all attached Liens. For example, `projects/1234`. (google.api.field_policy).resource_type annotation is not set since the parent depends on the meta api implementation. This field could be a project or other sub project resources.", +"location": "query", +"type": "string" +} +}, +"path": "v3/liens", +"response": { +"$ref": "ListLiensResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v3/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"organizations": { +"methods": { +"get": { +"description": "Fetches an organization resource identified by the specified resource name.", +"flatPath": "v3/organizations/{organizationsId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.organizations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Organization to fetch. This is the organization's relative path in the API, formatted as \"organizations/[organizationId]\". For example, \"organizations/1234\".", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Organization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for an organization resource. The policy may be empty if no such policy or resource exists. The `resource` field should be the organization's resource name, for example: \"organizations/123\". Authorization requires the IAM permission `resourcemanager.organizations.getIamPolicy` on the specified organization.", +"flatPath": "v3/organizations/{organizationsId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.organizations.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"search": { +"description": "Searches organization resources that are visible to the user and satisfy the specified filter. This method returns organizations in an unspecified order. New organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get` or has super admin privileges.", +"flatPath": "v3/organizations:search", +"httpMethod": "GET", +"id": "cloudresourcemanager.organizations.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of organizations to return in the response. The server can return fewer organizations than requested. If unspecified, server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `SearchOrganizations` that indicates from where listing should continue.", +"location": "query", +"type": "string" +}, +"query": { +"description": "Optional. An optional query string used to filter the Organizations to return in the response. Query rules are case-insensitive. ``` | Field | Description | |------------------|--------------------------------------------| | directoryCustomerId, owner.directoryCustomerId | Filters by directory customer id. | | domain | Filters by domain. | ``` Organizations may be queried by `directoryCustomerId` or by `domain`, where the domain is a G Suite domain, for example: * Query `directorycustomerid:123456789` returns Organization resources with `owner.directory_customer_id` equal to `123456789`. * Query `domain:google.com` returns Organization resources corresponding to the domain `google.com`.", +"location": "query", +"type": "string" +} +}, +"path": "v3/organizations:search", +"response": { +"$ref": "SearchOrganizationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on an organization resource. Replaces any existing policy. The `resource` field should be the organization's resource name, for example: \"organizations/123\". Authorization requires the IAM permission `resourcemanager.organizations.setIamPolicy` on the specified organization.", +"flatPath": "v3/organizations/{organizationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.organizations.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has on the specified organization. The `resource` field should be the organization's resource name, for example: \"organizations/123\". There are no permissions required for making this API call.", +"flatPath": "v3/organizations/{organizationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.organizations.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"projects": { +"methods": { +"create": { +"description": "Request that a new project be created. The result is an `Operation` which can be used to track the creation process. This process usually takes a few seconds, but can sometimes take much longer. The tracking `Operation` is automatically deleted after a few hours, so there is no need to call `DeleteOperation`.", +"flatPath": "v3/projects", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/projects", +"request": { +"$ref": "Project" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Marks the project identified by the specified `name` (for example, `projects/415104041262`) for deletion. This method will only affect the project if it has a lifecycle state of ACTIVE. This method changes the Project's lifecycle state from ACTIVE to DELETE_REQUESTED. The deletion starts at an unspecified time, at which point the Project is no longer accessible. Until the deletion completes, you can check the lifecycle state checked by retrieving the project with GetProject, and the project remains visible to ListProjects. However, you cannot update the project. After the deletion completes, the project is not retrievable by the GetProject, ListProjects, and SearchProjects methods. This method behaves idempotently, such that deleting a `DELETE_REQUESTED` project will not cause an error, but also won't do anything. The caller must have `resourcemanager.projects.delete` permissions for this project.", +"flatPath": "v3/projects/{projectsId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.projects.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Project (for example, `projects/415104041262`).", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves the project identified by the specified `name` (for example, `projects/415104041262`). The caller must have `resourcemanager.projects.get` permission for this project.", +"flatPath": "v3/projects/{projectsId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.projects.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project (for example, `projects/415104041262`).", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Project" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Returns the IAM access control policy for the specified project, in the format `projects/{ProjectIdOrNumber}` e.g. projects/123. Permission is denied if the policy or the resource do not exist.", +"flatPath": "v3/projects/{projectsId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists projects that are direct children of the specified folder or organization resource. `list()` provides a strongly consistent view of the projects underneath the specified parent resource. `list()` returns projects sorted based upon the (ascending) lexical ordering of their `display_name`. The caller must have `resourcemanager.projects.list` permission on the identified parent.", +"flatPath": "v3/projects", +"httpMethod": "GET", +"id": "cloudresourcemanager.projects.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of projects to return in the response. The server can return fewer projects than requested. If unspecified, server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to ListProjects that indicates from where listing should continue.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource whose projects are being listed. Only children of this parent resource are listed; descendants are not listed. If the parent is a folder, use the value `folders/{folder_id}`. If the parent is an organization, use the value `organizations/{org_id}`.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Optional. Indicate that projects in the `DELETE_REQUESTED` state should also be returned. Normally only `ACTIVE` projects are returned.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/projects", +"response": { +"$ref": "ListProjectsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"move": { +"description": "Move a project to another place in your resource hierarchy, under a new resource parent. Returns an operation which can be used to track the process of the project move workflow. Upon success, the `Operation.response` field will be populated with the moved project. The caller must have `resourcemanager.projects.move` permission on the project, on the project's current and proposed new parent. If project has no current parent, or it currently does not have an associated organization resource, you will also need the `resourcemanager.projects.setIamPolicy` permission in the project. ", +"flatPath": "v3/projects/{projectsId}:move", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project to move.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:move", +"request": { +"$ref": "MoveProjectRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the `display_name` and labels of the project identified by the specified `name` (for example, `projects/415104041262`). Deleting all labels requires an update mask for labels field. The caller must have `resourcemanager.projects.update` permission for this project.", +"flatPath": "v3/projects/{projectsId}", +"httpMethod": "PATCH", +"id": "cloudresourcemanager.projects.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The unique resource name of the project. It is an int64 generated number prefixed by \"projects/\". Example: `projects/415104041262`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. An update mask to selectively update fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "Project" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Search for projects that the caller has the `resourcemanager.projects.get` permission on, and also satisfy the specified query. This method returns projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.", +"flatPath": "v3/projects:search", +"httpMethod": "GET", +"id": "cloudresourcemanager.projects.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of projects to return in the response. The server can return fewer projects than requested. If unspecified, server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to ListProjects that indicates from where listing should continue.", +"location": "query", +"type": "string" +}, +"query": { +"description": "Optional. A query string for searching for projects that the caller has `resourcemanager.projects.get` permission to. If multiple fields are included in the query, then it will return results that match any of the fields. Some eligible fields are: ``` | Field | Description | |-------------------------|----------------------------------------------| | displayName, name | Filters by displayName. | | parent | Project's parent (for example: folders/123, organizations/*). Prefer parent field over parent.type and parent.id.| | parent.type | Parent's type: `folder` or `organization`. | | parent.id | Parent's id number (for example: 123) | | id, projectId | Filters by projectId. | | state, lifecycleState | Filters by state. | | labels | Filters by label name or value. | | labels.\\ (where *key* is the name of a label) | Filters by label name.| ``` Search expressions are case insensitive. Some examples queries: ``` | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` or its label `size` has the value `big`. | ``` If no query is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission.", +"location": "query", +"type": "string" +} +}, +"path": "v3/projects:search", +"response": { +"$ref": "SearchProjectsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"setIamPolicy": { +"description": "Sets the IAM access control policy for the specified project, in the format `projects/{ProjectIdOrNumber}` e.g. projects/123. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. Note: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited using the Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. If the project is part of an organization, you can remove all owners, potentially making the organization inaccessible.", +"flatPath": "v3/projects/{projectsId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified project, in the format `projects/{ProjectIdOrNumber}` e.g. projects/123..", +"flatPath": "v3/projects/{projectsId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"undelete": { +"description": "Restores the project identified by the specified `name` (for example, `projects/415104041262`). You can only use this method for a project that has a lifecycle state of DELETE_REQUESTED. After deletion starts, the project cannot be restored. The caller must have `resourcemanager.projects.undelete` permission for this project.", +"flatPath": "v3/projects/{projectsId}:undelete", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project (for example, `projects/415104041262`). Required.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:undelete", +"request": { +"$ref": "UndeleteProjectRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tagBindings": { +"methods": { +"create": { +"description": "Creates a TagBinding between a TagValue and a Google Cloud resource.", +"flatPath": "v3/tagBindings", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagBindings.create", +"parameterOrder": [], +"parameters": { +"validateOnly": { +"description": "Optional. Set to true to perform the validations necessary for creating the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/tagBindings", +"request": { +"$ref": "TagBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a TagBinding.", +"flatPath": "v3/tagBindings/{tagBindingsId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.tagBindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the TagBinding. This is a String of the form: `tagBindings/{id}` (e.g. `tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F123/tagValues/456`).", +"location": "path", +"pattern": "^tagBindings/.*$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the TagBindings for the given Google Cloud resource, as specified with `parent`. NOTE: The `parent` field is expected to be a full resource name: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"flatPath": "v3/tagBindings", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagBindings.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of TagBindings to return in the response. The server allows a maximum of 300 TagBindings to return. If unspecified, the server will use 100 as the default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `ListTagBindings` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The full resource name of a resource for which you want to list existing TagBindings. E.g. \"//cloudresourcemanager.googleapis.com/projects/123\"", +"location": "query", +"type": "string" +} +}, +"path": "v3/tagBindings", +"response": { +"$ref": "ListTagBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"tagKeys": { +"methods": { +"create": { +"description": "Creates a new TagKey. If another request with the same parameters is sent while the original request is in process, the second request will receive an error. A maximum of 1000 TagKeys can exist under a parent at any given time.", +"flatPath": "v3/tagKeys", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagKeys.create", +"parameterOrder": [], +"parameters": { +"validateOnly": { +"description": "Optional. Set to true to perform validations necessary for creating the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/tagKeys", +"request": { +"$ref": "TagKey" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a TagKey. The TagKey cannot be deleted if it has any child TagValues.", +"flatPath": "v3/tagKeys/{tagKeysId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.tagKeys.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The etag known to the client for the expected state of the TagKey. This is to be used for optimistic concurrency.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of a TagKey to be deleted in the format `tagKeys/123`. The TagKey cannot be a parent of any existing TagValues or it will not be deleted successfully.", +"location": "path", +"pattern": "^tagKeys/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Set as true to perform validations necessary for deletion, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a TagKey. This method will return `PERMISSION_DENIED` if the key does not exist or the user does not have permission to view it.", +"flatPath": "v3/tagKeys/{tagKeysId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagKeys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A resource name in the format `tagKeys/{id}`, such as `tagKeys/123`.", +"location": "path", +"pattern": "^tagKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "TagKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a TagKey. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the TagKey's resource name. For example, \"tagKeys/1234\". The caller must have `cloudresourcemanager.googleapis.com/tagKeys.getIamPolicy` permission on the specified TagKey.", +"flatPath": "v3/tagKeys/{tagKeysId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagKeys.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^tagKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getNamespaced": { +"description": "Retrieves a TagKey by its namespaced name. This method will return `PERMISSION_DENIED` if the key does not exist or the user does not have permission to view it.", +"flatPath": "v3/tagKeys/namespaced", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagKeys.getNamespaced", +"parameterOrder": [], +"parameters": { +"name": { +"description": "Required. A namespaced tag key name in the format `{parentId}/{tagKeyShort}`, such as `42/foo` for a key with short name \"foo\" under the organization with ID 42 or `r2-d2/bar` for a key with short name \"bar\" under the project `r2-d2`.", +"location": "query", +"type": "string" +} +}, +"path": "v3/tagKeys/namespaced", +"response": { +"$ref": "TagKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists all TagKeys for a parent resource.", +"flatPath": "v3/tagKeys", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagKeys.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of TagKeys to return in the response. The server allows a maximum of 300 TagKeys to return. If unspecified, the server will use 100 as the default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `ListTagKey` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the TagKey's parent. Must be of the form `organizations/{org_id}` or `projects/{project_id}` or `projects/{project_number}`", +"location": "query", +"type": "string" +} +}, +"path": "v3/tagKeys", +"response": { +"$ref": "ListTagKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the attributes of the TagKey resource.", +"flatPath": "v3/tagKeys/{tagKeysId}", +"httpMethod": "PATCH", +"id": "cloudresourcemanager.tagKeys.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name for a TagKey. Must be in the format `tagKeys/{tag_key_id}`, where `tag_key_id` is the generated numeric id for the TagKey.", +"location": "path", +"pattern": "^tagKeys/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated. The mask may only contain `description` or `etag`. If omitted entirely, both `description` and `etag` are assumed to be significant.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Set as true to perform validations necessary for updating the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "TagKey" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on a TagKey, replacing any existing policy. The `resource` field should be the TagKey's resource name. For example, \"tagKeys/1234\". The caller must have `resourcemanager.tagKeys.setIamPolicy` permission on the identified tagValue.", +"flatPath": "v3/tagKeys/{tagKeysId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagKeys.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^tagKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified TagKey. The `resource` field should be the TagKey's resource name. For example, \"tagKeys/1234\". There are no permissions required for making this API call.", +"flatPath": "v3/tagKeys/{tagKeysId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagKeys.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^tagKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tagValues": { +"methods": { +"create": { +"description": "Creates a TagValue as a child of the specified TagKey. If a another request with the same parameters is sent while the original request is in process the second request will receive an error. A maximum of 1000 TagValues can exist under a TagKey at any given time.", +"flatPath": "v3/tagValues", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagValues.create", +"parameterOrder": [], +"parameters": { +"validateOnly": { +"description": "Optional. Set as true to perform the validations necessary for creating the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/tagValues", +"request": { +"$ref": "TagValue" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a TagValue. The TagValue cannot have any bindings when it is deleted.", +"flatPath": "v3/tagValues/{tagValuesId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.tagValues.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The etag known to the client for the expected state of the TagValue. This is to be used for optimistic concurrency.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for TagValue to be deleted in the format tagValues/456.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Set as true to perform the validations necessary for deletion, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a TagValue. This method will return `PERMISSION_DENIED` if the value does not exist or the user does not have permission to view it.", +"flatPath": "v3/tagValues/{tagValuesId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagValues.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for TagValue to be fetched in the format `tagValues/456`.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "TagValue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a TagValue. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the TagValue's resource name. For example: `tagValues/1234`. The caller must have the `cloudresourcemanager.googleapis.com/tagValues.getIamPolicy` permission on the identified TagValue to get the access control policy.", +"flatPath": "v3/tagValues/{tagValuesId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagValues.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getNamespaced": { +"description": "Retrieves a TagValue by its namespaced name. This method will return `PERMISSION_DENIED` if the value does not exist or the user does not have permission to view it.", +"flatPath": "v3/tagValues/namespaced", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagValues.getNamespaced", +"parameterOrder": [], +"parameters": { +"name": { +"description": "Required. A namespaced tag value name in the following format: `{parentId}/{tagKeyShort}/{tagValueShort}` Examples: - `42/foo/abc` for a value with short name \"abc\" under the key with short name \"foo\" under the organization with ID 42 - `r2-d2/bar/xyz` for a value with short name \"xyz\" under the key with short name \"bar\" under the project with ID \"r2-d2\"", +"location": "query", +"type": "string" +} +}, +"path": "v3/tagValues/namespaced", +"response": { +"$ref": "TagValue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists all TagValues for a specific TagKey.", +"flatPath": "v3/tagValues", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagValues.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of TagValues to return in the response. The server allows a maximum of 300 TagValues to return. If unspecified, the server will use 100 as the default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `ListTagValues` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name for the parent of the TagValues to be listed, in the format `tagKeys/123` or `tagValues/123`.", +"location": "query", +"type": "string" +} +}, +"path": "v3/tagValues", +"response": { +"$ref": "ListTagValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the attributes of the TagValue resource.", +"flatPath": "v3/tagValues/{tagValuesId}", +"httpMethod": "PATCH", +"id": "cloudresourcemanager.tagValues.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Resource name for TagValue in the format `tagValues/456`.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. True to perform validations necessary for updating the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "TagValue" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on a TagValue, replacing any existing policy. The `resource` field should be the TagValue's resource name. For example: `tagValues/1234`. The caller must have `resourcemanager.tagValues.setIamPolicy` permission on the identified tagValue.", +"flatPath": "v3/tagValues/{tagValuesId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagValues.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified TagValue. The `resource` field should be the TagValue's resource name. For example: `tagValues/1234`. There are no permissions required for making this API call.", +"flatPath": "v3/tagValues/{tagValuesId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagValues.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"tagHolds": { +"methods": { +"create": { +"description": "Creates a TagHold. Returns ALREADY_EXISTS if a TagHold with the same resource and origin exists under the same TagValue.", +"flatPath": "v3/tagValues/{tagValuesId}/tagHolds", +"httpMethod": "POST", +"id": "cloudresourcemanager.tagValues.tagHolds.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the TagHold's parent TagValue. Must be of the form: `tagValues/{tag-value-id}`.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Set to true to perform the validations necessary for creating the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+parent}/tagHolds", +"request": { +"$ref": "TagHold" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a TagHold.", +"flatPath": "v3/tagValues/{tagValuesId}/tagHolds/{tagHoldsId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.tagValues.tagHolds.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the TagHold to delete. Must be of the form: `tagValues/{tag-value-id}/tagHolds/{tag-hold-id}`.", +"location": "path", +"pattern": "^tagValues/[^/]+/tagHolds/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Set to true to perform the validations necessary for deleting the resource, but not actually perform the action.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists TagHolds under a TagValue.", +"flatPath": "v3/tagValues/{tagValuesId}/tagHolds", +"httpMethod": "GET", +"id": "cloudresourcemanager.tagValues.tagHolds.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Criteria used to select a subset of TagHolds parented by the TagValue to return. This field follows the syntax defined by aip.dev/160; the `holder` and `origin` fields are supported for filtering. Currently only `AND` syntax is supported. Some example queries are: * `holder = //compute.googleapis.com/compute/projects/myproject/regions/us-east-1/instanceGroupManagers/instance-group` * `origin = 35678234` * `holder = //compute.googleapis.com/compute/projects/myproject/regions/us-east-1/instanceGroupManagers/instance-group AND origin = 35678234`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of TagHolds to return in the response. The server allows a maximum of 300 TagHolds to return. If unspecified, the server will use 100 as the default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to `ListTagHolds` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent TagValue. Must be of the form: `tagValues/{tag-value-id}`.", +"location": "path", +"pattern": "^tagValues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/tagHolds", +"response": { +"$ref": "ListTagHoldsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://cloudresourcemanager.googleapis.com/", +"schemas": { +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CloudresourcemanagerGoogleCloudResourcemanagerV2alpha1FolderOperation": { +"description": "Metadata describing a long running folder operation", +"id": "CloudresourcemanagerGoogleCloudResourcemanagerV2alpha1FolderOperation", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization we are either creating the folder under or moving the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"operationType": { +"description": "The type of this operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"MOVE" +], +"enumDescriptions": [ +"Operation type not specified.", +"A create folder operation.", +"A move folder operation." +], +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent. Only applicable when the operation_type is MOVE.", +"type": "string" +} +}, +"type": "object" +}, +"CloudresourcemanagerGoogleCloudResourcemanagerV2beta1FolderOperation": { +"description": "Metadata describing a long running folder operation", +"id": "CloudresourcemanagerGoogleCloudResourcemanagerV2beta1FolderOperation", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization we are either creating the folder under or moving the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"operationType": { +"description": "The type of this operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"MOVE" +], +"enumDescriptions": [ +"Operation type not specified.", +"A create folder operation.", +"A move folder operation." +], +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent. Only applicable when the operation_type is MOVE.", +"type": "string" +} +}, +"type": "object" +}, +"CreateFolderMetadata": { +"description": "Metadata pertaining to the Folder creation process.", +"id": "CreateFolderMetadata", +"properties": { +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"parent": { +"description": "The resource name of the folder or organization we are creating the folder under.", +"type": "string" +} +}, +"type": "object" +}, +"CreateProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by CreateProject. It provides insight for when significant phases of Project creation have completed.", +"id": "CreateProjectMetadata", +"properties": { +"createTime": { +"description": "Creation time of the project creation workflow.", +"format": "google-datetime", +"type": "string" +}, +"gettable": { +"description": "True if the project can be retrieved using `GetProject`. No other operations on the project are guaranteed to work until the project creation is complete.", +"type": "boolean" +}, +"ready": { +"description": "True if the project creation process is complete.", +"type": "boolean" +} +}, +"type": "object" +}, +"CreateTagBindingMetadata": { +"description": "Runtime operation information for creating a TagValue.", +"id": "CreateTagBindingMetadata", +"properties": {}, +"type": "object" +}, +"CreateTagKeyMetadata": { +"description": "Runtime operation information for creating a TagKey.", +"id": "CreateTagKeyMetadata", +"properties": {}, +"type": "object" +}, +"CreateTagValueMetadata": { +"description": "Runtime operation information for creating a TagValue.", +"id": "CreateTagValueMetadata", +"properties": {}, +"type": "object" +}, +"DeleteFolderMetadata": { +"description": "A status object which is used as the `metadata` field for the `Operation` returned by `DeleteFolder`.", +"id": "DeleteFolderMetadata", +"properties": {}, +"type": "object" +}, +"DeleteOrganizationMetadata": { +"description": "A status object which is used as the `metadata` field for the operation returned by DeleteOrganization.", +"id": "DeleteOrganizationMetadata", +"properties": {}, +"type": "object" +}, +"DeleteProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by `DeleteProject`.", +"id": "DeleteProjectMetadata", +"properties": {}, +"type": "object" +}, +"DeleteTagBindingMetadata": { +"description": "Runtime operation information for deleting a TagBinding.", +"id": "DeleteTagBindingMetadata", +"properties": {}, +"type": "object" +}, +"DeleteTagKeyMetadata": { +"description": "Runtime operation information for deleting a TagKey.", +"id": "DeleteTagKeyMetadata", +"properties": {}, +"type": "object" +}, +"DeleteTagValueMetadata": { +"description": "Runtime operation information for deleting a TagValue.", +"id": "DeleteTagValueMetadata", +"properties": {}, +"type": "object" +}, +"EffectiveTag": { +"description": "An EffectiveTag represents a tag that applies to a resource during policy evaluation. Tags can be either directly bound to a resource or inherited from its ancestor. EffectiveTag contains the name and namespaced_name of the tag value and tag key, with additional fields of `inherited` to indicate the inheritance status of the effective tag.", +"id": "EffectiveTag", +"properties": { +"inherited": { +"description": "Indicates the inheritance status of a tag value attached to the given resource. If the tag value is inherited from one of the resource's ancestors, inherited will be true. If false, then the tag value is directly attached to the resource, inherited will be false.", +"type": "boolean" +}, +"namespacedTagKey": { +"description": "The namespaced name of the TagKey. Can be in the form `{organization_id}/{tag_key_short_name}` or `{project_id}/{tag_key_short_name}` or `{project_number}/{tag_key_short_name}`.", +"type": "string" +}, +"namespacedTagValue": { +"description": "The namespaced name of the TagValue. Can be in the form `{organization_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_number}/{tag_key_short_name}/{tag_value_short_name}`.", +"type": "string" +}, +"tagKey": { +"description": "The name of the TagKey, in the format `tagKeys/{id}`, such as `tagKeys/123`.", +"type": "string" +}, +"tagKeyParentName": { +"description": "The parent name of the tag key. Must be in the format `organizations/{organization_id}` or `projects/{project_number}`", +"type": "string" +}, +"tagValue": { +"description": "Resource name for TagValue in the format `tagValues/456`.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"Folder": { +"description": "A folder in an organization's resource hierarchy, used to organize that organization's resources.", +"id": "Folder", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the folder was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Timestamp when the folder was requested to be deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The folder's display name. A folder's display name must be unique amongst its siblings. For example, no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\\p{L}\\p{N}]([\\p{L}\\p{N}_- ]{0,28}[\\p{L}\\p{N}])?`.", +"type": "string" +}, +"etag": { +"description": "Output only. A checksum computed by the server based on the current value of the folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: \"folders/1234\".", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "Required. The folder's parent's resource name. Updates to the folder's parent must be performed using MoveFolder.", +"type": "string" +}, +"state": { +"description": "Output only. The lifecycle state of the folder. Updates to the state must be performed using DeleteFolder and UndeleteFolder.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETE_REQUESTED" +], +"enumDescriptions": [ +"Unspecified state.", +"The normal and active state.", +"The folder has been marked for deletion by the user." +], +"readOnly": true, +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", +"type": "object" +}, +"updateTime": { +"description": "Output only. Timestamp when the folder was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FolderOperation": { +"description": "Metadata describing a long running folder operation", +"id": "FolderOperation", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization we are either creating the folder under or moving the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"operationType": { +"description": "The type of this operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"MOVE" +], +"enumDescriptions": [ +"Operation type not specified.", +"A create folder operation.", +"A move folder operation." +], +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent. Only applicable when the operation_type is MOVE.", +"type": "string" +} +}, +"type": "object" +}, +"FolderOperationError": { +"description": "A classification of the Folder Operation error.", +"id": "FolderOperationError", +"properties": { +"errorMessageId": { +"description": "The type of operation error experienced.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"ACTIVE_FOLDER_HEIGHT_VIOLATION", +"MAX_CHILD_FOLDERS_VIOLATION", +"FOLDER_NAME_UNIQUENESS_VIOLATION", +"RESOURCE_DELETED_VIOLATION", +"PARENT_DELETED_VIOLATION", +"CYCLE_INTRODUCED_VIOLATION", +"FOLDER_BEING_MOVED_VIOLATION", +"FOLDER_TO_DELETE_NON_EMPTY_VIOLATION", +"DELETED_FOLDER_HEIGHT_VIOLATION" +], +"enumDescriptions": [ +"The error type was unrecognized or unspecified.", +"The attempted action would violate the max folder depth constraint.", +"The attempted action would violate the max child folders constraint.", +"The attempted action would violate the locally-unique folder display_name constraint.", +"The resource being moved has been deleted.", +"The resource a folder was being added to has been deleted.", +"The attempted action would introduce cycle in resource path.", +"The attempted action would move a folder that is already being moved.", +"The folder the caller is trying to delete contains active resources.", +"The attempted action would violate the max deleted folder depth constraint." +], +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Lien": { +"description": "A Lien represents an encumbrance on the actions that can be performed on a resource.", +"id": "Lien", +"properties": { +"createTime": { +"description": "The creation time of this Lien.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "A system-generated unique identifier for this Lien. Example: `liens/1234abcd`", +"type": "string" +}, +"origin": { +"description": "A stable, user-visible/meaningful string identifying the origin of the Lien, intended to be inspected programmatically. Maximum length of 200 characters. Example: 'compute.googleapis.com'", +"type": "string" +}, +"parent": { +"description": "A reference to the resource this Lien is attached to. The server will validate the parent against those for which Liens are supported. Example: `projects/1234`", +"type": "string" +}, +"reason": { +"description": "Concise user-visible strings indicating why an action cannot be performed on a resource. Maximum length of 200 characters. Example: 'Holds production API key'", +"type": "string" +}, +"restrictions": { +"description": "The types of operations which should be blocked as a result of this Lien. Each value should correspond to an IAM permission. The server will validate the permissions against those for which Liens are supported. An empty list is meaningless and will be rejected. Example: ['resourcemanager.projects.delete']", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListEffectiveTagsResponse": { +"description": "The response of ListEffectiveTags.", +"id": "ListEffectiveTagsResponse", +"properties": { +"effectiveTags": { +"description": "A possibly paginated list of effective tags for the specified resource.", +"items": { +"$ref": "EffectiveTag" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", +"type": "string" +} +}, +"type": "object" +}, +"ListFoldersResponse": { +"description": "The ListFolders response message.", +"id": "ListFoldersResponse", +"properties": { +"folders": { +"description": "A possibly paginated list of folders that are direct descendants of the specified parent resource.", +"items": { +"$ref": "Folder" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A pagination token returned from a previous call to `ListFolders` that indicates from where listing should continue.", +"type": "string" +} +}, +"type": "object" +}, +"ListLiensResponse": { +"description": "The response message for Liens.ListLiens.", +"id": "ListLiensResponse", +"properties": { +"liens": { +"description": "A list of Liens.", +"items": { +"$ref": "Lien" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListProjectsResponse": { +"description": "A page of the response received from the ListProjects method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page. NOTE: A response may contain fewer elements than the request `page_size` and still have a `next_page_token`.", +"id": "ListProjectsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", +"type": "string" +}, +"projects": { +"description": "The list of Projects under the parent. This list can be paginated.", +"items": { +"$ref": "Project" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTagBindingsResponse": { +"description": "The ListTagBindings response.", +"id": "ListTagBindingsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", +"type": "string" +}, +"tagBindings": { +"description": "A possibly paginated list of TagBindings for the specified resource.", +"items": { +"$ref": "TagBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTagHoldsResponse": { +"description": "The ListTagHolds response.", +"id": "ListTagHoldsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", +"type": "string" +}, +"tagHolds": { +"description": "A possibly paginated list of TagHolds.", +"items": { +"$ref": "TagHold" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTagKeysResponse": { +"description": "The ListTagKeys response message.", +"id": "ListTagKeysResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token returned from a previous call to `ListTagKeys` that indicates from where listing should continue.", +"type": "string" +}, +"tagKeys": { +"description": "List of TagKeys that live under the specified parent in the request.", +"items": { +"$ref": "TagKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTagValuesResponse": { +"description": "The ListTagValues response.", +"id": "ListTagValuesResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token returned from a previous call to `ListTagValues` that indicates from where listing should continue. This is currently not used, but the server may at any point start supplying a valid token.", +"type": "string" +}, +"tagValues": { +"description": "A possibly paginated list of TagValues that are direct descendants of the specified parent TagKey.", +"items": { +"$ref": "TagValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"MoveFolderMetadata": { +"description": "Metadata pertaining to the folder move process.", +"id": "MoveFolderMetadata", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization to move the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent.", +"type": "string" +} +}, +"type": "object" +}, +"MoveFolderRequest": { +"description": "The MoveFolder request message.", +"id": "MoveFolderRequest", +"properties": { +"destinationParent": { +"description": "Required. The resource name of the folder or organization which should be the folder's new parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"MoveProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by MoveProject.", +"id": "MoveProjectMetadata", +"properties": {}, +"type": "object" +}, +"MoveProjectRequest": { +"description": "The request sent to MoveProject method.", +"id": "MoveProjectRequest", +"properties": { +"destinationParent": { +"description": "Required. The new parent to move the Project under.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Organization": { +"description": "The root node in the resource hierarchy to which a particular entity's (a company, for example) resources belong.", +"id": "Organization", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the Organization was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Timestamp when the Organization was requested for deletion.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"directoryCustomerId": { +"description": "Immutable. The G Suite / Workspace customer id used in the Directory API.", +"type": "string" +}, +"displayName": { +"description": "Output only. A human-readable string that refers to the organization in the Google Cloud Console. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, \"google.com\") of the Google Workspace customer that owns the organization.", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. A checksum computed by the server based on the current value of the Organization resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the organization. This is the organization's relative path in the API. Its format is \"organizations/[organization_id]\". For example, \"organizations/1234\".", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The organization's current lifecycle state.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETE_REQUESTED" +], +"enumDescriptions": [ +"Unspecified state. This is only useful for distinguishing unset values.", +"The normal and active state.", +"The organization has been marked for deletion by the user." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the Organization was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Project": { +"description": "A project is a high-level Google Cloud entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.", +"id": "Project", +"properties": { +"createTime": { +"description": "Output only. Creation time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time at which this resource was requested for deletion.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. A user-assigned display name of the project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`", +"type": "string" +}, +"etag": { +"description": "Output only. A checksum computed by the server based on the current value of the Project resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels associated with this project. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: \\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?. Label values must be between 0 and 63 characters long and must conform to the regular expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?. No more than 64 labels can be associated with a given resource. Clients should store labels in a representation such as JSON that does not depend on specific characters being disallowed. Example: `\"myBusinessDimension\" : \"businessValue\"`", +"type": "object" +}, +"name": { +"description": "Output only. The unique resource name of the project. It is an int64 generated number prefixed by \"projects/\". Example: `projects/415104041262`", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "Optional. A reference to a parent Resource. eg., `organizations/123` or `folders/876`.", +"type": "string" +}, +"projectId": { +"description": "Immutable. The unique, user-assigned id of the project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`", +"type": "string" +}, +"state": { +"description": "Output only. The project lifecycle state.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETE_REQUESTED" +], +"enumDescriptions": [ +"Unspecified state. This is only used/useful for distinguishing unset values.", +"The normal and active state.", +"The project has been marked for deletion by the user (by invoking DeleteProject) or by the system (Google Cloud Platform). This can generally be reversed by invoking UndeleteProject." +], +"readOnly": true, +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", +"type": "object" +}, +"updateTime": { +"description": "Output only. The most recent time this resource was modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ProjectCreationStatus": { +"description": "A status object which is used as the `metadata` field for the Operation returned by CreateProject. It provides insight for when significant phases of Project creation have completed.", +"id": "ProjectCreationStatus", +"properties": { +"createTime": { +"description": "Creation time of the project creation workflow.", +"format": "google-datetime", +"type": "string" +}, +"gettable": { +"description": "True if the project can be retrieved using GetProject. No other operations on the project are guaranteed to work until the project creation is complete.", +"type": "boolean" +}, +"ready": { +"description": "True if the project creation process is complete.", +"type": "boolean" +} +}, +"type": "object" +}, +"SearchFoldersResponse": { +"description": "The response message for searching folders.", +"id": "SearchFoldersResponse", +"properties": { +"folders": { +"description": "A possibly paginated folder search results. the specified parent resource.", +"items": { +"$ref": "Folder" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A pagination token returned from a previous call to `SearchFolders` that indicates from where searching should continue.", +"type": "string" +} +}, +"type": "object" +}, +"SearchOrganizationsResponse": { +"description": "The response returned from the `SearchOrganizations` method.", +"id": "SearchOrganizationsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token to be used to retrieve the next page of results. If the result is too large to fit within the page size specified in the request, this field will be set with a token that can be used to fetch the next page of results. If this field is empty, it indicates that this response contains the last page of results.", +"type": "string" +}, +"organizations": { +"description": "The list of Organizations that matched the search query, possibly paginated.", +"items": { +"$ref": "Organization" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchProjectsResponse": { +"description": "A page of the response received from the SearchProjects method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page.", +"id": "SearchProjectsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", +"type": "string" +}, +"projects": { +"description": "The list of Projects that matched the list filter query. This list can be paginated.", +"items": { +"$ref": "Project" +}, +"type": "array" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TagBinding": { +"description": "A TagBinding represents a connection between a TagValue and a cloud resource Once a TagBinding is created, the TagValue is applied to all the descendants of the Google Cloud resource.", +"id": "TagBinding", +"properties": { +"name": { +"description": "Output only. The name of the TagBinding. This is a String of the form: `tagBindings/{full-resource-name}/{tag-value-name}` (e.g. `tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F123/tagValues/456`).", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "The full resource name of the resource the TagValue is bound to. E.g. `//cloudresourcemanager.googleapis.com/projects/123`", +"type": "string" +}, +"tagValue": { +"description": "The TagValue of the TagBinding. Must be of the form `tagValues/456`.", +"type": "string" +}, +"tagValueNamespacedName": { +"description": "The namespaced name for the TagValue of the TagBinding. Must be in the format `{parent_id}/{tag_key_short_name}/{short_name}`. For methods that support TagValue namespaced name, only one of tag_value_namespaced_name or tag_value may be filled. Requests with both fields will be rejected.", +"type": "string" +} +}, +"type": "object" +}, +"TagHold": { +"description": "A TagHold represents the use of a TagValue that is not captured by TagBindings. If a TagValue has any TagHolds, deletion will be blocked. This resource is intended to be created in the same cloud location as the `holder`.", +"id": "TagHold", +"properties": { +"createTime": { +"description": "Output only. The time this TagHold was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"helpLink": { +"description": "Optional. A URL where an end user can learn more about removing this hold. E.g. `https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing`", +"type": "string" +}, +"holder": { +"description": "Required. The name of the resource where the TagValue is being used. Must be less than 200 characters. E.g. `//compute.googleapis.com/compute/projects/myproject/regions/us-east-1/instanceGroupManagers/instance-group`", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of a TagHold. This is a String of the form: `tagValues/{tag-value-id}/tagHolds/{tag-hold-id}` (e.g. `tagValues/123/tagHolds/456`). This resource name is generated by the server.", +"readOnly": true, +"type": "string" +}, +"origin": { +"description": "Optional. An optional string representing the origin of this request. This field should include human-understandable information to distinguish origins from each other. Must be less than 200 characters. E.g. `migs-35678234`", +"type": "string" +} +}, +"type": "object" +}, +"TagKey": { +"description": "A TagKey, used to group a set of TagValues.", +"id": "TagKey", +"properties": { +"createTime": { +"description": "Output only. Creation time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-assigned description of the TagKey. Must not exceed 256 characters. Read-write.", +"type": "string" +}, +"etag": { +"description": "Optional. Entity tag which users can pass to prevent race conditions. This field is always set in server responses. See UpdateTagKeyRequest for details.", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name for a TagKey. Must be in the format `tagKeys/{tag_key_id}`, where `tag_key_id` is the generated numeric id for the TagKey.", +"type": "string" +}, +"namespacedName": { +"description": "Output only. Immutable. Namespaced name of the TagKey.", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "Immutable. The resource name of the TagKey's parent. A TagKey can be parented by an Organization or a Project. For a TagKey parented by an Organization, its parent must be in the form `organizations/{org_id}`. For a TagKey parented by a Project, its parent can be in the form `projects/{project_id}` or `projects/{project_number}`.", +"type": "string" +}, +"purpose": { +"description": "Optional. A purpose denotes that this Tag is intended for use in policies of a specific policy engine, and will involve that policy engine in management operations involving this Tag. A purpose does not grant a policy engine exclusive rights to the Tag, and it may be referenced by other policy engines. A purpose cannot be changed once set.", +"enum": [ +"PURPOSE_UNSPECIFIED", +"GCE_FIREWALL", +"DATA_GOVERNANCE" +], +"enumDescriptions": [ +"Unspecified purpose.", +"Purpose for Compute Engine firewalls. A corresponding `purpose_data` should be set for the network the tag is intended for. The key should be `network` and the value should be in ## either of these two formats: `https://www.googleapis.com/compute/{compute_version}/projects/{project_id}/global/networks/{network_id}` - `{project_id}/{network_name}` ## Examples: `https://www.googleapis.com/compute/staging_v1/projects/fail-closed-load-testing/global/networks/6992953698831725600` - `fail-closed-load-testing/load-testing-network`", +"Purpose for data governance. Tag Values created under a key with this purpose may have Tag Value children. No `purpose_data` should be set." +], +"type": "string" +}, +"purposeData": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Purpose data corresponds to the policy system that the tag is intended for. See documentation for `Purpose` for formatting of this field. Purpose data cannot be changed once set.", +"type": "object" +}, +"shortName": { +"description": "Required. Immutable. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. The short name must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TagValue": { +"description": "A TagValue is a child of a particular TagKey. This is used to group cloud resources for the purpose of controlling them using policies.", +"id": "TagValue", +"properties": { +"createTime": { +"description": "Output only. Creation time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-assigned description of the TagValue. Must not exceed 256 characters. Read-write.", +"type": "string" +}, +"etag": { +"description": "Optional. Entity tag which users can pass to prevent race conditions. This field is always set in server responses. See UpdateTagValueRequest for details.", +"type": "string" +}, +"name": { +"description": "Immutable. Resource name for TagValue in the format `tagValues/456`.", +"type": "string" +}, +"namespacedName": { +"description": "Output only. The namespaced name of the TagValue. Can be in the form `{organization_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_number}/{tag_key_short_name}/{tag_value_short_name}`.", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "Immutable. The resource name of the new TagValue's parent TagKey. Must be of the form `tagKeys/{tag_key_id}`.", +"type": "string" +}, +"shortName": { +"description": "Required. Immutable. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey. The short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UndeleteFolderMetadata": { +"description": "A status object which is used as the `metadata` field for the `Operation` returned by `UndeleteFolder`.", +"id": "UndeleteFolderMetadata", +"properties": {}, +"type": "object" +}, +"UndeleteFolderRequest": { +"description": "The UndeleteFolder request message.", +"id": "UndeleteFolderRequest", +"properties": {}, +"type": "object" +}, +"UndeleteOrganizationMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by UndeleteOrganization.", +"id": "UndeleteOrganizationMetadata", +"properties": {}, +"type": "object" +}, +"UndeleteProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by `UndeleteProject`.", +"id": "UndeleteProjectMetadata", +"properties": {}, +"type": "object" +}, +"UndeleteProjectRequest": { +"description": "The request sent to the UndeleteProject method.", +"id": "UndeleteProjectRequest", +"properties": {}, +"type": "object" +}, +"UpdateFolderMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by UpdateFolder.", +"id": "UpdateFolderMetadata", +"properties": {}, +"type": "object" +}, +"UpdateProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by UpdateProject.", +"id": "UpdateProjectMetadata", +"properties": {}, +"type": "object" +}, +"UpdateTagKeyMetadata": { +"description": "Runtime operation information for updating a TagKey.", +"id": "UpdateTagKeyMetadata", +"properties": {}, +"type": "object" +}, +"UpdateTagValueMetadata": { +"description": "Runtime operation information for updating a TagValue.", +"id": "UpdateTagValueMetadata", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Resource Manager API", +"version": "v3", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudsearch.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudsearch.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..b0e623d0227e36c8ae77bf9579d6a83d8b9444f4 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudsearch.v1.json @@ -0,0 +1,8017 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud_search": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.debug": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.indexing": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.query": { +"description": "Search your organization's data in the Cloud Search index" +}, +"https://www.googleapis.com/auth/cloud_search.settings": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.settings.indexing": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.settings.query": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.stats": { +"description": "Index and serve your organization's data with Cloud Search" +}, +"https://www.googleapis.com/auth/cloud_search.stats.indexing": { +"description": "Index and serve your organization's data with Cloud Search" +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudsearch.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Search", +"description": "Cloud Search provides cloud-based search capabilities over Google Workspace data. The Cloud Search API allows indexing of non-Google Workspace data into Cloud Search.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/cloud-search/docs/guides/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudsearch:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudsearch.mtls.googleapis.com/", +"name": "cloudsearch", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"debug": { +"resources": { +"datasources": { +"resources": { +"items": { +"methods": { +"checkAccess": { +"description": "Checks whether an item is accessible by specified principal. Principal must be a user; groups and domain values aren't supported. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/debug/datasources/{datasourcesId}/items/{itemsId}:checkAccess", +"httpMethod": "POST", +"id": "cloudsearch.debug.datasources.items.checkAccess", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Item name, format: datasources/{source_id}/items/{item_id}", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/debug/{+name}:checkAccess", +"request": { +"$ref": "Principal" +}, +"response": { +"$ref": "CheckAccessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug" +] +}, +"searchByViewUrl": { +"description": "Fetches the item whose viewUrl exactly matches that of the URL provided in the request. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/debug/datasources/{datasourcesId}/items:searchByViewUrl", +"httpMethod": "POST", +"id": "cloudsearch.debug.datasources.items.searchByViewUrl", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Source name, format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/debug/{+name}/items:searchByViewUrl", +"request": { +"$ref": "SearchItemsByViewUrlRequest" +}, +"response": { +"$ref": "SearchItemsByViewUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug" +] +} +}, +"resources": { +"unmappedids": { +"methods": { +"list": { +"description": "List all unmapped identities for a specific item. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/debug/datasources/{datasourcesId}/items/{itemsId}/unmappedids", +"httpMethod": "GET", +"id": "cloudsearch.debug.datasources.items.unmappedids.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "Maximum number of items to fetch in a request. Defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the item, in the following format: datasources/{source_id}/items/{ID}", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/debug/{+parent}/unmappedids", +"response": { +"$ref": "ListUnmappedIdentitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug" +] +} +} +} +} +} +} +}, +"identitysources": { +"resources": { +"items": { +"methods": { +"listForunmappedidentity": { +"description": "Lists names of items associated with an unmapped identity. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/debug/identitysources/{identitysourcesId}/items:forunmappedidentity", +"httpMethod": "GET", +"id": "cloudsearch.debug.identitysources.items.listForunmappedidentity", +"parameterOrder": [ +"parent" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"groupResourceName": { +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of items to fetch in a request. Defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the identity source, in the following format: identitysources/{source_id}}", +"location": "path", +"pattern": "^identitysources/[^/]+$", +"required": true, +"type": "string" +}, +"userResourceName": { +"location": "query", +"type": "string" +} +}, +"path": "v1/debug/{+parent}/items:forunmappedidentity", +"response": { +"$ref": "ListItemNamesForUnmappedIdentityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug" +] +} +} +}, +"unmappedids": { +"methods": { +"list": { +"description": "Lists unmapped user identities for an identity source. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/debug/identitysources/{identitysourcesId}/unmappedids", +"httpMethod": "GET", +"id": "cloudsearch.debug.identitysources.unmappedids.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "Maximum number of items to fetch in a request. Defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the identity source, in the following format: identitysources/{source_id}", +"location": "path", +"pattern": "^identitysources/[^/]+$", +"required": true, +"type": "string" +}, +"resolutionStatusCode": { +"description": "Limit users selection to this status.", +"enum": [ +"CODE_UNSPECIFIED", +"NOT_FOUND", +"IDENTITY_SOURCE_NOT_FOUND", +"IDENTITY_SOURCE_MISCONFIGURED", +"TOO_MANY_MAPPINGS_FOUND", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"Input-only value. Used to list all unmapped identities regardless of status.", +"The unmapped identity was not found in IDaaS, and needs to be provided by the user.", +"The identity source associated with the identity was either not found or deleted.", +"IDaaS does not understand the identity source, probably because the schema was modified in a non compatible way.", +"The number of users associated with the external identity is too large.", +"Internal error." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/debug/{+parent}/unmappedids", +"response": { +"$ref": "ListUnmappedIdentitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug" +] +} +} +} +} +} +} +}, +"indexing": { +"resources": { +"datasources": { +"methods": { +"deleteSchema": { +"description": "Deletes the schema of a data source. **Note:** This API requires an admin or service account to execute.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/schema", +"httpMethod": "DELETE", +"id": "cloudsearch.indexing.datasources.deleteSchema", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the data source to delete Schema. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}/schema", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"getSchema": { +"description": "Gets the schema of a data source. **Note:** This API requires an admin or service account to execute.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/schema", +"httpMethod": "GET", +"id": "cloudsearch.indexing.datasources.getSchema", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the data source to get Schema. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}/schema", +"response": { +"$ref": "Schema" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"updateSchema": { +"description": "Updates the schema of a data source. This method does not perform incremental updates to the schema. Instead, this method updates the schema by overwriting the entire schema. **Note:** This API requires an admin or service account to execute.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/schema", +"httpMethod": "PUT", +"id": "cloudsearch.indexing.datasources.updateSchema", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the data source to update Schema. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}/schema", +"request": { +"$ref": "UpdateSchemaRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +} +}, +"resources": { +"items": { +"methods": { +"delete": { +"description": "Deletes Item resource for the specified resource name. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}", +"httpMethod": "DELETE", +"id": "cloudsearch.indexing.datasources.items.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"location": "query", +"type": "string" +}, +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"mode": { +"description": "Required. The RequestMode for this request.", +"enum": [ +"UNSPECIFIED", +"SYNCHRONOUS", +"ASYNCHRONOUS" +], +"enumDescriptions": [ +"The priority is not specified in the update request. Leaving priority unspecified results in an update failure.", +"For real-time updates.", +"For changes that are executed after the response is sent back to the caller." +], +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the item to delete. Format: datasources/{source_id}/items/{item_id}", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +}, +"version": { +"description": "Required. The incremented version of the item to delete from the index. The indexing system stores the version from the datasource as a byte string and compares the Item version in the index to the version of the queued Item using lexical ordering. Cloud Search Indexing won't delete any queued item with a version value that is less than or equal to the version of the currently indexed item. The maximum length for this field is 1024 bytes. For information on how item version affects the deletion process, refer to [Handle revisions after manual deletes](https://developers.google.com/cloud-search/docs/guides/operations).", +"format": "byte", +"location": "query", +"type": "string" +} +}, +"path": "v1/indexing/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"deleteQueueItems": { +"description": "Deletes all items in a queue. This method is useful for deleting stale items. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items:deleteQueueItems", +"httpMethod": "POST", +"id": "cloudsearch.indexing.datasources.items.deleteQueueItems", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Data Source to delete items in a queue. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}/items:deleteQueueItems", +"request": { +"$ref": "DeleteQueueItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"get": { +"description": "Gets Item resource by item name. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}", +"httpMethod": "GET", +"id": "cloudsearch.indexing.datasources.items.get", +"parameterOrder": [ +"name" +], +"parameters": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"location": "query", +"type": "string" +}, +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the item to get info. Format: datasources/{source_id}/items/{item_id}", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}", +"response": { +"$ref": "Item" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"index": { +"description": "Updates Item ACL, metadata, and content. It will insert the Item if it does not exist. This method does not support partial updates. Fields with no provided values are cleared out in the Cloud Search index. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}:index", +"httpMethod": "POST", +"id": "cloudsearch.indexing.datasources.items.index", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}:index", +"request": { +"$ref": "IndexItemRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"list": { +"description": "Lists all or a subset of Item resources. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items", +"httpMethod": "GET", +"id": "cloudsearch.indexing.datasources.items.list", +"parameterOrder": [ +"name" +], +"parameters": { +"brief": { +"description": "When set to true, the indexing system only populates the following fields: name, version, queue. metadata.hash, metadata.title, metadata.sourceRepositoryURL, metadata.objectType, metadata.createTime, metadata.updateTime, metadata.contentLanguage, metadata.mimeType, structured_data.hash, content.hash, itemType, itemStatus.code, itemStatus.processingError.code, itemStatus.repositoryError.type, If this value is false, then all the fields are populated in Item.", +"location": "query", +"type": "boolean" +}, +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"location": "query", +"type": "string" +}, +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the Data Source to list Items. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum number of items to fetch in a request. The max value is 1000 when brief is true. The max value is 10 if brief is false. The default value is 10", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +} +}, +"path": "v1/indexing/{+name}/items", +"response": { +"$ref": "ListItemsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"poll": { +"description": "Polls for unreserved items from the indexing queue and marks a set as reserved, starting with items that have the oldest timestamp from the highest priority ItemStatus. The priority order is as follows: ERROR MODIFIED NEW_ITEM ACCEPTED Reserving items ensures that polling from other threads cannot create overlapping sets. After handling the reserved items, the client should put items back into the unreserved state, either by calling index, or by calling push with the type REQUEUE. Items automatically become available (unreserved) after 4 hours even if no update or push method is called. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items:poll", +"httpMethod": "POST", +"id": "cloudsearch.indexing.datasources.items.poll", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Data Source to poll items. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}/items:poll", +"request": { +"$ref": "PollItemsRequest" +}, +"response": { +"$ref": "PollItemsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"push": { +"description": "Pushes an item onto a queue for later polling and updating. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}:push", +"httpMethod": "POST", +"id": "cloudsearch.indexing.datasources.items.push", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the item to push into the indexing queue. Format: datasources/{source_id}/items/{ID} This is a required field. The maximum length is 1536 characters.", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}:push", +"request": { +"$ref": "PushItemRequest" +}, +"response": { +"$ref": "Item" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"unreserve": { +"description": "Unreserves all items from a queue, making them all eligible to be polled. This method is useful for resetting the indexing queue after a connector has been restarted. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items:unreserve", +"httpMethod": "POST", +"id": "cloudsearch.indexing.datasources.items.unreserve", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Data Source to unreserve all items. Format: datasources/{source_id}", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}/items:unreserve", +"request": { +"$ref": "UnreserveItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +}, +"upload": { +"description": "Creates an upload session for uploading item content. For items smaller than 100 KB, it's easier to embed the content inline within an index request. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.", +"flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}:upload", +"httpMethod": "POST", +"id": "cloudsearch.indexing.datasources.items.upload", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Item to start a resumable upload. Format: datasources/{source_id}/items/{item_id}. The maximum length is 1536 bytes.", +"location": "path", +"pattern": "^datasources/[^/]+/items/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/indexing/{+name}:upload", +"request": { +"$ref": "StartUploadItemRequest" +}, +"response": { +"$ref": "UploadItemRef" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +] +} +} +} +} +} +} +}, +"media": { +"methods": { +"upload": { +"description": "Uploads media for indexing. The upload endpoint supports direct and resumable upload protocols and is intended for large items that can not be [inlined during index requests](https://developers.google.com/cloud-search/docs/reference/rest/v1/indexing.datasources.items#itemcontent). To index large content: 1. Call indexing.datasources.items.upload with the item name to begin an upload session and retrieve the UploadItemRef. 1. Call media.upload to upload the content, as a streaming request, using the same resource name from the UploadItemRef from step 1. 1. Call indexing.datasources.items.index to index the item. Populate the [ItemContent](/cloud-search/docs/reference/rest/v1/indexing.datasources.items#ItemContent) with the UploadItemRef from step 1. For additional information, see [Create a content connector using the REST API](https://developers.google.com/cloud-search/docs/guides/content-connector#rest). **Note:** This API requires a service account to execute.", +"flatPath": "v1/media/{mediaId}", +"httpMethod": "POST", +"id": "cloudsearch.media.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1/media/{+resourceName}" +} +} +}, +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/media/{+resourceName}", +"request": { +"$ref": "Media" +}, +"response": { +"$ref": "Media" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.indexing" +], +"supportsMediaUpload": true +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudsearch.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug", +"https://www.googleapis.com/auth/cloud_search.indexing", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +} +}, +"resources": { +"lro": { +"methods": { +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}/lro", +"httpMethod": "GET", +"id": "cloudsearch.operations.lro.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/lro", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.debug", +"https://www.googleapis.com/auth/cloud_search.indexing", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +} +} +} +} +}, +"query": { +"methods": { +"debugSearch": { +"description": "Returns Debug information for Cloud Search Query API provides the search method. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", +"flatPath": "v1/query:debugSearch", +"httpMethod": "POST", +"id": "cloudsearch.query.debugSearch", +"parameterOrder": [], +"parameters": {}, +"path": "v1/query:debugSearch", +"request": { +"$ref": "SearchRequest" +}, +"response": { +"$ref": "DebugResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.query" +] +}, +"removeActivity": { +"description": "Provides functionality to remove logged activity for a user. Currently to be used only for Chat 1p clients **Note:** This API requires a standard end user account to execute. A service account can't perform Remove Activity requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", +"flatPath": "v1/query:removeActivity", +"httpMethod": "POST", +"id": "cloudsearch.query.removeActivity", +"parameterOrder": [], +"parameters": {}, +"path": "v1/query:removeActivity", +"request": { +"$ref": "RemoveActivityRequest" +}, +"response": { +"$ref": "RemoveActivityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.query" +] +}, +"search": { +"description": "The Cloud Search Query API provides the search method, which returns the most relevant results from a user query. The results can come from Google Workspace apps, such as Gmail or Google Drive, or they can come from data that you have indexed from a third party. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", +"flatPath": "v1/query/search", +"httpMethod": "POST", +"id": "cloudsearch.query.search", +"parameterOrder": [], +"parameters": {}, +"path": "v1/query/search", +"request": { +"$ref": "SearchRequest" +}, +"response": { +"$ref": "SearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.query" +] +}, +"suggest": { +"description": "Provides suggestions for autocompleting the query. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", +"flatPath": "v1/query/suggest", +"httpMethod": "POST", +"id": "cloudsearch.query.suggest", +"parameterOrder": [], +"parameters": {}, +"path": "v1/query/suggest", +"request": { +"$ref": "SuggestRequest" +}, +"response": { +"$ref": "SuggestResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.query" +] +} +}, +"resources": { +"sources": { +"methods": { +"list": { +"description": "Returns list of sources that user can use for Search and Suggest APIs. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", +"flatPath": "v1/query/sources", +"httpMethod": "GET", +"id": "cloudsearch.query.sources.list", +"parameterOrder": [], +"parameters": { +"pageToken": { +"description": "Number of sources to return in the response.", +"location": "query", +"type": "string" +}, +"requestOptions.debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"requestOptions.languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.", +"location": "query", +"type": "string" +}, +"requestOptions.searchApplicationId": { +"description": "The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).", +"location": "query", +"type": "string" +}, +"requestOptions.timeZone": { +"description": "Current user's time zone id, such as \"America/Los_Angeles\" or \"Australia/Sydney\". These IDs are defined by [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/) project, and currently available in the file [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.", +"location": "query", +"type": "string" +} +}, +"path": "v1/query/sources", +"response": { +"$ref": "ListQuerySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.query" +] +} +} +} +} +}, +"settings": { +"methods": { +"getCustomer": { +"description": "Get customer settings. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/customer", +"httpMethod": "GET", +"id": "cloudsearch.settings.getCustomer", +"parameterOrder": [], +"parameters": {}, +"path": "v1/settings/customer", +"response": { +"$ref": "CustomerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"updateCustomer": { +"description": "Update customer settings. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/customer", +"httpMethod": "PATCH", +"id": "cloudsearch.settings.updateCustomer", +"parameterOrder": [], +"parameters": { +"updateMask": { +"description": "Update mask to control which fields get updated. If you specify a field in the update_mask but don't specify its value here, that field will be cleared. If the mask is not present or empty, all fields will be updated. Currently supported field paths: vpc_settings and audit_logging_settings", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/settings/customer", +"request": { +"$ref": "CustomerSettings" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +} +}, +"resources": { +"datasources": { +"methods": { +"create": { +"description": "Creates a datasource. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/datasources", +"httpMethod": "POST", +"id": "cloudsearch.settings.datasources.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/settings/datasources", +"request": { +"$ref": "DataSource" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"delete": { +"description": "Deletes a datasource. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/datasources/{datasourcesId}", +"httpMethod": "DELETE", +"id": "cloudsearch.settings.datasources.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the datasource. Format: datasources/{source_id}.", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"get": { +"description": "Gets a datasource. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/datasources/{datasourcesId}", +"httpMethod": "GET", +"id": "cloudsearch.settings.datasources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the datasource resource. Format: datasources/{source_id}.", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"list": { +"description": "Lists datasources. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/datasources", +"httpMethod": "GET", +"id": "cloudsearch.settings.datasources.list", +"parameterOrder": [], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "Maximum number of datasources to fetch in a request. The max value is 1000. The default value is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Starting index of the results.", +"location": "query", +"type": "string" +} +}, +"path": "v1/settings/datasources", +"response": { +"$ref": "ListDataSourceResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"patch": { +"description": "Updates a datasource. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/datasources/{datasourcesId}", +"httpMethod": "PATCH", +"id": "cloudsearch.settings.datasources.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Only applies to [`settings.datasources.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.datasources/patch). Update mask to control which fields to update. Example field paths: `name`, `displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the source, that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"request": { +"$ref": "DataSource" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +}, +"update": { +"description": "Updates a datasource. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/datasources/{datasourcesId}", +"httpMethod": "PUT", +"id": "cloudsearch.settings.datasources.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"request": { +"$ref": "UpdateDataSourceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +} +} +}, +"searchapplications": { +"methods": { +"create": { +"description": "Creates a search application. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications", +"httpMethod": "POST", +"id": "cloudsearch.settings.searchapplications.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/settings/searchapplications", +"request": { +"$ref": "SearchApplication" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +}, +"delete": { +"description": "Deletes a search application. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications/{searchapplicationsId}", +"httpMethod": "DELETE", +"id": "cloudsearch.settings.searchapplications.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the search application to be deleted. Format: applications/{application_id}.", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +}, +"get": { +"description": "Gets the specified search application. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications/{searchapplicationsId}", +"httpMethod": "GET", +"id": "cloudsearch.settings.searchapplications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the search application. Format: searchapplications/{application_id}.", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"response": { +"$ref": "SearchApplication" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +}, +"list": { +"description": "Lists all search applications. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications", +"httpMethod": "GET", +"id": "cloudsearch.settings.searchapplications.list", +"parameterOrder": [], +"parameters": { +"debugOptions.enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any. The default value is 10", +"location": "query", +"type": "string" +} +}, +"path": "v1/settings/searchapplications", +"response": { +"$ref": "ListSearchApplicationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +}, +"patch": { +"description": "Updates a search application. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications/{searchapplicationsId}", +"httpMethod": "PATCH", +"id": "cloudsearch.settings.searchapplications.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Search Application. Format: searchapplications/{application_id}.", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Only applies to [`settings.searchapplications.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.searchapplications/patch). Update mask to control which fields to update. Example field paths: `search_application.name`, `search_application.displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the `search_application`, then that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"request": { +"$ref": "SearchApplication" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +}, +"reset": { +"description": "Resets a search application to default settings. This will return an empty response. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications/{searchapplicationsId}:reset", +"httpMethod": "POST", +"id": "cloudsearch.settings.searchapplications.reset", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the search application to be reset. Format: applications/{application_id}.", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/settings/{+name}:reset", +"request": { +"$ref": "ResetSearchApplicationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +}, +"update": { +"description": "Updates a search application. **Note:** This API requires an admin account to execute.", +"flatPath": "v1/settings/searchapplications/{searchapplicationsId}", +"httpMethod": "PUT", +"id": "cloudsearch.settings.searchapplications.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the Search Application. Format: searchapplications/{application_id}.", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Only applies to [`settings.searchapplications.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.searchapplications/patch). Update mask to control which fields to update. Example field paths: `search_application.name`, `search_application.displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the `search_application`, then that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/settings/{+name}", +"request": { +"$ref": "SearchApplication" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.query" +] +} +} +} +} +}, +"stats": { +"methods": { +"getIndex": { +"description": "Gets indexed item statistics aggreggated across all data sources. This API only returns statistics for previous dates; it doesn't return statistics for the current day. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/index", +"httpMethod": "GET", +"id": "cloudsearch.stats.getIndex", +"parameterOrder": [], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/index", +"response": { +"$ref": "GetCustomerIndexStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +}, +"getQuery": { +"description": "Get the query statistics for customer. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/query", +"httpMethod": "GET", +"id": "cloudsearch.stats.getQuery", +"parameterOrder": [], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/query", +"response": { +"$ref": "GetCustomerQueryStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +}, +"getSearchapplication": { +"description": "Get search application stats for customer. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/searchapplication", +"httpMethod": "GET", +"id": "cloudsearch.stats.getSearchapplication", +"parameterOrder": [], +"parameters": { +"endDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/searchapplication", +"response": { +"$ref": "GetCustomerSearchApplicationStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +}, +"getSession": { +"description": "Get the # of search sessions, % of successful sessions with a click query statistics for customer. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/session", +"httpMethod": "GET", +"id": "cloudsearch.stats.getSession", +"parameterOrder": [], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/session", +"response": { +"$ref": "GetCustomerSessionStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +}, +"getUser": { +"description": "Get the users statistics for customer. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/user", +"httpMethod": "GET", +"id": "cloudsearch.stats.getUser", +"parameterOrder": [], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/user", +"response": { +"$ref": "GetCustomerUserStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +} +}, +"resources": { +"index": { +"resources": { +"datasources": { +"methods": { +"get": { +"description": "Gets indexed item statistics for a single data source. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/index/datasources/{datasourcesId}", +"httpMethod": "GET", +"id": "cloudsearch.stats.index.datasources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"name": { +"description": "The resource id of the data source to retrieve statistics for, in the following format: \"datasources/{source_id}\"", +"location": "path", +"pattern": "^datasources/[^/]+$", +"required": true, +"type": "string" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/index/{+name}", +"response": { +"$ref": "GetDataSourceIndexStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +} +} +} +} +}, +"query": { +"resources": { +"searchapplications": { +"methods": { +"get": { +"description": "Get the query statistics for search application. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/query/searchapplications/{searchapplicationsId}", +"httpMethod": "GET", +"id": "cloudsearch.stats.query.searchapplications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"name": { +"description": "The resource id of the search application query stats, in the following format: searchapplications/{application_id}", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/query/{+name}", +"response": { +"$ref": "GetSearchApplicationQueryStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +} +} +} +} +}, +"session": { +"resources": { +"searchapplications": { +"methods": { +"get": { +"description": "Get the # of search sessions, % of successful sessions with a click query statistics for search application. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/session/searchapplications/{searchapplicationsId}", +"httpMethod": "GET", +"id": "cloudsearch.stats.session.searchapplications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"name": { +"description": "The resource id of the search application session stats, in the following format: searchapplications/{application_id}", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/session/{+name}", +"response": { +"$ref": "GetSearchApplicationSessionStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +} +} +} +} +}, +"user": { +"resources": { +"searchapplications": { +"methods": { +"get": { +"description": "Get the users statistics for search application. **Note:** This API requires a standard end user account to execute.", +"flatPath": "v1/stats/user/searchapplications/{searchapplicationsId}", +"httpMethod": "GET", +"id": "cloudsearch.stats.user.searchapplications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"fromDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"fromDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"name": { +"description": "The resource id of the search application session stats, in the following format: searchapplications/{application_id}", +"location": "path", +"pattern": "^searchapplications/[^/]+$", +"required": true, +"type": "string" +}, +"toDate.day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"toDate.year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/stats/user/{+name}", +"response": { +"$ref": "GetSearchApplicationUserStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.stats", +"https://www.googleapis.com/auth/cloud_search.stats.indexing" +] +} +} +} +} +} +} +}, +"v1": { +"methods": { +"initializeCustomer": { +"description": "Enables `third party` support in Google Cloud Search. **Note:** This API requires an admin account to execute.", +"flatPath": "v1:initializeCustomer", +"httpMethod": "POST", +"id": "cloudsearch.initializeCustomer", +"parameterOrder": [], +"parameters": {}, +"path": "v1:initializeCustomer", +"request": { +"$ref": "InitializeCustomerRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud_search", +"https://www.googleapis.com/auth/cloud_search.settings", +"https://www.googleapis.com/auth/cloud_search.settings.indexing" +] +} +} +} +}, +"revision": "20241113", +"rootUrl": "https://cloudsearch.googleapis.com/", +"schemas": { +"Action": { +"id": "Action", +"properties": { +"title": { +"description": "[Required] Title of the action.", +"type": "string" +}, +"url": { +"description": "[Optional] Url of the action.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLoggingSettings": { +"description": "Represents the settings for Cloud audit logging", +"id": "AuditLoggingSettings", +"properties": { +"logAdminReadActions": { +"description": "Indicates whether audit logging is on/off for admin activity read APIs i.e. Get/List DataSources, Get/List SearchApplications etc.", +"type": "boolean" +}, +"logDataReadActions": { +"description": "Indicates whether audit logging is on/off for data access read APIs i.e. ListItems, GetItem etc.", +"type": "boolean" +}, +"logDataWriteActions": { +"description": "Indicates whether audit logging is on/off for data access write APIs i.e. IndexItem etc.", +"type": "boolean" +}, +"project": { +"description": "The resource name of the GCP Project to store audit logs. Cloud audit logging will be enabled after project_name has been updated through CustomerService. Format: projects/{project_id}", +"type": "string" +} +}, +"type": "object" +}, +"BackgroundColoredText": { +"id": "BackgroundColoredText", +"properties": { +"backgroundColor": { +"description": "[Optional] Color of the background. The text color can change depending on the selected background color, and the client does not have control over this. If missing, the background will be WHITE.", +"enum": [ +"UNKNOWN_COLOR", +"WHITE", +"YELLOW", +"ORANGE", +"GREEN", +"BLUE", +"GREY" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"text": { +"description": "[Required] The text to display.", +"type": "string" +} +}, +"type": "object" +}, +"BooleanOperatorOptions": { +"description": "Used to provide a search operator for boolean properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "BooleanOperatorOptions", +"properties": { +"operatorName": { +"description": "Indicates the operator name required in the query in order to isolate the boolean property. For example, if operatorName is *closed* and the property's name is *isClosed*, then queries like *closed:* show results only where the value of the property named *isClosed* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"BooleanPropertyOptions": { +"description": "The options for boolean properties.", +"id": "BooleanPropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "BooleanOperatorOptions", +"description": "If set, describes how the boolean should be used as a search operator." +} +}, +"type": "object" +}, +"CheckAccessResponse": { +"id": "CheckAccessResponse", +"properties": { +"hasAccess": { +"description": "Returns true if principal has access. Returns false otherwise.", +"type": "boolean" +} +}, +"type": "object" +}, +"CompositeFilter": { +"id": "CompositeFilter", +"properties": { +"logicOperator": { +"description": "The logic operator of the sub filter.", +"enum": [ +"AND", +"OR", +"NOT" +], +"enumDescriptions": [ +"Logical operators, which can only be applied to sub filters.", +"", +"NOT can only be applied on a single sub filter." +], +"type": "string" +}, +"subFilters": { +"description": "Sub filters.", +"items": { +"$ref": "Filter" +}, +"type": "array" +} +}, +"type": "object" +}, +"Content": { +"id": "Content", +"properties": { +"actions": { +"description": "[Optional] Actions for this card.", +"items": { +"$ref": "Action" +}, +"type": "array" +}, +"description": { +"$ref": "SafeHtmlProto", +"description": "[Optional] Description of the card." +}, +"subtitle": { +"$ref": "BackgroundColoredText", +"description": "[Optional] Subtitle of the card." +}, +"title": { +"$ref": "BackgroundColoredText", +"description": "[Optional] Title of the card." +} +}, +"type": "object" +}, +"Context": { +"id": "Context", +"properties": { +"app": { +"description": "[Optional] App where the card should be shown. If missing, the card will be shown in TOPAZ.", +"items": { +"enum": [ +"UNKNOWN_APP", +"TOPAZ", +"MOMA" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"dayOfWeek": { +"description": "[Optional] Day of week when the card should be shown, where 0 is Monday.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"endDateSec": { +"description": "[Optional] Date (in seconds since epoch) when the card should stop being shown. If missing, end_date_sec will be set to Jan 1st, 2100.", +"format": "int64", +"type": "string" +}, +"endDayOffsetSec": { +"description": "[Optional] End time in seconds, within a day, when the card should stop being shown if it's within [start_date_sec, end_date_sec]. If missing, this is set to 86400 (24 hours x 3600 sec/hour), i.e., midnight next day.", +"format": "int64", +"type": "string" +}, +"locale": { +"description": "[Optional] The locales for which the card should be triggered (e.g., en_US and en_CA). If missing, the card is going to show to clients regardless of their locale.", +"items": { +"type": "string" +}, +"type": "array" +}, +"location": { +"description": "[Optional] Text-free locations where the card should be shown. This is expected to match the user's location in focus. If no location is specified, the card will be shown for any location.", +"items": { +"type": "string" +}, +"type": "array" +}, +"query": { +"description": "[Required only for Answer and RHS cards - will be ignored for Homepage] cards. It's the exact case-insensitive queries that will trigger the Answer or RHS card.", +"items": { +"type": "string" +}, +"type": "array" +}, +"startDateSec": { +"description": "[Optional] Date (in seconds since epoch) when the card should start being shown. If missing, start_date_sec will be Jan 1st, 1970 UTC.", +"format": "int64", +"type": "string" +}, +"startDayOffsetSec": { +"description": "[Optional] Start time in seconds, within a day, when the card should be shown if it's within [start_date_sec, end_date_sec]. If 0, the card will be shown from 12:00am on.", +"format": "int64", +"type": "string" +}, +"surface": { +"description": "[Optional] Surface where the card should be shown in. If missing, the card will be shown in any surface.", +"items": { +"enum": [ +"UNKNOWN_SURFACE", +"DESKTOP", +"ANDROID", +"IOS", +"MOBILE", +"ANY" +], +"enumDescriptions": [ +"", +"", +"", +"", +"Any mobile device.", +"" +], +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "[Required] Type of the card (homepage, Answer or RHS).", +"items": { +"enum": [ +"UNKNOWN_CARD_TYPE", +"HOMEPAGE_CARD", +"ANSWER_CARD", +"RHS_CARD" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContextAttribute": { +"description": "A named attribute associated with an item which can be used for influencing the ranking of the item based on the context in the request.", +"id": "ContextAttribute", +"properties": { +"name": { +"description": "The name of the attribute. It should not be empty. The maximum length is 32 characters. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The name will be normalized (lower-cased) before being matched.", +"type": "string" +}, +"values": { +"description": "Text values of the attribute. The maximum number of elements is 10. The maximum length of an element in the array is 32 characters. The value will be normalized (lower-cased) before being matched.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomerIndexStats": { +"description": "Aggregation of items by status code as of the specified date.", +"id": "CustomerIndexStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which statistics were calculated." +}, +"itemCountByStatus": { +"description": "Number of items aggregrated by status code.", +"items": { +"$ref": "ItemCountByStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomerQueryStats": { +"id": "CustomerQueryStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which query stats were calculated. Stats calculated on the next day close to midnight are returned." +}, +"queryCountByStatus": { +"items": { +"$ref": "QueryCountByStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomerSearchApplicationStats": { +"description": "Search application stats for a customer for the given date.", +"id": "CustomerSearchApplicationStats", +"properties": { +"count": { +"description": "The count of search applications for the date.", +"format": "int64", +"type": "string" +}, +"date": { +"$ref": "Date", +"description": "The date for which search application stats were calculated." +} +}, +"type": "object" +}, +"CustomerSessionStats": { +"id": "CustomerSessionStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned." +}, +"searchSessionsCount": { +"description": "The count of search sessions on the day", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CustomerSettings": { +"description": "Represents settings at a customer level.", +"id": "CustomerSettings", +"properties": { +"auditLoggingSettings": { +"$ref": "AuditLoggingSettings", +"description": "Audit Logging settings for the customer. If update_mask is empty then this field will be updated based on UpdateCustomerSettings request." +}, +"vpcSettings": { +"$ref": "VPCSettings", +"description": "VPC SC settings for the customer. If update_mask is empty then this field will be updated based on UpdateCustomerSettings request." +} +}, +"type": "object" +}, +"CustomerUserStats": { +"id": "CustomerUserStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which session stats were calculated. Stats calculated on the next day close to midnight are returned." +}, +"oneDayActiveUsersCount": { +"description": "The count of unique active users in the past one day", +"format": "int64", +"type": "string" +}, +"sevenDaysActiveUsersCount": { +"description": "The count of unique active users in the past seven days", +"format": "int64", +"type": "string" +}, +"thirtyDaysActiveUsersCount": { +"description": "The count of unique active users in the past thirty days", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DataSource": { +"description": "Datasource is a logical namespace for items to be indexed. All items must belong to a datasource. This is the prerequisite before items can be indexed into Cloud Search. ", +"id": "DataSource", +"properties": { +"disableModifications": { +"description": "If true, sets the datasource to read-only mode. In read-only mode, the Indexing API rejects any requests to index or delete items in this source. Enabling read-only mode does not stop the processing of previously accepted data.", +"type": "boolean" +}, +"disableServing": { +"description": "Disable serving any search or assist results.", +"type": "boolean" +}, +"displayName": { +"description": "Required. Display name of the datasource The maximum length is 300 characters.", +"type": "string" +}, +"indexingServiceAccounts": { +"description": "List of service accounts that have indexing access.", +"items": { +"type": "string" +}, +"type": "array" +}, +"itemsVisibility": { +"description": "This field restricts visibility to items at the datasource level. Items within the datasource are restricted to the union of users and groups included in this field. Note that, this does not ensure access to a specific item, as users need to have ACL permissions on the contained items. This ensures a high level access on the entire datasource, and that the individual items are not shared outside this visibility.", +"items": { +"$ref": "GSuitePrincipal" +}, +"type": "array" +}, +"name": { +"description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", +"type": "string" +}, +"operationIds": { +"description": "IDs of the Long Running Operations (LROs) currently running for this schema.", +"items": { +"type": "string" +}, +"type": "array" +}, +"returnThumbnailUrls": { +"description": "Can a user request to get thumbnail URI for Items indexed in this data source.", +"type": "boolean" +}, +"shortName": { +"description": "A short name or alias for the source. This value will be used to match the 'source' operator. For example, if the short name is ** then queries like *source:* will only return results for this source. The value must be unique across all datasources. The value must only contain alphanumeric characters (a-zA-Z0-9). The value cannot start with 'google' and cannot be one of the following: mail, gmail, docs, drive, groups, sites, calendar, hangouts, gplus, keep, people, teams. Its maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"DataSourceIndexStats": { +"description": "Aggregation of items by status code as of the specified date.", +"id": "DataSourceIndexStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which index stats were calculated. If the date of request is not the current date then stats calculated on the next day are returned. Stats are calculated close to mid night in this case. If date of request is current date, then real time stats are returned." +}, +"itemCountByStatus": { +"description": "Number of items aggregrated by status code.", +"items": { +"$ref": "ItemCountByStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataSourceRestriction": { +"description": "Restriction on Datasource.", +"id": "DataSourceRestriction", +"properties": { +"filterOptions": { +"description": "Filter options restricting the results. If multiple filters are present, they are grouped by object type before joining. Filters with the same object type are joined conjunctively, then the resulting expressions are joined disjunctively. The maximum number of elements is 20. NOTE: Suggest API supports only few filters at the moment: \"objecttype\", \"type\" and \"mimetype\". For now, schema specific filters cannot be used to filter suggestions.", +"items": { +"$ref": "FilterOptions" +}, +"type": "array" +}, +"source": { +"$ref": "Source", +"description": "The source of restriction." +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.", +"id": "Date", +"properties": { +"day": { +"description": "Day of month. Must be from 1 to 31 and valid for the year and month.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of date. Must be from 1 to 12.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of date. Must be from 1 to 9999.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DateOperatorOptions": { +"description": "Optional. Provides a search operator for date properties. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "DateOperatorOptions", +"properties": { +"greaterThanOperatorName": { +"description": "Indicates the operator name required in the query in order to isolate the date property using the greater-than operator. For example, if greaterThanOperatorName is *closedafter* and the property's name is *closeDate*, then queries like *closedafter:* show results only where the value of the property named *closeDate* is later than **. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +}, +"lessThanOperatorName": { +"description": "Indicates the operator name required in the query in order to isolate the date property using the less-than operator. For example, if lessThanOperatorName is *closedbefore* and the property's name is *closeDate*, then queries like *closedbefore:* show results only where the value of the property named *closeDate* is earlier than **. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +}, +"operatorName": { +"description": "Indicates the actual string required in the query in order to isolate the date property. For example, suppose an issue tracking schema object has a property named *closeDate* that specifies an operator with an operatorName of *closedon*. For searches on that data, queries like *closedon:* show results only where the value of the *closeDate* property matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the indexed datasource. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"DatePropertyOptions": { +"description": "The options for date properties.", +"id": "DatePropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "DateOperatorOptions", +"description": "If set, describes how the date should be used as a search operator." +} +}, +"type": "object" +}, +"DateValues": { +"description": "List of date values.", +"id": "DateValues", +"properties": { +"values": { +"items": { +"$ref": "Date" +}, +"type": "array" +} +}, +"type": "object" +}, +"DebugOptions": { +"description": "Shared request debug options for all cloudsearch RPC methods.", +"id": "DebugOptions", +"properties": { +"enableDebugging": { +"description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", +"type": "boolean" +} +}, +"type": "object" +}, +"DebugResponse": { +"description": "Debug Search Response.", +"id": "DebugResponse", +"properties": { +"gsrRequest": { +"description": "Serialized string of GenericSearchRequest.", +"format": "byte", +"type": "string" +}, +"gsrResponse": { +"description": "Serialized string of GenericSearchResponse.", +"format": "byte", +"type": "string" +}, +"searchResponse": { +"$ref": "SearchResponse", +"description": "Search response." +} +}, +"type": "object" +}, +"DeleteQueueItemsRequest": { +"id": "DeleteQueueItemsRequest", +"properties": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"queue": { +"description": "The name of a queue to delete items from.", +"type": "string" +} +}, +"type": "object" +}, +"DisplayedProperty": { +"description": "A reference to a top-level property within the object that should be displayed in search results. The values of the chosen properties is displayed in the search results along with the display label for that property if one is specified. If a display label is not specified, only the values is shown.", +"id": "DisplayedProperty", +"properties": { +"propertyName": { +"description": "The name of the top-level property as defined in a property definition for the object. If the name is not a defined property in the schema, an error is given when attempting to update the schema.", +"type": "string" +} +}, +"type": "object" +}, +"DoubleOperatorOptions": { +"description": "Used to provide a search operator for double properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "DoubleOperatorOptions", +"properties": { +"operatorName": { +"description": "Indicates the operator name required in the query in order to use the double property in sorting or as a facet. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"DoublePropertyOptions": { +"description": "The options for double properties.", +"id": "DoublePropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "DoubleOperatorOptions", +"description": "If set, describes how the double should be used as a search operator." +} +}, +"type": "object" +}, +"DoubleValues": { +"description": "List of double values.", +"id": "DoubleValues", +"properties": { +"values": { +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"DriveFollowUpRestrict": { +"description": "Drive follow-up search restricts (e.g. \"followup:suggestions\").", +"id": "DriveFollowUpRestrict", +"properties": { +"type": { +"enum": [ +"UNSPECIFIED", +"FOLLOWUP_SUGGESTIONS", +"FOLLOWUP_ACTION_ITEMS" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"DriveLocationRestrict": { +"description": "Drive location search restricts (e.g. \"is:starred\").", +"id": "DriveLocationRestrict", +"properties": { +"type": { +"enum": [ +"UNSPECIFIED", +"TRASHED", +"STARRED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"DriveMimeTypeRestrict": { +"description": "Drive mime-type search restricts (e.g. \"type:pdf\").", +"id": "DriveMimeTypeRestrict", +"properties": { +"type": { +"enum": [ +"UNSPECIFIED", +"PDF", +"DOCUMENT", +"PRESENTATION", +"SPREADSHEET", +"FORM", +"DRAWING", +"SCRIPT", +"MAP", +"IMAGE", +"AUDIO", +"VIDEO", +"FOLDER", +"ARCHIVE", +"SITE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"DriveTimeSpanRestrict": { +"description": "The time span search restrict (e.g. \"after:2017-09-11 before:2017-09-12\").", +"id": "DriveTimeSpanRestrict", +"properties": { +"type": { +"enum": [ +"UNSPECIFIED", +"TODAY", +"YESTERDAY", +"LAST_7_DAYS", +"LAST_30_DAYS", +"LAST_90_DAYS" +], +"enumDescriptions": [ +"", +"", +"", +"", +"Not Enabled", +"Not Enabled" +], +"type": "string" +} +}, +"type": "object" +}, +"EmailAddress": { +"description": "A person's email address.", +"id": "EmailAddress", +"properties": { +"customType": { +"description": "If the value of type is custom, this property contains the custom type string.", +"type": "string" +}, +"emailAddress": { +"description": "The email address.", +"type": "string" +}, +"emailUrl": { +"description": "The URL to send email.", +"type": "string" +}, +"primary": { +"description": "Indicates if this is the user's primary email. Only one entry can be marked as primary.", +"type": "boolean" +}, +"type": { +"description": "The type of the email account. Acceptable values are: \"custom\", \"home\", \"other\", \"work\".", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazFrontendTeamsLink": { +"id": "EnterpriseTopazFrontendTeamsLink", +"properties": { +"type": { +"description": "The identifying link type", +"type": "string" +}, +"url": { +"$ref": "SafeUrlProto" +} +}, +"type": "object" +}, +"EnterpriseTopazFrontendTeamsPersonCorePhoneNumber": { +"id": "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber", +"properties": { +"phoneNumber": { +"description": "Phone number in no particular format (as comes from the Focus profile).", +"type": "string" +}, +"phoneUrl": { +"$ref": "SafeUrlProto", +"description": "Phone number URL" +}, +"type": { +"enum": [ +"UNKNOWN", +"MOBILE", +"OFFICE", +"OTHER" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAgendaEntry": { +"description": "An AgendaEntry, e.g., a Calendar Event.", +"id": "EnterpriseTopazSidekickAgendaEntry", +"properties": { +"agendaItemUrl": { +"description": "URL of the agenda item.", +"type": "string" +}, +"chronology": { +"description": "The chronology from the present.", +"enum": [ +"STALE", +"ALL_DAY", +"PAST", +"RECENTLY_PAST", +"PRESENT", +"NEAR_FUTURE", +"FUTURE" +], +"enumDescriptions": [ +"Stale.", +"All day.", +"Past.", +"Recently past.", +"Present.", +"Near future.", +"Future." +], +"type": "string" +}, +"creator": { +"$ref": "EnterpriseTopazSidekickPerson", +"description": "Person who created the event." +}, +"currentUserAttendingStatus": { +"description": "Attendance status for the current user making the request. This is a convenience data member in order to avoid figuring out the same by iterating the invitee list above on the caller side.", +"enum": [ +"AWAITING", +"YES", +"NO", +"MAYBE" +], +"enumDescriptions": [ +"Awaiting for the user to set the status.", +"Attending.", +"Not attending.", +"Tentatively attending." +], +"type": "string" +}, +"description": { +"description": "Description of the agenda item (i.e., typically, summary in calendar event).", +"type": "string" +}, +"document": { +"description": "Items related to the current AgendaEntry. E.g., related drive/mail/groups documents.", +"items": { +"$ref": "EnterpriseTopazSidekickCommonDocument" +}, +"type": "array" +}, +"endDate": { +"description": "End date \"Friday, August 26\" in the user's timezone.", +"type": "string" +}, +"endTime": { +"description": "End time (HH:mm) in the user's timezone.", +"type": "string" +}, +"endTimeMs": { +"description": "End time in milliseconds", +"format": "int64", +"type": "string" +}, +"eventId": { +"description": "Event id provided by Calendar API.", +"type": "string" +}, +"guestsCanInviteOthers": { +"description": "Whether the guests can invite other guests.", +"type": "boolean" +}, +"guestsCanModify": { +"description": "Whether the guests can modify the event.", +"type": "boolean" +}, +"guestsCanSeeGuests": { +"description": "Whether the guests of the event can be seen. If false, the user is going to be reported as the only attendee to the meeting, even though there may be more attendees.", +"type": "boolean" +}, +"hangoutId": { +"description": "Hangout meeting identifier.", +"type": "string" +}, +"hangoutUrl": { +"description": "Absolute URL for the Hangout meeting.", +"type": "string" +}, +"invitee": { +"description": "People attending the meeting.", +"items": { +"$ref": "EnterpriseTopazSidekickPerson" +}, +"type": "array" +}, +"isAllDay": { +"description": "Whether the entry lasts all day.", +"type": "boolean" +}, +"lastModificationTimeMs": { +"description": "Last time the event was modified.", +"format": "int64", +"type": "string" +}, +"location": { +"description": "Agenda item location.", +"type": "string" +}, +"notifyToUser": { +"description": "Whether this should be notified to the user.", +"type": "boolean" +}, +"otherAttendeesExcluded": { +"description": "Whether guest list is not returned because number of attendees is too large.", +"type": "boolean" +}, +"requesterIsOwner": { +"description": "Whether the requester is the owner of the agenda entry.", +"type": "boolean" +}, +"showFullEventDetailsToUse": { +"description": "Whether the details of this entry should be displayed to the user.", +"type": "boolean" +}, +"startDate": { +"description": "Start date \"Friday, August 26\" in the user's timezone.", +"type": "string" +}, +"startTime": { +"description": "Start time (HH:mm) in the user's timezone.", +"type": "string" +}, +"startTimeMs": { +"description": "Start time in milliseconds.", +"format": "int64", +"type": "string" +}, +"timeZone": { +"description": "User's calendar timezone;", +"type": "string" +}, +"title": { +"description": "Title of the agenda item.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAgendaGroupCardProto": { +"id": "EnterpriseTopazSidekickAgendaGroupCardProto", +"properties": { +"agendaItem": { +"items": { +"$ref": "EnterpriseTopazSidekickAgendaItem" +}, +"type": "array" +}, +"context": { +"$ref": "EnterpriseTopazSidekickAgendaGroupCardProtoContext" +}, +"currentAgendaItem": { +"$ref": "EnterpriseTopazSidekickAgendaItem" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAgendaGroupCardProtoContext": { +"description": "The context that resulted in the generation of the card.", +"id": "EnterpriseTopazSidekickAgendaGroupCardProtoContext", +"properties": { +"context": { +"description": "User friendly free text that describes the context of the card (e.g. \"Next meeting with Bob\"). This is largely only applicable when the card is generated from a query.", +"type": "string" +}, +"date": { +"description": "Localized free text that describes the dates represented by the card. Currently, the card will only represent a single day.", +"type": "string" +}, +"eventsRestrict": { +"description": "Represents restrictions applied to the events requested in the user's query.", +"enum": [ +"NONE", +"NEXT_MEETING" +], +"enumDescriptions": [ +"No specific event was requested.", +"The next meeting was requested." +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAgendaItem": { +"id": "EnterpriseTopazSidekickAgendaItem", +"properties": { +"conflictedGroup": { +"$ref": "EnterpriseTopazSidekickConflictingEventsCardProto" +}, +"gapBefore": { +"$ref": "EnterpriseTopazSidekickGap" +}, +"meeting": { +"$ref": "EnterpriseTopazSidekickAgendaEntry" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAnswerAnswerList": { +"description": "A list of answers represented as free text.", +"id": "EnterpriseTopazSidekickAnswerAnswerList", +"properties": { +"labeledAnswer": { +"description": "Answers that have a corresponding label.", +"items": { +"$ref": "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer" +}, +"type": "array" +}, +"type": { +"description": "Answer type.", +"enum": [ +"UNKNOWN", +"PERSON_ADDRESS", +"PERSON_BIRTHDAY", +"PERSON_DEPARTMENT", +"PERSON_DESK_LOCATION", +"PERSON_EMAIL", +"PERSON_JOB_TITLE", +"PERSON_PHONE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer": { +"description": "An answer with a corresponding label.", +"id": "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer", +"properties": { +"answer": { +"description": "The free text answer.", +"type": "string" +}, +"label": { +"description": "A localized label for the answer (e.g. \"Cell phone\" vs \"Desk phone\").", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard": { +"description": "Contains a list of suggested queries. Allows the user to determine what natural language queries they can ask Cloud Search (e.g. \"what can I search for?\").", +"id": "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard", +"properties": { +"suggestedQueryCategory": { +"description": "A list of queries to suggest.", +"items": { +"$ref": "EnterpriseTopazSidekickAnswerSuggestedQueryCategory" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAnswerSuggestedQueryCategory": { +"description": "Contains a list of suggested queries for a single category.", +"id": "EnterpriseTopazSidekickAnswerSuggestedQueryCategory", +"properties": { +"category": { +"description": "The query list category.", +"enum": [ +"UNKNOWN", +"CALENDAR", +"DOCUMENT", +"PEOPLE" +], +"enumDescriptions": [ +"Unknown.", +"Calendar based queries (e.g. \"my agenda for tomorrow\").", +"Document based queries (e.g. \"files shared with me\").", +"People based queries (e.g. \"what is x's email address?\")." +], +"type": "string" +}, +"isEnabled": { +"description": "Whether this category is enabled.", +"type": "boolean" +}, +"query": { +"description": "List of suggested queries to show the user.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickAssistCardProto": { +"description": "Wrapper proto for the Assist cards.", +"id": "EnterpriseTopazSidekickAssistCardProto", +"properties": { +"agendaGroupCardProto": { +"$ref": "EnterpriseTopazSidekickAgendaGroupCardProto", +"description": "Agenda group card." +}, +"cardMetadata": { +"$ref": "EnterpriseTopazSidekickCardMetadata", +"description": "Card metadata such as chronology and render mode of the card." +}, +"cardType": { +"description": "Card type.", +"enum": [ +"UNKNOWN_TYPE", +"AGENDA", +"CHANGELISTS", +"CONFLICTING_MEETINGS", +"CREATE_NOTES_FOR_MEETING", +"CREATE_NOTES_FOR_MEETING_REQUEST", +"CUSTOMER_NEWS", +"FIND_MEETING_TIME", +"NEXT_MEETING", +"PERSONALIZED_DOCS", +"TRENDING_DOCS", +"UPCOMING_TRIP", +"SUMMARY", +"MEETINGS", +"HOMEPAGE", +"SHARE_MEETING_DOCS", +"DISCOVER_PEOPLE", +"HOMEPAGE_V3", +"AGENDA_GROUP", +"WORK_IN_PROGRESS", +"GET_AND_KEEP_AHEAD", +"GENERIC_ANSWER_CARD", +"THIRD_PARTY_ANSWER_CARD", +"DOMAIN_TRENDING_DOCS", +"TEAM_TRENDING_DOCS", +"DOCUMENT_LIST_ANSWER_CARD", +"SUGGESTED_QUERY_ANSWER_CARD", +"PERSON_ANSWER_CARD", +"RELATED_PEOPLE_ANSWER_CARD", +"PERSON_KNOWLEDGE_CARD", +"PEOPLE_SEARCH_PROMOTION_CARD" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +false, +true, +true, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"The default type, an unknown card type.", +"The user's agenda for the day.", +"Changelists.", +"Any group of meetings for the day that are overlapping.", +"Create notes for a meeting specified in the request.", +"Create notes for meeting query.", +"News about your SFDC customers.", +"Find a time for two people to meet.", +"The user's next non-declined meeting.", +"Important documents for you since you have viewed them in the last month and there's some action going on.", +"Documents that are trending in your company. A TRENDING_DOCS card can be of two types: TRENDING_IN_COLLABORATORS (i.e., Stay in the Loop) and TRENDING_IN_DOMAIN (i.e., Popular Content). Use DOMAIN_TRENDING_DOCS/TEAM_TRENDING_DOCS instead.", +"An upcoming trip with all trip information along with calendar events in the destination timezone.", +"The Morning/Evening Summary Card for the next working day.", +"A meeting. When requesting meetings, the service will return a MEETING card for each meeting the user has in his agenda.", +"All cards related to the homepage (agenda, conflicting-meetings, summary, etc...). This type should no longer be used. Use HOMEPAGE_V3 instead.", +"A card to with specifics to share meeting documents with all attendees.", +"Represents a set of users that the requesting user has low affinity with.", +"All cards related to the homepage-v3 (agenda-group, WIP, etc...)", +"A group of agenda-events (meeting, conflicts)", +"The documents that you were recently working on.", +"(v3) The \"get and keep ahead\" card for today and tomorrow", +"Generic answer card.", +"Third party answer card.", +"Documents that are trending in your company/domain (i.e., Popular Content).", +"Documents that are trending in your team (i.e., Stay in the Loop).", +"Documents that match the user's query (e.g. sheets shared with me).", +"A help card that provides examples of queries the user can ask.", +"Answer card for a single person (e.g. what is x's phone number).", +"Answer card for a list of people related to the person that is the subject of the query (e.g. who reports to x).", +"Knowledge card for a single person and their related people.", +"People Search promotion card." +], +"type": "string" +}, +"conflictingMeetingsCard": { +"$ref": "EnterpriseTopazSidekickConflictingEventsCardProto", +"deprecated": true, +"description": "Conflicting events card." +}, +"documentListCard": { +"$ref": "EnterpriseTopazSidekickDocumentPerCategoryList", +"description": "Answer card for documents that are applicable to the current query." +}, +"documentsWithMentions": { +"$ref": "EnterpriseTopazSidekickDocumentPerCategoryList", +"deprecated": true, +"description": "Documents with mentions." +}, +"findMeetingTimeCard": { +"$ref": "EnterpriseTopazSidekickFindMeetingTimeCardProto", +"description": "Find meeting time card." +}, +"genericAnswerCard": { +"$ref": "EnterpriseTopazSidekickGenericAnswerCard", +"description": "Generic answer card." +}, +"getAndKeepAheadCard": { +"$ref": "EnterpriseTopazSidekickGetAndKeepAheadCardProto", +"description": "Get and keep ahead card." +}, +"meeting": { +"$ref": "EnterpriseTopazSidekickAgendaEntry", +"deprecated": true, +"description": "Meeting card." +}, +"meetingNotesCard": { +"$ref": "EnterpriseTopazSidekickMeetingNotesCardProto", +"description": "Meeting notes card." +}, +"meetingNotesCardRequest": { +"$ref": "EnterpriseTopazSidekickMeetingNotesCardRequest", +"description": "Request for meeting notes card." +}, +"peopleDisambiguationCard": { +"$ref": "EnterpriseTopazSidekickPeopleDisambiguationCard", +"description": "The people disambiguation card." +}, +"peoplePromotionCard": { +"$ref": "PeoplePromotionCard", +"description": "People Search promotion card." +}, +"personAnswerCard": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard", +"description": "Answer card that represents a single person." +}, +"personProfileCard": { +"$ref": "EnterpriseTopazSidekickPersonProfileCard", +"description": "Full profile card." +}, +"personalizedDocsCard": { +"$ref": "EnterpriseTopazSidekickPersonalizedDocsCardProto", +"deprecated": true, +"description": "Card with recommended documents for the user." +}, +"relatedPeopleAnswerCard": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard", +"description": "Answer card that represents a list of people related to a person." +}, +"shareMeetingDocsCard": { +"$ref": "EnterpriseTopazSidekickShareMeetingDocsCardProto", +"deprecated": true, +"description": "Sahre meeting docs card." +}, +"sharedDocuments": { +"$ref": "EnterpriseTopazSidekickDocumentPerCategoryList", +"deprecated": true, +"description": "Shared documents." +}, +"suggestedQueryAnswerCard": { +"$ref": "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard", +"description": "Answer card for what natural language queries the user can ask." +}, +"thirdPartyAnswerCard": { +"$ref": "ThirdPartyGenericCard", +"description": "Third party answer cards." +}, +"workInProgressCardProto": { +"$ref": "EnterpriseTopazSidekickRecentDocumentsCardProto", +"description": "Work In Progress card." +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCardMetadata": { +"description": "Card metadata.", +"id": "EnterpriseTopazSidekickCardMetadata", +"properties": { +"cardCategory": { +"description": "Declares a preference for how this card should be packed in MSCR. All cards in a response must correspond to a single category. As a result, cards may be dropped from the response if this field is set. Any card that does not match the category of the card with the highest priority in the response will be dropped.", +"enum": [ +"DEFAULT", +"ANSWER", +"KNOWLEDGE", +"HOMEPAGE" +], +"enumDescriptions": [ +"Let MSCR decide how this card should be packed. Most cards should choose this type. This type should largely be considered equivalent to ANSWER. However, this is not guaranteed to be the case as the request to MSCR may override the static configuration.", +"This card should be rendered as an answer card.", +"This card should be rendered as a knowledge card (a non-organic result).", +"This card should be rendered in the Homepage." +], +"type": "string" +}, +"cardId": { +"description": "An ID to identify the card and match actions to it. Be thoughtful of new card IDs since actions will be associated to that ID. E.g., if two card IDs collide, the system will think that the actions have been applied to the same card. Similarly, if EAS can return multiple cards of the same type (e.g., Meetings), ensure that the card_id identifies a given instance of the card so that, e.g., dismissals only affect the dismissed card as opposed to affecting all meeting cards.", +"type": "string" +}, +"chronology": { +"description": "Chronology.", +"enum": [ +"UNKNOWN", +"PAST", +"RECENTLY_PAST", +"PRESENT", +"NEAR_FUTURE", +"FUTURE" +], +"enumDescriptions": [ +"Unknown chronology (default).", +"Past.", +"Recently past.", +"Present.", +"Near future.", +"Future." +], +"type": "string" +}, +"debugInfo": { +"description": "Debug info (only reported if request's debug_level > 0).", +"type": "string" +}, +"nlpMetadata": { +"$ref": "EnterpriseTopazSidekickNlpMetadata", +"description": "Information about the NLP done to get the card." +}, +"rankingParams": { +"$ref": "EnterpriseTopazSidekickRankingParams", +"description": "Ranking params." +}, +"renderMode": { +"description": "Render mode.", +"enum": [ +"UNKNOWN_RENDER", +"COLLAPSED", +"EXPANDED" +], +"enumDescriptions": [ +"Unknown mode (default).", +"Collapsed.", +"Expanded." +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCommonDebugInfo": { +"description": "Container of debugging information in all object levels. Extend as needed.", +"id": "EnterpriseTopazSidekickCommonDebugInfo", +"properties": { +"message": { +"description": "Debug message.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCommonDocument": { +"description": "Representation of a document. NEXT_TAG: 15", +"id": "EnterpriseTopazSidekickCommonDocument", +"properties": { +"accessType": { +"description": "Access type, i.e., whether the user has access to the document or not.", +"enum": [ +"UNKNOWN_ACCESS", +"ALLOWED", +"NOT_ALLOWED" +], +"enumDescriptions": [ +"Unknown access type.", +"Access allowed.", +"Access not allowed." +], +"type": "string" +}, +"debugInfo": { +"$ref": "EnterpriseTopazSidekickCommonDebugInfo", +"description": "Information for debugging." +}, +"documentId": { +"description": "Document id.", +"type": "string" +}, +"driveDocumentMetadata": { +"$ref": "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata", +"description": "Drive document metadata." +}, +"genericUrl": { +"description": "Generic Drive-based url in the format of drive.google.com/open to be used for deeplink", +"type": "string" +}, +"justification": { +"$ref": "EnterpriseTopazSidekickCommonDocumentJustification", +"description": "Justification on why the document is selected." +}, +"mimeType": { +"description": "MIME type", +"type": "string" +}, +"provenance": { +"deprecated": true, +"description": "Document provenance.", +"enum": [ +"UNKNOWN_PROVENANCE", +"CALENDAR_DESCRIPTION", +"CALENDAR_ATTACHMENT", +"MINED", +"CALENDAR_ASSIST_ATTACHMENT" +], +"enumDescriptions": [ +"Unknown provenance.", +"Calendar event description.", +"Calendar event attachment.", +"Mined (extracted by some offline/online analysis).", +"Attachment created by enterprise assist." +], +"type": "string" +}, +"reason": { +"deprecated": true, +"description": "Justification of why this document is being returned.", +"enum": [ +"UNKNOWN", +"TRENDING_IN_COLLABORATORS", +"TRENDING_IN_DOMAIN", +"FREQUENTLY_VIEWED", +"FREQUENTLY_EDITED", +"NEW_UPDATES", +"NEW_COMMENTS", +"EVENT_DESCRIPTION", +"EVENT_ATTACHMENT", +"EVENT_METADATA_ATTACHMENT", +"MINED_DOCUMENT", +"NEW_MENTIONS", +"NEW_SHARES" +], +"enumDescriptions": [ +"Unknown justification.", +"Popular documents within collaborators.", +"Popular documents within the domain.", +"Documents being reviewed frequently by the current user .", +"Documents being edited frequently by the current user .", +"Documents updated since user's last visit.", +"Documents that receive comments since user's last visit.", +"Documents in the calendar event description.", +"Documents in the calendar event attachments section.", +"Documents attached in calendar event metadata instead of the attachment section. Event metadata is not visible to the final user. Enterprise assist uses this metadata to store auto-generated documents such as meeting notes.", +"Documents mined, and so, probably related to the request context. For example, this category includes documents related to a meeting.", +"Documents that contains mentions of the user.", +"Documents that are shared with the user." +], +"type": "string" +}, +"snippet": { +"description": "A sampling of the text from the document.", +"type": "string" +}, +"thumbnailUrl": { +"description": "Thumbnail URL.", +"type": "string" +}, +"title": { +"description": "Title of the document.", +"type": "string" +}, +"type": { +"description": "Type of the document.", +"enum": [ +"UNKNOWN", +"DOCUMENT", +"PRESENTATION", +"SPREADSHEET", +"PDF", +"IMAGE", +"BINARY_BLOB", +"FUSION_TABLE", +"FOLDER", +"DRAWING", +"VIDEO", +"FORM", +"LINK_URL", +"LINK_GO", +"LINK_GOO_GL", +"LINK_BIT_LY", +"LINK_GMAIL", +"LINK_MAILTO", +"VIDEO_YOUTUBE", +"VIDEO_LIVE", +"GROUPS", +"NEWS", +"SITES", +"HANGOUT", +"AUDIO", +"MS_WORD", +"MS_POWERPOINT", +"MS_EXCEL", +"MS_OUTLOOK" +], +"enumDescriptions": [ +"If the type is unknown or not represented in this enum.", +"Drive document types Writely, Word, etc.", +"Presently, PowerPoint, etc.", +"Trix, Excel, etc.", +"File types for Gdrive objects are below. PDF.", +"Image.", +"Fall-back for unknown Gdrive types.", +"Fusion table.", +"Folder.", +"Drawing.", +"Video.", +"Form.", +"Link formats uncategorized URL links", +"meaningful links that should be renderred specifically", +"Link to goo.gl.", +"Link to bit_ly.", +"Link to Gmail.", +"Mailto link.", +"Videos Youtube videos.", +"Live streams (e.g., liveplayer.googleplex.com)", +"Other types. Google Groups.", +"Google News.", +"Google Sites.", +"Google Hangout.", +"Audio files.", +"Microsoft-specific file types.", +"", +"", +"" +], +"type": "string" +}, +"url": { +"description": "Absolute URL of the document.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata": { +"description": "Meta data for drive documents.", +"id": "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata", +"properties": { +"documentId": { +"deprecated": true, +"description": "The drive document cosmo id. Client could use the id to build a URL to open a document. Please use Document.document_id.", +"type": "string" +}, +"isPrivate": { +"description": "Additional field to identify whether a document is private since scope set to LIMITED can mean both that the doc is private or that it's shared with others. is_private indicates whether the doc is not shared with anyone except for the owner.", +"type": "boolean" +}, +"lastCommentTimeMs": { +"description": "Timestamp of the most recent comment added to the document in milliseconds since epoch.", +"format": "uint64", +"type": "string" +}, +"lastEditTimeMs": { +"description": "Timestamp of the most recent edit from the current user in milliseconds since epoch.", +"format": "uint64", +"type": "string" +}, +"lastModificationTimeMillis": { +"description": "Last modification time of the document (independent of the user that modified it).", +"format": "int64", +"type": "string" +}, +"lastUpdatedTimeMs": { +"description": "Timestamp of the last updated time of the document in milliseconds since epoch.", +"format": "uint64", +"type": "string" +}, +"lastViewTimeMs": { +"description": "Timestamp of the most recent view from the current user in milliseconds since epoch.", +"format": "uint64", +"type": "string" +}, +"owner": { +"$ref": "EnterpriseTopazSidekickCommonPerson", +"description": "The owner of the document." +}, +"scope": { +"description": "ACL scope of the document which identifies the sharing status of the doc (e.g., limited, shared with link, team drive, ...).", +"enum": [ +"UNKNOWN_DOCUMENT_SCOPE", +"LIMITED", +"DASHER_DOMAIN_WITH_LINK", +"DASHER_DOMAIN", +"PUBLIC_WITH_LINK", +"PUBLIC", +"TEAM_DRIVE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCommonDocumentJustification": { +"description": "Justification of why we are reporting the document.", +"id": "EnterpriseTopazSidekickCommonDocumentJustification", +"properties": { +"justification": { +"description": "A locale aware message that explains why this document was selected.", +"type": "string" +}, +"reason": { +"description": "Reason on why the document is selected. Populate for trending documents.", +"enum": [ +"UNKNOWN", +"TRENDING_IN_COLLABORATORS", +"TRENDING_IN_DOMAIN", +"FREQUENTLY_VIEWED", +"FREQUENTLY_EDITED", +"NEW_UPDATES", +"NEW_COMMENTS", +"EVENT_DESCRIPTION", +"EVENT_ATTACHMENT", +"EVENT_METADATA_ATTACHMENT", +"MINED_DOCUMENT", +"NEW_MENTIONS", +"NEW_SHARES" +], +"enumDescriptions": [ +"Unknown justification.", +"Popular documents within collaborators.", +"Popular documents within the domain.", +"Documents being reviewed frequently by the current user .", +"Documents being edited frequently by the current user .", +"Documents updated since user's last visit.", +"Documents that receive comments since user's last visit.", +"Documents in the calendar event description.", +"Documents in the calendar event attachments section.", +"Documents attached in calendar event metadata instead of the attachment section. Event metadata is not visible to the final user. Enterprise assist uses this metadata to store auto-generated documents such as meeting notes.", +"Documents mined, and so, probably related to the request context. For example, this category includes documents related to a meeting.", +"Documents that contains mentions of the user.", +"Documents that are shared with the user." +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCommonPerson": { +"description": "Common representation of a person.", +"id": "EnterpriseTopazSidekickCommonPerson", +"properties": { +"birthday": { +"$ref": "EnterpriseTopazSidekickCommonPersonBirthday", +"description": "The birthday." +}, +"cellPhone": { +"description": "Cell phone number.", +"type": "string" +}, +"department": { +"description": "The department the person works in (e.g. Engineering).", +"type": "string" +}, +"deskLocation": { +"description": "Desk location (e.g. US-MTV-PR55-5-5B1I).", +"type": "string" +}, +"deskPhone": { +"description": "Work desk phone number.", +"type": "string" +}, +"displayName": { +"description": "The full name.", +"type": "string" +}, +"email": { +"description": "Email.", +"type": "string" +}, +"familyName": { +"description": "The last name.", +"type": "string" +}, +"fullAddress": { +"description": "The fully formatted address (e.g. 1255 Pear Avenue, Mountain View 94043, United States).", +"type": "string" +}, +"gaiaId": { +"deprecated": true, +"description": "This field is deprecated. The obfuscated_id should be used instead.", +"format": "int64", +"type": "string" +}, +"givenName": { +"description": "The first name.", +"type": "string" +}, +"jobTitle": { +"description": "The person's job title (e.g. Software Engineer).", +"type": "string" +}, +"manager": { +"$ref": "EnterpriseTopazSidekickCommonPerson", +"description": "The manager." +}, +"obfuscatedId": { +"description": "The obfuscated GAIA ID.", +"type": "string" +}, +"photoUrl": { +"description": "The URL for the Focus profile picture.", +"type": "string" +}, +"streetAddress": { +"description": "The street address (e.g. 1255 Pear Avenue).", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickCommonPersonBirthday": { +"id": "EnterpriseTopazSidekickCommonPersonBirthday", +"properties": { +"value": { +"description": "Unstructured birthday.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickConflictingEventsCardProto": { +"description": "Conflicting meetings card proto.", +"id": "EnterpriseTopazSidekickConflictingEventsCardProto", +"properties": { +"conflictingEvent": { +"description": "All the events that conflict with main_event.", +"items": { +"$ref": "EnterpriseTopazSidekickAgendaEntry" +}, +"type": "array" +}, +"mainEvent": { +"$ref": "EnterpriseTopazSidekickAgendaEntry", +"description": "The event identified as being the most important." +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickDocumentGroup": { +"description": "Represents a mapping between a document type and its corresponding documents. Use for Work in Progress card in v1 homepage.", +"id": "EnterpriseTopazSidekickDocumentGroup", +"properties": { +"groupType": { +"deprecated": true, +"description": "Document group type", +"enum": [ +"UNKNOWN_TYPE", +"ALL" +], +"enumDescriptions": [ +"Unknown type.", +"A mix of all the document types." +], +"type": "string" +}, +"personalizedDocument": { +"description": "The list of corresponding documents.", +"items": { +"$ref": "EnterpriseTopazSidekickCommonDocument" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickDocumentPerCategoryList": { +"id": "EnterpriseTopazSidekickDocumentPerCategoryList", +"properties": { +"documents": { +"items": { +"$ref": "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry" +}, +"type": "array" +}, +"helpMessage": { +"description": "Localized message explaining how the documents were derived (e.g. from the last 30 days activity). This field is optional.", +"type": "string" +}, +"listType": { +"enum": [ +"UNKNOWN_LIST_TYPE", +"MENTIONS", +"SHARES", +"NEEDS_ATTENTION", +"VIEWS", +"EDITS" +], +"enumDescriptions": [ +"", +"All documents in the list correspond to one of the mention categories.", +"All documents in the list correspond to one of the share categories.", +"A mixture of document categories that correspond to documents that need the users attention (e.g. documents that have been explicitly shared with the user but have not been viewed and documents where the user was mentioned but has not replied).", +"All documents in the list correspond to one of the view categories.", +"All documents in the list correspond to one of the edit categories." +], +"type": "string" +}, +"listTypeDescription": { +"description": "Description of the types of documents present in the list.", +"type": "string" +}, +"responseMessage": { +"description": "Response message in case no documents are present in the card.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry": { +"id": "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry", +"properties": { +"category": { +"enum": [ +"UNKNOWN_DOCUMENT", +"ACTIONABLE", +"VIEWED", +"REPLIED", +"MENTION_VIEWED", +"MENTION_REPLIED", +"MENTION_NOT_VIEWED", +"SHARED_AND_VIEWED", +"SHARED_NOT_VIEWED", +"EDITED" +], +"enumDeprecated": [ +false, +true, +false, +true, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"", +"", +"", +"", +"Mention categories. The mention has been viewed by the user, but the user has not replied.", +"The user has replied to the mention.", +"The mention has not been viewed by the user.", +"Share categories. Consists of documents that have been explicitly shared with the user. Document has been viewed.", +"Document has not been viewed.", +"Document has been edited." +], +"type": "string" +}, +"document": { +"$ref": "EnterpriseTopazSidekickCommonDocument" +}, +"rationale": { +"description": "Reason this document was selected.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickFindMeetingTimeCardProto": { +"description": "Response to find meeting time among a set of people.", +"id": "EnterpriseTopazSidekickFindMeetingTimeCardProto", +"properties": { +"commonAvailableTimeSlots": { +"description": "Slots when all attendees have availability.", +"items": { +"$ref": "EnterpriseTopazSidekickTimeSlot" +}, +"type": "array" +}, +"invitees": { +"description": "Invitees to the event.", +"items": { +"$ref": "EnterpriseTopazSidekickPerson" +}, +"type": "array" +}, +"requester": { +"$ref": "EnterpriseTopazSidekickPerson", +"description": "Requester." +}, +"scheduledMeeting": { +"$ref": "EnterpriseTopazSidekickScheduledMeeting", +"description": "Details about the scheduled meeting, if one exists." +}, +"skippedInvitees": { +"description": "Invitees that have been skipped in the computation, most likely because they are groups.", +"items": { +"$ref": "EnterpriseTopazSidekickPerson" +}, +"type": "array" +}, +"timeBoundaries": { +"$ref": "EnterpriseTopazSidekickTimeSlot", +"description": "Min and max timestamp used to find a common available timeslot." +}, +"timezoneId": { +"description": "Timezone ID.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickGap": { +"id": "EnterpriseTopazSidekickGap", +"properties": { +"displayRemainingTime": { +"description": "Localized time string in the format: 1 hour 15 minutes", +"type": "string" +}, +"endTime": { +"description": "Localized time string in the format:(Locale CZ) 8:30 odp.", +"type": "string" +}, +"endTimeMs": { +"format": "uint64", +"type": "string" +}, +"remainingTime": { +"format": "google-duration", +"type": "string" +}, +"startTime": { +"description": "Localized time string in the format:(Locale CZ) 8:30 odp.", +"type": "string" +}, +"startTimeMs": { +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickGenericAnswerCard": { +"id": "EnterpriseTopazSidekickGenericAnswerCard", +"properties": { +"answer": { +"description": "The answer.", +"type": "string" +}, +"title": { +"description": "Title or header of the card.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickGetAndKeepAheadCardProto": { +"description": "Get and keep ahead card", +"id": "EnterpriseTopazSidekickGetAndKeepAheadCardProto", +"properties": { +"declinedEvents": { +"$ref": "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents" +}, +"mentionedDocuments": { +"$ref": "EnterpriseTopazSidekickDocumentPerCategoryList" +}, +"sharedDocuments": { +"$ref": "EnterpriseTopazSidekickDocumentPerCategoryList" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents": { +"description": "A list of events where all guests declined.", +"id": "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents", +"properties": { +"events": { +"items": { +"$ref": "EnterpriseTopazSidekickAgendaEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickMeetingNotesCardError": { +"description": "Errors in the creation of meeting notes.", +"id": "EnterpriseTopazSidekickMeetingNotesCardError", +"properties": { +"description": { +"description": "The description of the reason why create-meeting-notes failed.", +"type": "string" +}, +"event": { +"$ref": "EnterpriseTopazSidekickAgendaEntry", +"description": "The event to request meeting notes creation" +}, +"reason": { +"description": "The reason why create-meeting-notes failed.", +"enum": [ +"NONE", +"NOT_OWNER", +"UNKNOWN" +], +"enumDescriptions": [ +"No reason (default value).", +"The user is not an owner.", +"Unknown reason." +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickMeetingNotesCardProto": { +"description": "Information about the meeting notes created.", +"id": "EnterpriseTopazSidekickMeetingNotesCardProto", +"properties": { +"event": { +"$ref": "EnterpriseTopazSidekickAgendaEntry", +"description": "The event to request meeting notes creation." +}, +"fileId": { +"description": "Google Drive ID (a.k.a. resource ID) of the file.", +"type": "string" +}, +"title": { +"description": "Title we want to show for meeting notes in the answer card", +"type": "string" +}, +"url": { +"description": "New URL.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickMeetingNotesCardRequest": { +"description": "Meeting notes card request.", +"id": "EnterpriseTopazSidekickMeetingNotesCardRequest", +"properties": { +"canCreateFor": { +"description": "Who are the meeting notes created for.", +"items": { +"enum": [ +"UNKNOWN", +"MYSELF", +"ALL_ATTENDEES" +], +"enumDescriptions": [ +"Unknown (default).", +"For the requester.", +"For all the meeting attendees." +], +"type": "string" +}, +"type": "array" +}, +"error": { +"$ref": "EnterpriseTopazSidekickMeetingNotesCardError", +"description": "The error and reason if known error occured." +}, +"event": { +"$ref": "EnterpriseTopazSidekickAgendaEntry", +"description": "The event to request meeting notes creation" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickNlpMetadata": { +"description": "Metadata about the NLP interpretation of the query.", +"id": "EnterpriseTopazSidekickNlpMetadata", +"properties": { +"confidence": { +"description": "Confidence of the interpretation that generated this card.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo": { +"description": "Metadata for disambiguation.", +"id": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo", +"properties": { +"disambiguation": { +"description": "A list of people that also matched the query. This list is not complete.", +"items": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson" +}, +"type": "array" +}, +"name": { +"description": "The name that was extracted from the query. This may be in the form of the given name, last name, full name, LDAP, or email address. This name can be considered suitable for displaying to the user and can largely be considered to be normalized (e.g. \"Bob's\" -> \"Bob\").", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson": { +"description": "A person that also matches the query, but was not selected due to a lower affinity with the requesting user.", +"id": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson", +"properties": { +"person": { +"$ref": "EnterpriseTopazSidekickCommonPerson", +"description": "The profile of this person." +}, +"query": { +"description": "The query that can be used to produce an answer card with the same attribute, but for this person.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader": { +"description": "Recommended header to display for the card.", +"id": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader", +"properties": { +"title": { +"description": "The suggested title to display. This defaults to the user's query.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard": { +"description": "An answer card for a single person.", +"id": "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard", +"properties": { +"answer": { +"deprecated": true, +"description": "List of answers.", +"items": { +"$ref": "SafeHtmlProto" +}, +"type": "array" +}, +"answerText": { +"$ref": "EnterpriseTopazSidekickAnswerAnswerList", +"description": "List of answers." +}, +"disambiguationInfo": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo", +"description": "Disambiguation information." +}, +"header": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader", +"description": "The header to display for the card." +}, +"responseStatus": { +"description": "The response status.", +"enum": [ +"UNKNOWN", +"SUCCESS", +"MISSING_PERSON", +"MISSING_DATA" +], +"enumDescriptions": [ +"Unknown.", +"Success.", +"No such person was found in the user's domain.", +"A person was found to match the query, but an answer could not be obtained." +], +"type": "string" +}, +"statusMessage": { +"description": "Localized user friendly message to display to the user in the case of missing data or an error.", +"type": "string" +}, +"subject": { +"$ref": "EnterpriseTopazSidekickCommonPerson", +"description": "The profile of the person that was the subject of the query." +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard": { +"description": "An answer card for a list of people that are related to the subject of the query.", +"id": "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard", +"properties": { +"disambiguationInfo": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo", +"description": "Disambiguation information." +}, +"header": { +"$ref": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader", +"description": "The header to display for the card." +}, +"relatedPeople": { +"description": "A list of people that are related to the query subject.", +"items": { +"$ref": "EnterpriseTopazSidekickCommonPerson" +}, +"type": "array" +}, +"relationType": { +"description": "Defines the type of relation the list of people have with the subject of the card.", +"enum": [ +"UNKNOWN", +"DIRECT_REPORTS", +"MANAGER", +"PEERS" +], +"enumDescriptions": [ +"Unknown.", +"Direct reports.", +"The manager.", +"The teammates/peers of the subject." +], +"type": "string" +}, +"responseStatus": { +"description": "The response status.", +"enum": [ +"UNKNOWN", +"SUCCESS", +"MISSING_PERSON", +"MISSING_DATA" +], +"enumDescriptions": [ +"Unknown.", +"Success.", +"No such person was found in the user's domain.", +"A person was found to match the query, but an answer could not be obtained." +], +"type": "string" +}, +"statusMessage": { +"description": "Localized user friendly message to display to the user in the case of missing data or an error.", +"type": "string" +}, +"subject": { +"$ref": "EnterpriseTopazSidekickCommonPerson", +"description": "The profile of the person that was the subject of the query." +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPeopleDisambiguationCard": { +"id": "EnterpriseTopazSidekickPeopleDisambiguationCard", +"properties": { +"person": { +"description": "Candidate persons for the query.", +"items": { +"$ref": "EnterpriseTopazSidekickCommonPerson" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPerson": { +"description": "Person.", +"id": "EnterpriseTopazSidekickPerson", +"properties": { +"affinityLevel": { +"description": "The level of affinity this person has with the requesting user.", +"enum": [ +"UNKNOWN", +"LOW", +"MEDIUM", +"HIGH" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"attendingStatus": { +"description": "Attendance status of the person when included in a meeting event.", +"enum": [ +"AWAITING", +"YES", +"NO", +"MAYBE" +], +"enumDescriptions": [ +"Awaiting for the user to set the status.", +"Attending.", +"Not attending.", +"Tentatively attending." +], +"type": "string" +}, +"email": { +"description": "Email.", +"type": "string" +}, +"gaiaId": { +"deprecated": true, +"description": "Gaia id.", +"format": "int64", +"type": "string" +}, +"isGroup": { +"description": "Whether the invitee is a group.", +"type": "boolean" +}, +"name": { +"description": "Name.", +"type": "string" +}, +"obfuscatedGaiaId": { +"description": "Obfuscated Gaia id.", +"type": "string" +}, +"photoUrl": { +"description": "Absolute URL to the profile photo of the person.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPersonProfileCard": { +"id": "EnterpriseTopazSidekickPersonProfileCard", +"properties": { +"relatedPeople": { +"items": { +"$ref": "EnterpriseTopazSidekickPersonProfileCardRelatedPeople" +}, +"type": "array" +}, +"subject": { +"$ref": "EnterpriseTopazSidekickCommonPerson", +"description": "The subject of the card." +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPersonProfileCardRelatedPeople": { +"id": "EnterpriseTopazSidekickPersonProfileCardRelatedPeople", +"properties": { +"relatedPerson": { +"description": "Related people.", +"items": { +"$ref": "EnterpriseTopazSidekickCommonPerson" +}, +"type": "array" +}, +"relation": { +"description": "Relation type.", +"enum": [ +"UNKNOWN", +"MANAGER", +"DIRECT_REPORT" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickPersonalizedDocsCardProto": { +"description": "Personalized docs card proto.", +"id": "EnterpriseTopazSidekickPersonalizedDocsCardProto", +"properties": { +"documentGroup": { +"description": "Document group.", +"items": { +"$ref": "EnterpriseTopazSidekickDocumentGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickRankingParams": { +"description": "Ranking params.", +"id": "EnterpriseTopazSidekickRankingParams", +"properties": { +"endTimeMs": { +"description": "The end-time that this object will expect to occur. If the type is marked as FIXED, then this end-time will persist after bidding. If the type is marked as FLEXIBLE, this field is NOT expected to be filled and will be filled in after it has won a bid. Expected to be set when type is set to FIXED.", +"format": "uint64", +"type": "string" +}, +"priority": { +"description": "The priority to determine between objects that have the same start_time_ms The lower-value of priority == ranked higher. Max-priority = 0. Expected to be set for all types.", +"enum": [ +"UNKNOWN", +"CRITICAL", +"IMPORTANT", +"HIGH", +"NORMAL", +"BEST_EFFORT" +], +"enumDescriptions": [ +"Unknown (default).", +"Critical.", +"Important.", +"High.", +"Normal.", +"Best effort." +], +"type": "string" +}, +"score": { +"description": "The score of the card to be used to break priority-ties", +"format": "float", +"type": "number" +}, +"spanMs": { +"description": "The span that this card will take in the stream Expected to be set when type is set to FLEXIBLE.", +"format": "uint64", +"type": "string" +}, +"startTimeMs": { +"description": "The start-time that this object will bid-for If the type is marked as FIXED, then this start-time will persist after bidding. If the type is marked as FLEXIBLE, then it will occur at the given time or sometime after the requested time. Expected to be set for all types.", +"format": "uint64", +"type": "string" +}, +"type": { +"description": "The packing type of this object.", +"enum": [ +"FIXED", +"FLEXIBLE" +], +"enumDescriptions": [ +"Fixed, i.e., the card is time sensitive.", +"Flexible, i.e., the card is not time sensitive." +], +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickRecentDocumentsCardProto": { +"id": "EnterpriseTopazSidekickRecentDocumentsCardProto", +"properties": { +"document": { +"items": { +"$ref": "EnterpriseTopazSidekickCommonDocument" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickScheduledMeeting": { +"description": "Details about scheduled meetings.", +"id": "EnterpriseTopazSidekickScheduledMeeting", +"properties": { +"meetingLocation": { +"description": "The meeting location.", +"type": "string" +}, +"meetingTime": { +"$ref": "EnterpriseTopazSidekickTimeSlot", +"description": "The meeting time slot." +}, +"meetingTitle": { +"description": "The meeting title.", +"type": "string" +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickShareMeetingDocsCardProto": { +"description": "Share meeting docs card proto.", +"id": "EnterpriseTopazSidekickShareMeetingDocsCardProto", +"properties": { +"document": { +"description": "Documents to share for the given meeting.", +"items": { +"$ref": "EnterpriseTopazSidekickCommonDocument" +}, +"type": "array" +}, +"event": { +"$ref": "EnterpriseTopazSidekickAgendaEntry", +"description": "Event." +} +}, +"type": "object" +}, +"EnterpriseTopazSidekickTimeSlot": { +"description": "Slot of time.", +"id": "EnterpriseTopazSidekickTimeSlot", +"properties": { +"endTimeDay": { +"description": "Day end time at the user's timezone.", +"type": "string" +}, +"endTimeHourAndMinute": { +"description": "Hour and minute of the end time at the user's timezone.", +"type": "string" +}, +"endTimeInMillis": { +"description": "End time in milliseconds.", +"format": "int64", +"type": "string" +}, +"startTimeDay": { +"description": "Day start time at user's timezone.", +"type": "string" +}, +"startTimeHourAndMinute": { +"description": "Hour and minute of the start time at the user's timezone.", +"type": "string" +}, +"startTimeInMillis": { +"description": "Start time in milliseconds.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EnumOperatorOptions": { +"description": "Used to provide a search operator for enum properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched. For example, if you provide no operator for a *priority* enum property with possible values *p0* and *p1*, a query that contains the term *p0* returns items that have *p0* as the value of the *priority* property, as well as any items that contain the string *p0* in other fields. If you provide an operator name for the enum, such as *priority*, then search users can use that operator to refine results to only items that have *p0* as this property's value, with the query *priority:p0*.", +"id": "EnumOperatorOptions", +"properties": { +"operatorName": { +"description": "Indicates the operator name required in the query in order to isolate the enum property. For example, if operatorName is *priority* and the property's name is *priorityVal*, then queries like *priority:* show results only where the value of the property named *priorityVal* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"EnumPropertyOptions": { +"description": "The options for enum properties, which allow you to define a restricted set of strings to match user queries, set rankings for those string values, and define an operator name to be paired with those strings so that users can narrow results to only items with a specific value. For example, for items in a request tracking system with priority information, you could define *p0* as an allowable enum value and tie this enum to the operator name *priority* so that search users could add *priority:p0* to their query to restrict the set of results to only those items indexed with the value *p0*.", +"id": "EnumPropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "EnumOperatorOptions", +"description": "If set, describes how the enum should be used as a search operator." +}, +"orderedRanking": { +"description": "Used to specify the ordered ranking for the enumeration that determines how the integer values provided in the possible EnumValuePairs are used to rank results. If specified, integer values must be provided for all possible EnumValuePair values given for this property. Can only be used if isRepeatable is false.", +"enum": [ +"NO_ORDER", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"There is no ranking order for the property. Results aren't adjusted by this property's value.", +"This property is ranked in ascending order. Lower values indicate lower ranking.", +"This property is ranked in descending order. Lower values indicate higher ranking." +], +"type": "string" +}, +"possibleValues": { +"description": "The list of possible values for the enumeration property. All EnumValuePairs must provide a string value. If you specify an integer value for one EnumValuePair, then all possible EnumValuePairs must provide an integer value. Both the string value and integer value must be unique over all possible values. Once set, possible values cannot be removed or modified. If you supply an ordered ranking and think you might insert additional enum values in the future, leave gaps in the initial integer values to allow adding a value in between previously registered values. The maximum number of elements is 100.", +"items": { +"$ref": "EnumValuePair" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnumValuePair": { +"description": "The enumeration value pair defines two things: a required string value and an optional integer value. The string value defines the necessary query term required to retrieve that item, such as *p0* for a priority item. The integer value determines the ranking of that string value relative to other enumerated values for the same property. For example, you might associate *p0* with *0* and define another enum pair such as *p1* and *1*. You must use the integer value in combination with ordered ranking to set the ranking of a given value relative to other enumerated values for the same property name. Here, a ranking order of DESCENDING for *priority* properties results in a ranking boost for items indexed with a value of *p0* compared to items indexed with a value of *p1*. Without a specified ranking order, the integer value has no effect on item ranking.", +"id": "EnumValuePair", +"properties": { +"integerValue": { +"description": "The integer value of the EnumValuePair which must be non-negative. Optional.", +"format": "int32", +"type": "integer" +}, +"stringValue": { +"description": "The string value of the EnumValuePair. The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"EnumValues": { +"description": "List of enum values.", +"id": "EnumValues", +"properties": { +"values": { +"description": "The maximum allowable length for string values is 32 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ErrorInfo": { +"description": "Error information about the response.", +"id": "ErrorInfo", +"properties": { +"errorMessages": { +"items": { +"$ref": "ErrorMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"ErrorMessage": { +"description": "Error message per source response.", +"id": "ErrorMessage", +"properties": { +"errorMessage": { +"type": "string" +}, +"source": { +"$ref": "Source" +} +}, +"type": "object" +}, +"FacetBucket": { +"description": "A bucket in a facet is the basic unit of operation. A bucket can comprise either a single value OR a contiguous range of values, depending on the type of the field bucketed. FacetBucket is currently used only for returning the response object.", +"id": "FacetBucket", +"properties": { +"count": { +"description": "Number of results that match the bucket value. Counts are only returned for searches when count accuracy is ensured. Cloud Search does not guarantee facet counts for any query and facet counts might be present only intermittently, even for identical queries. Do not build dependencies on facet count existence; instead use facet ount percentages which are always returned.", +"format": "int32", +"type": "integer" +}, +"filter": { +"$ref": "Filter", +"description": "Filter to be passed in the search request if the corresponding bucket is selected." +}, +"percentage": { +"description": "Percent of results that match the bucket value. The returned value is between (0-100], and is rounded down to an integer if fractional. If the value is not explicitly returned, it represents a percentage value that rounds to 0. Percentages are returned for all searches, but are an estimate. Because percentages are always returned, you should render percentages instead of counts.", +"format": "int32", +"type": "integer" +}, +"value": { +"$ref": "Value" +} +}, +"type": "object" +}, +"FacetOptions": { +"description": "Specifies operators to return facet results for. There will be one FacetResult for every source_name/object_type/operator_name combination.", +"id": "FacetOptions", +"properties": { +"integerFacetingOptions": { +"$ref": "IntegerFacetingOptions", +"description": "If set, describes integer faceting options for the given integer property. The corresponding integer property in the schema should be marked isFacetable. The number of buckets returned would be minimum of this and num_facet_buckets." +}, +"numFacetBuckets": { +"description": "Maximum number of facet buckets that should be returned for this facet. Defaults to 10. Maximum value is 100.", +"format": "int32", +"type": "integer" +}, +"objectType": { +"description": "If object_type is set, only those objects of that type will be used to compute facets. If empty, then all objects will be used to compute facets.", +"type": "string" +}, +"operatorName": { +"description": "The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions", +"type": "string" +}, +"sourceName": { +"description": "Source name to facet on. Format: datasources/{source_id} If empty, all data sources will be used.", +"type": "string" +} +}, +"type": "object" +}, +"FacetResult": { +"description": "Source specific facet response", +"id": "FacetResult", +"properties": { +"buckets": { +"description": "FacetBuckets for values in response containing at least a single result with the corresponding filter.", +"items": { +"$ref": "FacetBucket" +}, +"type": "array" +}, +"objectType": { +"description": "Object type for which facet results are returned. Can be empty.", +"type": "string" +}, +"operatorName": { +"description": "The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions", +"type": "string" +}, +"sourceName": { +"description": "Source name for which facet results are returned. Will not be empty.", +"type": "string" +} +}, +"type": "object" +}, +"FieldViolation": { +"id": "FieldViolation", +"properties": { +"description": { +"description": "The description of the error.", +"type": "string" +}, +"field": { +"description": "Path of field with violation.", +"type": "string" +} +}, +"type": "object" +}, +"Filter": { +"description": "A generic way of expressing filters in a query, which supports two approaches: **1. Setting a ValueFilter.** The name must match an operator_name defined in the schema for your data source. **2. Setting a CompositeFilter.** The filters are evaluated using the logical operator. The top-level operators can only be either an AND or a NOT. AND can appear only at the top-most level. OR can appear only under a top-level AND.", +"id": "Filter", +"properties": { +"compositeFilter": { +"$ref": "CompositeFilter" +}, +"valueFilter": { +"$ref": "ValueFilter" +} +}, +"type": "object" +}, +"FilterOptions": { +"description": "Filter options to be applied on query.", +"id": "FilterOptions", +"properties": { +"filter": { +"$ref": "Filter", +"description": "Generic filter to restrict the search, such as `lang:en`, `site:xyz`." +}, +"objectType": { +"description": "If object_type is set, only objects of that type are returned. This should correspond to the name of the object that was registered within the definition of schema. The maximum length is 256 characters.", +"type": "string" +} +}, +"type": "object" +}, +"FreshnessOptions": { +"description": "Indicates which freshness property to use when adjusting search ranking for an item. Fresher, more recent dates indicate higher quality. Use the freshness option property that best works with your data. For fileshare documents, last modified time is most relevant. For calendar event data, the time when the event occurs is a more relevant freshness indicator. In this way, calendar events that occur closer to the time of the search query are considered higher quality and ranked accordingly.", +"id": "FreshnessOptions", +"properties": { +"freshnessDuration": { +"description": "The duration after which an object should be considered stale. The default value is 180 days (in seconds).", +"format": "google-duration", +"type": "string" +}, +"freshnessProperty": { +"description": "This property indicates the freshness level of the object in the index. If set, this property must be a top-level property within the property definitions and it must be a timestamp type or date type. Otherwise, the Indexing API uses updateTime as the freshness indicator. The maximum length is 256 characters. When a property is used to calculate freshness, the value defaults to 2 years from the current time.", +"type": "string" +} +}, +"type": "object" +}, +"GSuitePrincipal": { +"id": "GSuitePrincipal", +"properties": { +"gsuiteDomain": { +"description": "This principal represents all users of the Google Workspace domain of the customer.", +"type": "boolean" +}, +"gsuiteGroupEmail": { +"description": "This principal references a Google Workspace group name.", +"type": "string" +}, +"gsuiteUserEmail": { +"description": "This principal references a Google Workspace user account.", +"type": "string" +} +}, +"type": "object" +}, +"GetCustomerIndexStatsResponse": { +"id": "GetCustomerIndexStatsResponse", +"properties": { +"averageIndexedItemCount": { +"description": "Average item count for the given date range for which billing is done.", +"format": "int64", +"type": "string" +}, +"stats": { +"description": "Summary of indexed item counts, one for each day in the requested range.", +"items": { +"$ref": "CustomerIndexStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetCustomerQueryStatsResponse": { +"id": "GetCustomerQueryStatsResponse", +"properties": { +"stats": { +"items": { +"$ref": "CustomerQueryStats" +}, +"type": "array" +}, +"totalQueryCount": { +"description": "Total successful query count (status code 200) for the given date range.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GetCustomerSearchApplicationStatsResponse": { +"description": "Response format for search application stats for a customer.", +"id": "GetCustomerSearchApplicationStatsResponse", +"properties": { +"averageSearchApplicationCount": { +"description": "Average search application count for the given date range.", +"format": "int64", +"type": "string" +}, +"stats": { +"description": "Search application stats by date.", +"items": { +"$ref": "CustomerSearchApplicationStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetCustomerSessionStatsResponse": { +"id": "GetCustomerSessionStatsResponse", +"properties": { +"stats": { +"items": { +"$ref": "CustomerSessionStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetCustomerUserStatsResponse": { +"id": "GetCustomerUserStatsResponse", +"properties": { +"stats": { +"items": { +"$ref": "CustomerUserStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetDataSourceIndexStatsResponse": { +"id": "GetDataSourceIndexStatsResponse", +"properties": { +"averageIndexedItemCount": { +"description": "Average item count for the given date range for which billing is done.", +"format": "int64", +"type": "string" +}, +"stats": { +"description": "Summary of indexed item counts, one for each day in the requested range.", +"items": { +"$ref": "DataSourceIndexStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetSearchApplicationQueryStatsResponse": { +"description": "Response format for getting query stats for a search application between given dates.", +"id": "GetSearchApplicationQueryStatsResponse", +"properties": { +"stats": { +"description": "Query stats per date for a search application.", +"items": { +"$ref": "SearchApplicationQueryStats" +}, +"type": "array" +}, +"totalQueryCount": { +"description": "Total successful query count (status code 200) for the given date range.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GetSearchApplicationSessionStatsResponse": { +"id": "GetSearchApplicationSessionStatsResponse", +"properties": { +"stats": { +"items": { +"$ref": "SearchApplicationSessionStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetSearchApplicationUserStatsResponse": { +"id": "GetSearchApplicationUserStatsResponse", +"properties": { +"stats": { +"items": { +"$ref": "SearchApplicationUserStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"HtmlOperatorOptions": { +"description": "Used to provide a search operator for html properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "HtmlOperatorOptions", +"properties": { +"operatorName": { +"description": "Indicates the operator name required in the query in order to isolate the html property. For example, if operatorName is *subject* and the property's name is *subjectLine*, then queries like *subject:* show results only where the value of the property named *subjectLine* matches **. By contrast, a search that uses the same ** without an operator return all items where ** matches the value of any html properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"HtmlPropertyOptions": { +"description": "The options for html properties.", +"id": "HtmlPropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "HtmlOperatorOptions", +"description": "If set, describes how the property should be used as a search operator." +}, +"retrievalImportance": { +"$ref": "RetrievalImportance", +"description": "Indicates the search quality importance of the tokens within the field when used for retrieval. Can only be set to DEFAULT or NONE." +} +}, +"type": "object" +}, +"HtmlValues": { +"description": "List of html values.", +"id": "HtmlValues", +"properties": { +"values": { +"description": "The maximum allowable length for html values is 2048 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"IndexItemOptions": { +"id": "IndexItemOptions", +"properties": { +"allowUnknownGsuitePrincipals": { +"description": "Specifies if the index request should allow Google Workspace principals that do not exist or are deleted.", +"type": "boolean" +} +}, +"type": "object" +}, +"IndexItemRequest": { +"id": "IndexItemRequest", +"properties": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"indexItemOptions": { +"$ref": "IndexItemOptions" +}, +"item": { +"$ref": "Item", +"description": "The name of the item. Format: datasources/{source_id}/items/{item_id}" +}, +"mode": { +"description": "Required. The RequestMode for this request.", +"enum": [ +"UNSPECIFIED", +"SYNCHRONOUS", +"ASYNCHRONOUS" +], +"enumDescriptions": [ +"The priority is not specified in the update request. Leaving priority unspecified results in an update failure.", +"For real-time updates.", +"For changes that are executed after the response is sent back to the caller." +], +"type": "string" +} +}, +"type": "object" +}, +"InitializeCustomerRequest": { +"description": "Request message for `InitializeCustomer` method.", +"id": "InitializeCustomerRequest", +"properties": {}, +"type": "object" +}, +"IntegerFacetingOptions": { +"description": "Used to specify integer faceting options.", +"id": "IntegerFacetingOptions", +"properties": { +"integerBuckets": { +"description": "Buckets for given integer values should be in strictly ascending order. For example, if values supplied are (1,5,10,100), the following facet buckets will be formed {<1, [1,5), [5-10), [10-100), >=100}.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"IntegerOperatorOptions": { +"description": "Used to provide a search operator for integer properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "IntegerOperatorOptions", +"properties": { +"greaterThanOperatorName": { +"description": "Indicates the operator name required in the query in order to isolate the integer property using the greater-than operator. For example, if greaterThanOperatorName is *priorityabove* and the property's name is *priorityVal*, then queries like *priorityabove:* show results only where the value of the property named *priorityVal* is greater than **. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +}, +"lessThanOperatorName": { +"description": "Indicates the operator name required in the query in order to isolate the integer property using the less-than operator. For example, if lessThanOperatorName is *prioritybelow* and the property's name is *priorityVal*, then queries like *prioritybelow:* show results only where the value of the property named *priorityVal* is less than **. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +}, +"operatorName": { +"description": "Indicates the operator name required in the query in order to isolate the integer property. For example, if operatorName is *priority* and the property's name is *priorityVal*, then queries like *priority:* show results only where the value of the property named *priorityVal* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"IntegerPropertyOptions": { +"description": "The options for integer properties.", +"id": "IntegerPropertyOptions", +"properties": { +"integerFacetingOptions": { +"$ref": "IntegerFacetingOptions", +"description": "If set, describes integer faceting options for the given integer property. The corresponding integer property should be marked isFacetable." +}, +"maximumValue": { +"description": "The maximum value of the property. The minimum and maximum values for the property are used to rank results according to the ordered ranking. Indexing requests with values greater than the maximum are accepted and ranked with the same weight as items indexed with the maximum value.", +"format": "int64", +"type": "string" +}, +"minimumValue": { +"description": "The minimum value of the property. The minimum and maximum values for the property are used to rank results according to the ordered ranking. Indexing requests with values less than the minimum are accepted and ranked with the same weight as items indexed with the minimum value.", +"format": "int64", +"type": "string" +}, +"operatorOptions": { +"$ref": "IntegerOperatorOptions", +"description": "If set, describes how the integer should be used as a search operator." +}, +"orderedRanking": { +"description": "Used to specify the ordered ranking for the integer. Can only be used if isRepeatable is false.", +"enum": [ +"NO_ORDER", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"There is no ranking order for the property. Results are not adjusted by this property's value.", +"This property is ranked in ascending order. Lower values indicate lower ranking.", +"This property is ranked in descending order. Lower values indicate higher ranking." +], +"type": "string" +} +}, +"type": "object" +}, +"IntegerValues": { +"description": "List of integer values.", +"id": "IntegerValues", +"properties": { +"values": { +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Interaction": { +"description": "Represents an interaction between a user and an item.", +"id": "Interaction", +"properties": { +"interactionTime": { +"description": "The time when the user acted on the item. If multiple actions of the same type exist for a single user, only the most recent action is recorded.", +"format": "google-datetime", +"type": "string" +}, +"principal": { +"$ref": "Principal", +"description": "The user that acted on the item." +}, +"type": { +"enum": [ +"UNSPECIFIED", +"VIEW", +"EDIT" +], +"enumDescriptions": [ +"Invalid value.", +"This interaction indicates the user viewed the item.", +"This interaction indicates the user edited the item." +], +"type": "string" +} +}, +"type": "object" +}, +"Item": { +"description": "Represents a single object that is an item in the search index, such as a file, folder, or a database record.", +"id": "Item", +"properties": { +"acl": { +"$ref": "ItemAcl", +"description": "Access control list for this item." +}, +"content": { +"$ref": "ItemContent", +"description": "Item content to be indexed and made text searchable." +}, +"itemType": { +"description": "The type for this item.", +"enum": [ +"UNSPECIFIED", +"CONTENT_ITEM", +"CONTAINER_ITEM", +"VIRTUAL_CONTAINER_ITEM" +], +"enumDescriptions": [ +"", +"An item that is indexed for the only purpose of serving information. These items cannot be referred in containerName or inheritAclFrom fields.", +"An item that gets indexed and whose purpose is to supply other items with ACLs and/or contain other items.", +"An item that does not get indexed, but otherwise has the same purpose as CONTAINER_ITEM." +], +"type": "string" +}, +"metadata": { +"$ref": "ItemMetadata", +"description": "The metadata information." +}, +"name": { +"description": "The name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.", +"type": "string" +}, +"payload": { +"description": "Additional state connector can store for this item. The maximum length is 10000 bytes.", +"format": "byte", +"type": "string" +}, +"queue": { +"description": "Queue this item belongs to. The maximum length is 100 characters.", +"type": "string" +}, +"status": { +"$ref": "ItemStatus", +"description": "Status of the item. Output only field." +}, +"structuredData": { +"$ref": "ItemStructuredData", +"description": "The structured data for the item that should conform to a registered object definition in the schema for the data source." +}, +"version": { +"description": "Required. The indexing system stores the version from the datasource as a byte string and compares the Item version in the index to the version of the queued Item using lexical ordering. Cloud Search Indexing won't index or delete any queued item with a version value that is less than or equal to the version of the currently indexed item. The maximum length for this field is 1024 bytes. For information on how item version affects the deletion process, refer to [Handle revisions after manual deletes](https://developers.google.com/cloud-search/docs/guides/operations).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ItemAcl": { +"description": "Access control list information for the item. For more information see [Map ACLs](https://developers.google.com/cloud-search/docs/guides/acls).", +"id": "ItemAcl", +"properties": { +"aclInheritanceType": { +"description": "Sets the type of access rules to apply when an item inherits its ACL from a parent. This should always be set in tandem with the inheritAclFrom field. Also, when the inheritAclFrom field is set, this field should be set to a valid AclInheritanceType.", +"enum": [ +"NOT_APPLICABLE", +"CHILD_OVERRIDE", +"PARENT_OVERRIDE", +"BOTH_PERMIT" +], +"enumDescriptions": [ +"The default value when this item does not inherit an ACL. Use NOT_APPLICABLE when inheritAclFrom is empty. An item without ACL inheritance can still have ACLs supplied by its own readers and deniedReaders fields.", +"During an authorization conflict, the ACL of the child item determines its read access.", +"During an authorization conflict, the ACL of the parent item specified in the inheritAclFrom field determines read access.", +"Access is granted only if this item and the parent item specified in the inheritAclFrom field both permit read access." +], +"type": "string" +}, +"deniedReaders": { +"description": "List of principals who are explicitly denied access to the item in search results. While principals are denied access by default, use denied readers to handle exceptions and override the list allowed readers. The maximum number of elements is 100.", +"items": { +"$ref": "Principal" +}, +"type": "array" +}, +"inheritAclFrom": { +"description": "The name of the item to inherit the Access Permission List (ACL) from. Note: ACL inheritance *only* provides access permissions to child items and does not define structural relationships, nor does it provide convenient ways to delete large groups of items. Deleting an ACL parent from the index only alters the access permissions of child items that reference the parent in the inheritAclFrom field. The item is still in the index, but may not visible in search results. By contrast, deletion of a container item also deletes all items that reference the container via the containerName field. The maximum length for this field is 1536 characters.", +"type": "string" +}, +"owners": { +"description": "Optional. List of owners for the item. This field has no bearing on document access permissions. It does, however, offer a slight ranking boosts items where the querying user is an owner. The maximum number of elements is 5.", +"items": { +"$ref": "Principal" +}, +"type": "array" +}, +"readers": { +"description": "List of principals who are allowed to see the item in search results. Optional if inheriting permissions from another item or if the item is not intended to be visible, such as virtual containers. The maximum number of elements is 1000.", +"items": { +"$ref": "Principal" +}, +"type": "array" +} +}, +"type": "object" +}, +"ItemContent": { +"description": "Content of an item to be indexed and surfaced by Cloud Search. Only UTF-8 encoded strings are allowed as inlineContent. If the content is uploaded and not binary, it must be UTF-8 encoded.", +"id": "ItemContent", +"properties": { +"contentDataRef": { +"$ref": "UploadItemRef", +"description": "Upload reference ID of a previously uploaded content via write method." +}, +"contentFormat": { +"enum": [ +"UNSPECIFIED", +"HTML", +"TEXT", +"RAW" +], +"enumDescriptions": [ +"Invalid value.", +"contentFormat is HTML.", +"contentFormat is free text.", +"contentFormat is raw bytes." +], +"type": "string" +}, +"hash": { +"description": "Hashing info calculated and provided by the API client for content. Can be used with the items.push method to calculate modified state. The maximum length is 2048 characters.", +"type": "string" +}, +"inlineContent": { +"description": "Content that is supplied inlined within the update method. The maximum length is 102400 bytes (100 KiB).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ItemCountByStatus": { +"id": "ItemCountByStatus", +"properties": { +"count": { +"description": "Number of items matching the status code.", +"format": "int64", +"type": "string" +}, +"indexedItemsCount": { +"description": "Number of items matching the status code for which billing is done. This excludes virtual container items from the total count. This count would not be applicable for items with ERROR or NEW_ITEM status code.", +"format": "int64", +"type": "string" +}, +"statusCode": { +"description": "Status of the items.", +"enum": [ +"CODE_UNSPECIFIED", +"ERROR", +"MODIFIED", +"NEW_ITEM", +"ACCEPTED" +], +"enumDescriptions": [ +"Input-only value. Used with Items.list to list all items in the queue, regardless of status.", +"Error encountered by Cloud Search while processing this item. Details of the error are in repositoryError.", +"Item has been modified in the repository, and is out of date with the version previously accepted into Cloud Search.", +"Item is known to exist in the repository, but is not yet accepted by Cloud Search. An item can be in this state when Items.push has been called for an item of this name that did not exist previously.", +"API has accepted the up-to-date data of this item." +], +"type": "string" +} +}, +"type": "object" +}, +"ItemMetadata": { +"description": "Available metadata fields for the item.", +"id": "ItemMetadata", +"properties": { +"containerName": { +"description": "The name of the container for this item. Deletion of the container item leads to automatic deletion of this item. Note: ACLs are not inherited from a container item. To provide ACL inheritance for an item, use the inheritAclFrom field. The maximum length is 1536 characters.", +"type": "string" +}, +"contentLanguage": { +"description": "The BCP-47 language code for the item, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. The maximum length is 32 characters.", +"type": "string" +}, +"contextAttributes": { +"description": "A set of named attributes associated with the item. This can be used for influencing the ranking of the item based on the context in the request. The maximum number of elements is 10.", +"items": { +"$ref": "ContextAttribute" +}, +"type": "array" +}, +"createTime": { +"description": "The time when the item was created in the source repository.", +"format": "google-datetime", +"type": "string" +}, +"hash": { +"description": "Hashing value provided by the API caller. This can be used with the items.push method to calculate modified state. The maximum length is 2048 characters.", +"type": "string" +}, +"interactions": { +"description": "A list of interactions for the item. Interactions are used to improve Search quality, but are not exposed to end users. The maximum number of elements is 1000.", +"items": { +"$ref": "Interaction" +}, +"type": "array" +}, +"keywords": { +"description": "Additional keywords or phrases that should match the item. Used internally for user generated content. The maximum number of elements is 100. The maximum length is 8192 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"mimeType": { +"description": "The original mime-type of ItemContent.content in the source repository. The maximum length is 256 characters.", +"type": "string" +}, +"objectType": { +"description": "The type of the item. This should correspond to the name of an object definition in the schema registered for the data source. For example, if the schema for the data source contains an object definition with name 'document', then item indexing requests for objects of that type should set objectType to 'document'. The maximum length is 256 characters.", +"type": "string" +}, +"searchQualityMetadata": { +"$ref": "SearchQualityMetadata", +"description": "Additional search quality metadata of the item" +}, +"sourceRepositoryUrl": { +"description": "Link to the source repository serving the data. Seach results apply this link to the title. Whitespace or special characters may cause Cloud Seach result links to trigger a redirect notice; to avoid this, encode the URL. The maximum length is 2048 characters.", +"type": "string" +}, +"title": { +"description": "The title of the item. If given, this will be the displayed title of the Search result. The maximum length is 2048 characters.", +"type": "string" +}, +"updateTime": { +"description": "The time when the item was last modified in the source repository.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ItemStatus": { +"description": "This contains item's status and any errors.", +"id": "ItemStatus", +"properties": { +"code": { +"description": "Status code.", +"enum": [ +"CODE_UNSPECIFIED", +"ERROR", +"MODIFIED", +"NEW_ITEM", +"ACCEPTED" +], +"enumDescriptions": [ +"Input-only value. Used with Items.list to list all items in the queue, regardless of status.", +"Error encountered by Cloud Search while processing this item. Details of the error are in repositoryError.", +"Item has been modified in the repository, and is out of date with the version previously accepted into Cloud Search.", +"Item is known to exist in the repository, but is not yet accepted by Cloud Search. An item can be in this state when Items.push has been called for an item of this name that did not exist previously.", +"API has accepted the up-to-date data of this item." +], +"type": "string" +}, +"processingErrors": { +"description": "Error details in case the item is in ERROR state.", +"items": { +"$ref": "ProcessingError" +}, +"type": "array" +}, +"repositoryErrors": { +"description": "Repository error reported by connector.", +"items": { +"$ref": "RepositoryError" +}, +"type": "array" +} +}, +"type": "object" +}, +"ItemStructuredData": { +"description": "Available structured data fields for the item.", +"id": "ItemStructuredData", +"properties": { +"hash": { +"description": "Hashing value provided by the API caller. This can be used with the items.push method to calculate modified state. The maximum length is 2048 characters.", +"type": "string" +}, +"object": { +"$ref": "StructuredDataObject", +"description": "The structured data object that should conform to a registered object definition in the schema for the data source." +} +}, +"type": "object" +}, +"ListDataSourceResponse": { +"id": "ListDataSourceResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"sources": { +"items": { +"$ref": "DataSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListItemNamesForUnmappedIdentityResponse": { +"id": "ListItemNamesForUnmappedIdentityResponse", +"properties": { +"itemNames": { +"items": { +"type": "string" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListItemsResponse": { +"id": "ListItemsResponse", +"properties": { +"items": { +"items": { +"$ref": "Item" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListQuerySourcesResponse": { +"description": "List sources response.", +"id": "ListQuerySourcesResponse", +"properties": { +"nextPageToken": { +"type": "string" +}, +"sources": { +"items": { +"$ref": "QuerySource" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSearchApplicationsResponse": { +"id": "ListSearchApplicationsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"searchApplications": { +"items": { +"$ref": "SearchApplication" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUnmappedIdentitiesResponse": { +"id": "ListUnmappedIdentitiesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unmappedIdentities": { +"items": { +"$ref": "UnmappedIdentity" +}, +"type": "array" +} +}, +"type": "object" +}, +"MapInfo": { +"description": "Geo information used for rendering a map that shows the user's work location.", +"id": "MapInfo", +"properties": { +"lat": { +"description": "Latitude in degrees", +"format": "double", +"type": "number" +}, +"locationUrl": { +"$ref": "SafeUrlProto", +"description": "URL to a view of a map centered on the user's work location in Campus Maps (for google.com) or Google Maps (external)." +}, +"long": { +"description": "Longitude in degrees", +"format": "double", +"type": "number" +}, +"mapTile": { +"description": "MapTiles for the area around a user's work location", +"items": { +"$ref": "MapTile" +}, +"type": "array" +}, +"zoom": { +"description": "The zoom level of the map. A constant zoom value of 18 is used for now to match the zoom of the map shown on a Moma Teams Profile page", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"MapTile": { +"description": "Information used to render a map tile image in the proper location on a map.", +"id": "MapTile", +"properties": { +"imageUrl": { +"$ref": "SafeUrlProto", +"description": "URL to an image file containing an office layout of the user's location for their organization, if one is available. For google.com, this image is from Corp Campus Maps." +}, +"tileX": { +"description": "Map tile x coordinate", +"format": "double", +"type": "number" +}, +"tileY": { +"description": "Map tile y coordinate", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"MatchRange": { +"description": "Matched range of a snippet [start, end).", +"id": "MatchRange", +"properties": { +"end": { +"description": "End of the match in the snippet.", +"format": "int32", +"type": "integer" +}, +"start": { +"description": "Starting position of the match in the snippet.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Media": { +"description": "Media resource.", +"id": "Media", +"properties": { +"resourceName": { +"description": "Name of the media resource.", +"type": "string" +} +}, +"type": "object" +}, +"Metadata": { +"description": "Metadata of a matched search result.", +"id": "Metadata", +"properties": { +"createTime": { +"description": "The creation time for this document or object in the search result.", +"format": "google-datetime", +"type": "string" +}, +"displayOptions": { +"$ref": "ResultDisplayMetadata", +"description": "Options that specify how to display a structured data search result." +}, +"fields": { +"description": "Indexed fields in structured data, returned as a generic named property.", +"items": { +"$ref": "NamedProperty" +}, +"type": "array" +}, +"mimeType": { +"description": "Mime type of the search result.", +"type": "string" +}, +"objectType": { +"description": "Object type of the search result.", +"type": "string" +}, +"owner": { +"$ref": "Person", +"description": "Owner (usually creator) of the document or object of the search result." +}, +"source": { +"$ref": "Source", +"description": "The named source for the result, such as Gmail." +}, +"thumbnailUrl": { +"description": "The thumbnail URL of the result.", +"type": "string" +}, +"updateTime": { +"description": "The last modified date for the object in the search result. If not set in the item, the value returned here is empty. When `updateTime` is used for calculating freshness and is not set, this value defaults to 2 years from the current time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Metaline": { +"description": "A metaline is a list of properties that are displayed along with the search result to provide context.", +"id": "Metaline", +"properties": { +"properties": { +"description": "The list of displayed properties for the metaline. The maximum number of properties is 5.", +"items": { +"$ref": "DisplayedProperty" +}, +"type": "array" +} +}, +"type": "object" +}, +"Name": { +"description": "A person's name.", +"id": "Name", +"properties": { +"displayName": { +"description": "The read-only display name formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header.", +"type": "string" +} +}, +"type": "object" +}, +"NamedProperty": { +"description": "A typed name-value pair for structured data. The type of the value should be the same as the registered type for the `name` property in the object definition of `objectType`.", +"id": "NamedProperty", +"properties": { +"booleanValue": { +"type": "boolean" +}, +"dateValues": { +"$ref": "DateValues" +}, +"doubleValues": { +"$ref": "DoubleValues" +}, +"enumValues": { +"$ref": "EnumValues" +}, +"htmlValues": { +"$ref": "HtmlValues" +}, +"integerValues": { +"$ref": "IntegerValues" +}, +"name": { +"description": "The name of the property. This name should correspond to the name of the property that was registered for object definition in the schema. The maximum allowable length for this property is 256 characters.", +"type": "string" +}, +"objectValues": { +"$ref": "ObjectValues" +}, +"textValues": { +"$ref": "TextValues" +}, +"timestampValues": { +"$ref": "TimestampValues" +} +}, +"type": "object" +}, +"ObjectDefinition": { +"description": "The definition for an object within a data source.", +"id": "ObjectDefinition", +"properties": { +"name": { +"description": "The name for the object, which then defines its type. Item indexing requests should set the objectType field equal to this value. For example, if *name* is *Document*, then indexing requests for items of type Document should set objectType equal to *Document*. Each object definition must be uniquely named within a schema. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters.", +"type": "string" +}, +"options": { +"$ref": "ObjectOptions", +"description": "The optional object-specific options." +}, +"propertyDefinitions": { +"description": "The property definitions for the object. The maximum number of elements is 1000.", +"items": { +"$ref": "PropertyDefinition" +}, +"type": "array" +} +}, +"type": "object" +}, +"ObjectDisplayOptions": { +"description": "The display options for an object.", +"id": "ObjectDisplayOptions", +"properties": { +"metalines": { +"description": "Defines the properties that are displayed in the metalines of the search results. The property values are displayed in the order given here. If a property holds multiple values, all of the values are displayed before the next properties. For this reason, it is a good practice to specify singular properties before repeated properties in this list. All of the properties must set is_returnable to true. The maximum number of metalines is 3.", +"items": { +"$ref": "Metaline" +}, +"type": "array" +}, +"objectDisplayLabel": { +"description": "The user friendly label to display in the search result to indicate the type of the item. This is OPTIONAL; if not provided, an object label isn't displayed on the context line of the search results. The maximum length is 64 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ObjectOptions": { +"description": "The options for an object.", +"id": "ObjectOptions", +"properties": { +"displayOptions": { +"$ref": "ObjectDisplayOptions", +"description": "The options that determine how the object is displayed in the Cloud Search results page." +}, +"freshnessOptions": { +"$ref": "FreshnessOptions", +"description": "The freshness options for an object." +}, +"suggestionFilteringOperators": { +"description": "Operators that can be used to filter suggestions. For Suggest API, only operators mentioned here will be honored in the FilterOptions. Only TEXT and ENUM operators are supported. NOTE: \"objecttype\", \"type\" and \"mimetype\" are already supported. This property is to configure schema specific operators. Even though this is an array, only one operator can be specified. This is an array for future extensibility. Operators mapping to multiple properties within the same object are not supported. If the operator spans across different object types, this option has to be set once for each object definition.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ObjectPropertyOptions": { +"description": "The options for object properties.", +"id": "ObjectPropertyOptions", +"properties": { +"subobjectProperties": { +"description": "The properties of the sub-object. These properties represent a nested object. For example, if this property represents a postal address, the subobjectProperties might be named *street*, *city*, and *state*. The maximum number of elements is 1000.", +"items": { +"$ref": "PropertyDefinition" +}, +"type": "array" +} +}, +"type": "object" +}, +"ObjectValues": { +"description": "List of object values.", +"id": "ObjectValues", +"properties": { +"values": { +"items": { +"$ref": "StructuredDataObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"PeoplePromotionCard": { +"id": "PeoplePromotionCard", +"properties": { +"people": { +"items": { +"$ref": "PersonCore" +}, +"type": "array" +} +}, +"type": "object" +}, +"PeopleSuggestion": { +"description": "This field contains information about the person being suggested.", +"id": "PeopleSuggestion", +"properties": { +"person": { +"$ref": "Person", +"description": "Suggested person. All fields of the person object might not be populated." +} +}, +"type": "object" +}, +"Person": { +"description": "Object to represent a person.", +"id": "Person", +"properties": { +"emailAddresses": { +"description": "The person's email addresses", +"items": { +"$ref": "EmailAddress" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the person to provide information about. See [`People.get`](https://developers.google.com/people/api/rest/v1/people/get) from the Google People API.", +"type": "string" +}, +"obfuscatedId": { +"description": "Obfuscated ID of a person.", +"type": "string" +}, +"personNames": { +"description": "The person's name", +"items": { +"$ref": "Name" +}, +"type": "array" +}, +"phoneNumbers": { +"description": "The person's phone numbers", +"items": { +"$ref": "PhoneNumber" +}, +"type": "array" +}, +"photos": { +"description": "A person's read-only photo. A picture shown next to the person's name to help others recognize the person in search results.", +"items": { +"$ref": "Photo" +}, +"type": "array" +} +}, +"type": "object" +}, +"PersonCore": { +"description": "Information for rendering a person. NEXT ID: 37", +"id": "PersonCore", +"properties": { +"addressMeAs": { +"description": "Instructions for how to address this person (e.g. custom pronouns). For google.com this is a set of pronouns from a defined list of options.", +"type": "string" +}, +"adminTo": { +"description": "People the profile owner is an admin to. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", +"items": { +"$ref": "PersonCore" +}, +"type": "array" +}, +"admins": { +"description": "The profile owner's admins in no particular order. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", +"items": { +"$ref": "PersonCore" +}, +"type": "array" +}, +"availabilityStatus": { +"enum": [ +"UNKNOWN", +"OUT_OF_OFFICE", +"OUTSIDE_WORKING_HOURS", +"AVAILABLE" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"birthday": { +"$ref": "Date", +"description": "Person birthday." +}, +"calendarUrl": { +"$ref": "SafeUrlProto", +"description": "The URL to open the profile owner's primary calendar." +}, +"chatUrl": { +"$ref": "SafeUrlProto", +"description": "The URL to start a chat conversation with the profile owner. For google.com this is a Hangouts URL." +}, +"costCenter": { +"description": "Person's cost center as a string, e.g. \"926: Googler Apps\".", +"type": "string" +}, +"department": { +"description": "The person's Organization department, e.g. \"People Operations\". For google.com this is usually called \"area\".", +"type": "string" +}, +"directReports": { +"description": "A subset of the profile owner's direct reports. The number of entities here may be less than total_direct_reports_count, because typically ProfileResponse does not include all the person's reports, if there are too many to retrieve efficiently. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", +"items": { +"$ref": "PersonCore" +}, +"type": "array" +}, +"dottedLineManagers": { +"description": "The profile owner's direct dotted line managers in no particular order. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", +"items": { +"$ref": "PersonCore" +}, +"type": "array" +}, +"dottedLineReports": { +"description": "A subset of the profile owner's dotted-line reports. The number of entities here may be less than total_dlr_count. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", +"items": { +"$ref": "PersonCore" +}, +"type": "array" +}, +"emails": { +"description": "E-mail addresses of the person. The primary or preferred email should be first.", +"items": { +"type": "string" +}, +"type": "array" +}, +"employeeId": { +"description": "Person's employee number (external ID of type \"organization\") For google.com this is the badge number (e.g. 2 for Larry Page).", +"type": "string" +}, +"fingerprint": { +"description": "A fingerprint used by PAPI to reliably determine if a resource has changed Externally it is used as part of the etag.", +"type": "string" +}, +"ftePermille": { +"description": "Full-time equivalent (in \u2030) (e.g. 800 for a person who's working 80%).", +"format": "int64", +"type": "string" +}, +"geoLocation": { +"$ref": "MapInfo" +}, +"gmailUrl": { +"type": "string" +}, +"jobTitle": { +"description": "Profile owner's job title (e.g. \"Software Engineer\"). For google.com this is the Workday preferred job title.", +"type": "string" +}, +"keywordTypes": { +"description": "List of keys to use from the map 'keywords'.", +"items": { +"type": "string" +}, +"type": "array" +}, +"keywords": { +"additionalProperties": { +"type": "string" +}, +"description": "Custom keywords the domain admin has added.", +"type": "object" +}, +"links": { +"description": "Custom links the profile owner has added.", +"items": { +"$ref": "EnterpriseTopazFrontendTeamsLink" +}, +"type": "array" +}, +"location": { +"description": "Detailed desk location within the company. For google.com this is the desk location code (e.g. \"DE-MUC-ARP-6T2-6T2C0C\") if the person has a desk.", +"type": "string" +}, +"managers": { +"description": "The profile owner's management chain from top to bottom, where managers[0] is the CEO, manager[N-2] is the person's manager's manager and managers[N-1] is the person's direct manager. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", +"items": { +"$ref": "PersonCore" +}, +"type": "array" +}, +"mission": { +"description": "Custom mission statement the profile owner has added.", +"type": "string" +}, +"name": { +"description": "Human-readable Unicode display name.", +"type": "string" +}, +"officeLocation": { +"description": "Office/building identifier within the company. For google.com this is the office code (e.g. \"DE-MUC-ARP\").", +"type": "string" +}, +"personId": { +"description": "The person's obfuscated Gaia ID.", +"type": "string" +}, +"phoneNumbers": { +"items": { +"$ref": "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber" +}, +"type": "array" +}, +"photoUrl": { +"$ref": "SafeUrlProto", +"description": "Person photo." +}, +"postalAddress": { +"description": "Postal address of office/building.", +"type": "string" +}, +"totalDirectReportsCount": { +"description": "Total count of the profile owner's direct reports.", +"format": "int32", +"type": "integer" +}, +"totalDlrCount": { +"description": "Total count of the profile owner's dotted-line reports.", +"format": "int32", +"type": "integer" +}, +"totalFteCount": { +"description": "The sum of all profile owner's reports and their own full-time-equivalents in \u2030 (e.g. 1800 if one report is working 80% and profile owner 100%).", +"format": "int64", +"type": "string" +}, +"username": { +"description": "External ID of type \"login_id\" for the profile. For google.com this is the username/LDAP.", +"type": "string" +}, +"waldoComeBackTime": { +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"PhoneNumber": { +"description": "A person's Phone Number", +"id": "PhoneNumber", +"properties": { +"phoneNumber": { +"description": "The phone number of the person.", +"type": "string" +}, +"type": { +"enum": [ +"OTHER", +"MOBILE", +"OFFICE" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"Photo": { +"description": "A person's photo.", +"id": "Photo", +"properties": { +"url": { +"description": "The URL of the photo.", +"type": "string" +} +}, +"type": "object" +}, +"PollItemsRequest": { +"id": "PollItemsRequest", +"properties": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"limit": { +"description": "Maximum number of items to return. The maximum value is 100 and the default value is 20.", +"format": "int32", +"type": "integer" +}, +"queue": { +"description": "Queue name to fetch items from. If unspecified, PollItems will fetch from 'default' queue. The maximum length is 100 characters.", +"type": "string" +}, +"statusCodes": { +"description": "Limit the items polled to the ones with these statuses.", +"items": { +"enum": [ +"CODE_UNSPECIFIED", +"ERROR", +"MODIFIED", +"NEW_ITEM", +"ACCEPTED" +], +"enumDescriptions": [ +"Input-only value. Used with Items.list to list all items in the queue, regardless of status.", +"Error encountered by Cloud Search while processing this item. Details of the error are in repositoryError.", +"Item has been modified in the repository, and is out of date with the version previously accepted into Cloud Search.", +"Item is known to exist in the repository, but is not yet accepted by Cloud Search. An item can be in this state when Items.push has been called for an item of this name that did not exist previously.", +"API has accepted the up-to-date data of this item." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PollItemsResponse": { +"id": "PollItemsResponse", +"properties": { +"items": { +"description": "Set of items from the queue available for connector to process. These items have the following subset of fields populated: version metadata.hash structured_data.hash content.hash payload status queue", +"items": { +"$ref": "Item" +}, +"type": "array" +} +}, +"type": "object" +}, +"Principal": { +"description": "Reference to a user, group, or domain.", +"id": "Principal", +"properties": { +"groupResourceName": { +"description": "This principal is a group identified using an external identity. The name field must specify the group resource name with this format: identitysources/{source_id}/groups/{ID}", +"type": "string" +}, +"gsuitePrincipal": { +"$ref": "GSuitePrincipal", +"description": "This principal is a Google Workspace user, group or domain." +}, +"userResourceName": { +"description": "This principal is a user identified using an external identity. The name field must specify the user resource name with this format: identitysources/{source_id}/users/{ID}", +"type": "string" +} +}, +"type": "object" +}, +"ProcessingError": { +"id": "ProcessingError", +"properties": { +"code": { +"description": "Error code indicating the nature of the error.", +"enum": [ +"PROCESSING_ERROR_CODE_UNSPECIFIED", +"MALFORMED_REQUEST", +"UNSUPPORTED_CONTENT_FORMAT", +"INDIRECT_BROKEN_ACL", +"ACL_CYCLE" +], +"enumDescriptions": [ +"Input only value. Use this value in Items.", +"Item's ACL, metadata, or content is malformed or in invalid state. FieldViolations contains more details on where the problem is.", +"Countent format is unsupported.", +"Items with incomplete ACL information due to inheriting other items with broken ACL or having groups with unmapped descendants.", +"ACL inheritance graph formed a cycle." +], +"type": "string" +}, +"errorMessage": { +"description": "The description of the error.", +"type": "string" +}, +"fieldViolations": { +"description": "In case the item fields are invalid, this field contains the details about the validation errors.", +"items": { +"$ref": "FieldViolation" +}, +"type": "array" +} +}, +"type": "object" +}, +"PropertyDefinition": { +"description": "The definition of a property within an object.", +"id": "PropertyDefinition", +"properties": { +"booleanPropertyOptions": { +"$ref": "BooleanPropertyOptions" +}, +"datePropertyOptions": { +"$ref": "DatePropertyOptions" +}, +"displayOptions": { +"$ref": "PropertyDisplayOptions", +"description": "The options that determine how the property is displayed in the Cloud Search results page if it's specified to be displayed in the object's display options." +}, +"doublePropertyOptions": { +"$ref": "DoublePropertyOptions" +}, +"enumPropertyOptions": { +"$ref": "EnumPropertyOptions" +}, +"htmlPropertyOptions": { +"$ref": "HtmlPropertyOptions" +}, +"integerPropertyOptions": { +"$ref": "IntegerPropertyOptions" +}, +"isFacetable": { +"description": "Indicates that the property can be used for generating facets. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, enum, integer, and text properties.", +"type": "boolean" +}, +"isRepeatable": { +"description": "Indicates that multiple values are allowed for the property. For example, a document only has one description but can have multiple comments. Cannot be true for properties whose type is a boolean. If set to false, properties that contain more than one value cause the indexing request for that item to be rejected.", +"type": "boolean" +}, +"isReturnable": { +"description": "Indicates that the property identifies data that should be returned in search results via the Query API. If set to *true*, indicates that Query API users can use matching property fields in results. However, storing fields requires more space allocation and uses more bandwidth for search queries, which impacts performance over large datasets. Set to *true* here only if the field is needed for search results. Cannot be true for properties whose type is an object.", +"type": "boolean" +}, +"isSortable": { +"description": "Indicates that the property can be used for sorting. Cannot be true for properties that are repeatable. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, date, double, integer, and timestamp properties.", +"type": "boolean" +}, +"isSuggestable": { +"description": "Indicates that the property can be used for generating query suggestions.", +"type": "boolean" +}, +"isWildcardSearchable": { +"description": "Indicates that users can perform wildcard search for this property. Only supported for Text properties. IsReturnable must be true to set this option. In a given datasource maximum of 5 properties can be marked as is_wildcard_searchable. For more details, see [Define object properties](https://developers.google.com/cloud-search/docs/guides/schema-guide#properties)", +"type": "boolean" +}, +"name": { +"description": "The name of the property. Item indexing requests sent to the Indexing API should set the property name equal to this value. For example, if name is *subject_line*, then indexing requests for document items with subject fields should set the name for that field equal to *subject_line*. Use the name as the identifier for the object property. Once registered as a property for an object, you cannot re-use this name for another property within that object. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters.", +"type": "string" +}, +"objectPropertyOptions": { +"$ref": "ObjectPropertyOptions" +}, +"textPropertyOptions": { +"$ref": "TextPropertyOptions" +}, +"timestampPropertyOptions": { +"$ref": "TimestampPropertyOptions" +} +}, +"type": "object" +}, +"PropertyDisplayOptions": { +"description": "The display options for a property.", +"id": "PropertyDisplayOptions", +"properties": { +"displayLabel": { +"description": "The user friendly label for the property that is used if the property is specified to be displayed in ObjectDisplayOptions. If provided, the display label is shown in front of the property values when the property is part of the object display options. For example, if the property value is '1', the value by itself may not be useful context for the user. If the display name given was 'priority', then the user sees 'priority : 1' in the search results which provides clear context to search users. This is OPTIONAL; if not given, only the property values are displayed. The maximum length is 64 characters.", +"type": "string" +} +}, +"type": "object" +}, +"PushItem": { +"description": "Represents an item to be pushed to the indexing queue.", +"id": "PushItem", +"properties": { +"contentHash": { +"description": "Content hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.", +"type": "string" +}, +"metadataHash": { +"description": "The metadata hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.", +"type": "string" +}, +"payload": { +"description": "Provides additional document state information for the connector, such as an alternate repository ID and other metadata. The maximum length is 8192 bytes.", +"format": "byte", +"type": "string" +}, +"queue": { +"description": "Queue to which this item belongs. The `default` queue is chosen if this field is not specified. The maximum length is 512 characters.", +"type": "string" +}, +"repositoryError": { +"$ref": "RepositoryError", +"description": "Populate this field to store Connector or repository error details. This information is displayed in the Admin Console. This field may only be populated when the Type is REPOSITORY_ERROR." +}, +"structuredDataHash": { +"description": "Structured data hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.", +"type": "string" +}, +"type": { +"description": "The type of the push operation that defines the push behavior.", +"enum": [ +"UNSPECIFIED", +"MODIFIED", +"NOT_MODIFIED", +"REPOSITORY_ERROR", +"REQUEUE" +], +"enumDescriptions": [ +"Default UNSPECIFIED. Specifies that the push operation should not modify ItemStatus", +"Indicates that the repository document has been modified or updated since the previous update call. This changes status to MODIFIED state for an existing item. If this is called on a non existing item, the status is changed to NEW_ITEM.", +"Item in the repository has not been modified since the last update call. This push operation will set status to ACCEPTED state.", +"Connector is facing a repository error regarding this item. Change status to REPOSITORY_ERROR state. Item is unreserved and rescheduled at a future time determined by exponential backoff.", +"Call push with REQUEUE only for items that have been reserved. This action unreserves the item and resets its available time to the wall clock time." +], +"type": "string" +} +}, +"type": "object" +}, +"PushItemRequest": { +"id": "PushItemRequest", +"properties": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"item": { +"$ref": "PushItem", +"description": "Item to push onto the queue." +} +}, +"type": "object" +}, +"QueryActivity": { +"description": "Details about a user's query activity.", +"id": "QueryActivity", +"properties": { +"query": { +"description": "User input query to be logged/removed.", +"type": "string" +} +}, +"type": "object" +}, +"QueryCountByStatus": { +"id": "QueryCountByStatus", +"properties": { +"count": { +"format": "int64", +"type": "string" +}, +"statusCode": { +"description": "This represents the http status code.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"QueryInterpretation": { +"id": "QueryInterpretation", +"properties": { +"interpretationType": { +"enum": [ +"NONE", +"BLEND", +"REPLACE" +], +"enumDescriptions": [ +"Neither the natural language interpretation, nor a broader version of the query is used to fetch the search results.", +"The results from original query are blended with other results. The reason for blending these other results with the results from original query is populated in the 'Reason' field below.", +"The results from original query are replaced. The reason for replacing the results from original query is populated in the 'Reason' field below." +], +"type": "string" +}, +"interpretedQuery": { +"description": "The interpretation of the query used in search. For example, queries with natural language intent like \"email from john\" will be interpreted as \"from:john source:mail\". This field will not be filled when the reason is NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY.", +"type": "string" +}, +"reason": { +"description": "The reason for interpretation of the query. This field will not be UNSPECIFIED if the interpretation type is not NONE.", +"enum": [ +"UNSPECIFIED", +"QUERY_HAS_NATURAL_LANGUAGE_INTENT", +"NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY" +], +"enumDescriptions": [ +"", +"Natural language interpretation of the query is used to fetch the search results.", +"Query and document terms similarity is used to selectively broaden the query to retrieve additional search results since enough results were not found for the user query. Interpreted query will be empty for this case." +], +"type": "string" +} +}, +"type": "object" +}, +"QueryInterpretationConfig": { +"description": "Default options to interpret user query.", +"id": "QueryInterpretationConfig", +"properties": { +"forceDisableSupplementalResults": { +"description": "Set this flag to disable supplemental results retrieval, setting a flag here will not retrieve supplemental results for queries associated with a given search application. If this flag is set to True, it will take precedence over the option set at Query level. For the default value of False, query level flag will set the correct interpretation for supplemental results.", +"type": "boolean" +}, +"forceVerbatimMode": { +"description": "Enable this flag to turn off all internal optimizations like natural language (NL) interpretation of queries, supplemental results retrieval, and usage of synonyms including custom ones. If this flag is set to True, it will take precedence over the option set at Query level. For the default value of False, query level flag will set the correct interpretation for verbatim mode.", +"type": "boolean" +} +}, +"type": "object" +}, +"QueryInterpretationOptions": { +"description": "Options to interpret user query.", +"id": "QueryInterpretationOptions", +"properties": { +"disableNlInterpretation": { +"description": "Flag to disable natural language (NL) interpretation of queries. Default is false, Set to true to disable natural language interpretation. NL interpretation only applies to predefined datasources.", +"type": "boolean" +}, +"disableSupplementalResults": { +"description": "Use this flag to disable supplemental results for a query. Supplemental results setting chosen at SearchApplication level will take precedence if set to True.", +"type": "boolean" +}, +"enableVerbatimMode": { +"description": "Enable this flag to turn off all internal optimizations like natural language (NL) interpretation of queries, supplemental result retrieval, and usage of synonyms including custom ones. Nl interpretation will be disabled if either one of the two flags is true.", +"type": "boolean" +} +}, +"type": "object" +}, +"QueryItem": { +"description": "Information relevant only to a query entry.", +"id": "QueryItem", +"properties": { +"isSynthetic": { +"description": "True if the text was generated by means other than a previous user search.", +"type": "boolean" +} +}, +"type": "object" +}, +"QueryOperator": { +"description": "The definition of a operator that can be used in a Search/Suggest request.", +"id": "QueryOperator", +"properties": { +"displayName": { +"description": "Display name of the operator", +"type": "string" +}, +"enumValues": { +"description": "Potential list of values for the opeatror field. This field is only filled when we can safely enumerate all the possible values of this operator.", +"items": { +"type": "string" +}, +"type": "array" +}, +"greaterThanOperatorName": { +"description": "Indicates the operator name that can be used to isolate the property using the greater-than operator.", +"type": "string" +}, +"isFacetable": { +"description": "Can this operator be used to get facets.", +"type": "boolean" +}, +"isRepeatable": { +"description": "Indicates if multiple values can be set for this property.", +"type": "boolean" +}, +"isReturnable": { +"description": "Will the property associated with this facet be returned as part of search results.", +"type": "boolean" +}, +"isSortable": { +"description": "Can this operator be used to sort results.", +"type": "boolean" +}, +"isSuggestable": { +"description": "Can get suggestions for this field.", +"type": "boolean" +}, +"lessThanOperatorName": { +"description": "Indicates the operator name that can be used to isolate the property using the less-than operator.", +"type": "string" +}, +"objectType": { +"description": "The name of the object corresponding to the operator. This field is only filled for schema-specific operators, and is unset for common operators.", +"type": "string" +}, +"operatorName": { +"description": "The name of the operator.", +"type": "string" +}, +"type": { +"description": "The type of the operator.", +"enum": [ +"UNKNOWN", +"INTEGER", +"DOUBLE", +"TIMESTAMP", +"BOOLEAN", +"ENUM", +"DATE", +"TEXT", +"HTML" +], +"enumDescriptions": [ +"Invalid value.", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"QuerySource": { +"description": "List of sources that the user can search using the query API.", +"id": "QuerySource", +"properties": { +"displayName": { +"description": "Display name of the data source.", +"type": "string" +}, +"operators": { +"description": "List of all operators applicable for this source.", +"items": { +"$ref": "QueryOperator" +}, +"type": "array" +}, +"shortName": { +"description": "A short name or alias for the source. This value can be used with the 'source' operator.", +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "The name of the source" +} +}, +"type": "object" +}, +"QuerySuggestion": { +"description": "This field does not contain anything as of now and is just used as an indicator that the suggest result was a phrase completion.", +"id": "QuerySuggestion", +"properties": {}, +"type": "object" +}, +"RemoveActivityRequest": { +"description": "Remove Logged Activity Request.", +"id": "RemoveActivityRequest", +"properties": { +"requestOptions": { +"$ref": "RequestOptions", +"description": "Request options, such as the search application and clientId." +}, +"userActivity": { +"$ref": "UserActivity", +"description": "User Activity containing the data to be deleted." +} +}, +"type": "object" +}, +"RemoveActivityResponse": { +"description": "Remove Logged Activity Response. will return an empty response for now. Will be revisited in later phases.", +"id": "RemoveActivityResponse", +"properties": {}, +"type": "object" +}, +"RepositoryError": { +"description": "Errors when the connector is communicating to the source repository.", +"id": "RepositoryError", +"properties": { +"errorMessage": { +"description": "Message that describes the error. The maximum allowable length of the message is 8192 characters.", +"type": "string" +}, +"httpStatusCode": { +"description": "Error codes. Matches the definition of HTTP status codes.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "The type of error.", +"enum": [ +"UNKNOWN", +"NETWORK_ERROR", +"DNS_ERROR", +"CONNECTION_ERROR", +"AUTHENTICATION_ERROR", +"AUTHORIZATION_ERROR", +"SERVER_ERROR", +"QUOTA_EXCEEDED", +"SERVICE_UNAVAILABLE", +"CLIENT_ERROR" +], +"enumDescriptions": [ +"Unknown error.", +"Unknown or unreachable host.", +"DNS problem, such as the DNS server is not responding.", +"Cannot connect to the repository server.", +"Failed authentication due to incorrect credentials.", +"Service account is not authorized for the repository.", +"Repository server error.", +"Quota exceeded.", +"Server temporarily unavailable.", +"Client-related error, such as an invalid request from the connector to the repository server." +], +"type": "string" +} +}, +"type": "object" +}, +"RequestOptions": { +"description": "Shared request options for all RPC methods.", +"id": "RequestOptions", +"properties": { +"debugOptions": { +"$ref": "DebugOptions", +"description": "Debug options of the request" +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.", +"type": "string" +}, +"searchApplicationId": { +"description": "The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).", +"type": "string" +}, +"timeZone": { +"description": "Current user's time zone id, such as \"America/Los_Angeles\" or \"Australia/Sydney\". These IDs are defined by [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/) project, and currently available in the file [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.", +"type": "string" +} +}, +"type": "object" +}, +"ResetSearchApplicationRequest": { +"id": "ResetSearchApplicationRequest", +"properties": { +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +} +}, +"type": "object" +}, +"ResponseDebugInfo": { +"description": "Debugging information about the response.", +"id": "ResponseDebugInfo", +"properties": { +"formattedDebugInfo": { +"description": "General debug info formatted for display.", +"type": "string" +} +}, +"type": "object" +}, +"RestrictItem": { +"description": "Information relevant only to a restrict entry. NextId: 12", +"id": "RestrictItem", +"properties": { +"driveFollowUpRestrict": { +"$ref": "DriveFollowUpRestrict" +}, +"driveLocationRestrict": { +"$ref": "DriveLocationRestrict" +}, +"driveMimeTypeRestrict": { +"$ref": "DriveMimeTypeRestrict", +"description": "Drive Types." +}, +"driveTimeSpanRestrict": { +"$ref": "DriveTimeSpanRestrict" +}, +"searchOperator": { +"description": "The search restrict (e.g. \"after:2017-09-11 before:2017-09-12\").", +"type": "string" +} +}, +"type": "object" +}, +"ResultCounts": { +"description": "Result count information", +"id": "ResultCounts", +"properties": { +"sourceResultCounts": { +"description": "Result count information for each source with results.", +"items": { +"$ref": "SourceResultCount" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResultDebugInfo": { +"description": "Debugging information about the result.", +"id": "ResultDebugInfo", +"properties": { +"formattedDebugInfo": { +"description": "General debug info formatted for display.", +"type": "string" +} +}, +"type": "object" +}, +"ResultDisplayField": { +"description": "Display Fields for Search Results", +"id": "ResultDisplayField", +"properties": { +"label": { +"description": "The display label for the property.", +"type": "string" +}, +"operatorName": { +"description": "The operator name of the property.", +"type": "string" +}, +"property": { +"$ref": "NamedProperty", +"description": "The name value pair for the property." +} +}, +"type": "object" +}, +"ResultDisplayLine": { +"description": "The collection of fields that make up a displayed line", +"id": "ResultDisplayLine", +"properties": { +"fields": { +"items": { +"$ref": "ResultDisplayField" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResultDisplayMetadata": { +"id": "ResultDisplayMetadata", +"properties": { +"metalines": { +"description": "The metalines content to be displayed with the result.", +"items": { +"$ref": "ResultDisplayLine" +}, +"type": "array" +}, +"objectTypeLabel": { +"description": "The display label for the object.", +"type": "string" +} +}, +"type": "object" +}, +"RetrievalImportance": { +"id": "RetrievalImportance", +"properties": { +"importance": { +"description": "Indicates the ranking importance given to property when it is matched during retrieval. Once set, the token importance of a property cannot be changed.", +"enum": [ +"DEFAULT", +"HIGHEST", +"HIGH", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Treat the match like a body text match.", +"Treat the match like a match against title of the item.", +"Treat the match with higher importance than body text.", +"Treat the match with lower importance than body text.", +"Do not match against this field during retrieval. The property can still be used for operator matching, faceting, and suggest if desired." +], +"type": "string" +} +}, +"type": "object" +}, +"SafeHtmlProto": { +"description": "IMPORTANT: It is unsafe to accept this message from an untrusted source, since it's trivial for an attacker to forge serialized messages that don't fulfill the type's safety contract -- for example, it could contain attacker controlled script. A system which receives a SafeHtmlProto implicitly trusts the producer of the SafeHtmlProto. So, it's generally safe to return this message in RPC responses, but generally unsafe to accept it in RPC requests.", +"id": "SafeHtmlProto", +"properties": { +"privateDoNotAccessOrElseSafeHtmlWrappedValue": { +"description": "IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.", +"type": "string" +} +}, +"type": "object" +}, +"SafeUrlProto": { +"description": "Message containing a string that is safe to use in URL contexts in DOM APIs and HTML documents, where the URL context does not refer to a resource that loads code.", +"id": "SafeUrlProto", +"properties": { +"privateDoNotAccessOrElseSafeUrlWrappedValue": { +"description": "IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.", +"type": "string" +} +}, +"type": "object" +}, +"Schema": { +"description": "The schema definition for a data source.", +"id": "Schema", +"properties": { +"objectDefinitions": { +"description": "The list of top-level objects for the data source. The maximum number of elements is 10.", +"items": { +"$ref": "ObjectDefinition" +}, +"type": "array" +}, +"operationIds": { +"description": "IDs of the Long Running Operations (LROs) currently running for this schema. After modifying the schema, wait for operations to complete before indexing additional content.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScoringConfig": { +"description": "Scoring configurations for a source while processing a Search or Suggest request.", +"id": "ScoringConfig", +"properties": { +"disableFreshness": { +"description": "Whether to use freshness as a ranking signal. By default, freshness is used as a ranking signal. Note that this setting is not available in the Admin UI.", +"type": "boolean" +}, +"disablePersonalization": { +"description": "Whether to personalize the results. By default, personal signals will be used to boost results.", +"type": "boolean" +} +}, +"type": "object" +}, +"SearchApplication": { +"description": "SearchApplication", +"id": "SearchApplication", +"properties": { +"dataSourceRestrictions": { +"description": "Retrictions applied to the configurations. The maximum number of elements is 10.", +"items": { +"$ref": "DataSourceRestriction" +}, +"type": "array" +}, +"defaultFacetOptions": { +"description": "The default fields for returning facet results. The sources specified here also have been included in data_source_restrictions above.", +"items": { +"$ref": "FacetOptions" +}, +"type": "array" +}, +"defaultSortOptions": { +"$ref": "SortOptions", +"description": "The default options for sorting the search results" +}, +"displayName": { +"description": "Display name of the Search Application. The maximum length is 300 characters.", +"type": "string" +}, +"enableAuditLog": { +"description": "Indicates whether audit logging is on/off for requests made for the search application in query APIs.", +"type": "boolean" +}, +"name": { +"description": "The name of the Search Application. Format: searchapplications/{application_id}.", +"type": "string" +}, +"operationIds": { +"description": "Output only. IDs of the Long Running Operations (LROs) currently running for this schema. Output only field.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"queryInterpretationConfig": { +"$ref": "QueryInterpretationConfig", +"description": "The default options for query interpretation" +}, +"returnResultThumbnailUrls": { +"description": "With each result we should return the URI for its thumbnail (when applicable)", +"type": "boolean" +}, +"scoringConfig": { +"$ref": "ScoringConfig", +"description": "Configuration for ranking results." +}, +"sourceConfig": { +"description": "Configuration for a sources specified in data_source_restrictions.", +"items": { +"$ref": "SourceConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchApplicationQueryStats": { +"description": "Search application level query stats per date", +"id": "SearchApplicationQueryStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which query stats were calculated. Stats calculated on the next day close to midnight are returned." +}, +"queryCountByStatus": { +"items": { +"$ref": "QueryCountByStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchApplicationSessionStats": { +"id": "SearchApplicationSessionStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned." +}, +"searchSessionsCount": { +"description": "The count of search sessions on the day", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SearchApplicationUserStats": { +"id": "SearchApplicationUserStats", +"properties": { +"date": { +"$ref": "Date", +"description": "The date for which session stats were calculated. Stats calculated on the next day close to midnight are returned." +}, +"oneDayActiveUsersCount": { +"description": "The count of unique active users in the past one day", +"format": "int64", +"type": "string" +}, +"sevenDaysActiveUsersCount": { +"description": "The count of unique active users in the past seven days", +"format": "int64", +"type": "string" +}, +"thirtyDaysActiveUsersCount": { +"description": "The count of unique active users in the past thirty days", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SearchItemsByViewUrlRequest": { +"id": "SearchItemsByViewUrlRequest", +"properties": { +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"pageToken": { +"description": "The next_page_token value returned from a previous request, if any.", +"type": "string" +}, +"viewUrl": { +"description": "Specify the full view URL to find the corresponding item. The maximum length is 2048 characters.", +"type": "string" +} +}, +"type": "object" +}, +"SearchItemsByViewUrlResponse": { +"id": "SearchItemsByViewUrlResponse", +"properties": { +"items": { +"items": { +"$ref": "Item" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"SearchQualityMetadata": { +"description": "Additional search quality metadata of the item.", +"id": "SearchQualityMetadata", +"properties": { +"quality": { +"description": "An indication of the quality of the item, used to influence search quality. Value should be between 0.0 (lowest quality) and 1.0 (highest quality). The default value is 0.0.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SearchRequest": { +"description": "The search API request. NEXT ID: 17", +"id": "SearchRequest", +"properties": { +"contextAttributes": { +"description": "Context attributes for the request which will be used to adjust ranking of search results. The maximum number of elements is 10.", +"items": { +"$ref": "ContextAttribute" +}, +"type": "array" +}, +"dataSourceRestrictions": { +"description": "The sources to use for querying. If not specified, all data sources from the current search application are used.", +"items": { +"$ref": "DataSourceRestriction" +}, +"type": "array" +}, +"facetOptions": { +"items": { +"$ref": "FacetOptions" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum number of search results to return in one page. Valid values are between 1 and 100, inclusive. Default value is 10. Minimum value is 50 when results beyond 2000 are requested.", +"format": "int32", +"type": "integer" +}, +"query": { +"description": "The raw query string. See supported search operators in the [Narrow your search with operators](https://support.google.com/cloudsearch/answer/6172299)", +"type": "string" +}, +"queryInterpretationOptions": { +"$ref": "QueryInterpretationOptions", +"description": "Options to interpret the user query." +}, +"requestOptions": { +"$ref": "RequestOptions", +"description": "Request options, such as the search application and user timezone." +}, +"sortOptions": { +"$ref": "SortOptions", +"description": "The options for sorting the search results" +}, +"start": { +"description": "Starting index of the results.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SearchResponse": { +"description": "The search API response. NEXT ID: 17", +"id": "SearchResponse", +"properties": { +"debugInfo": { +"$ref": "ResponseDebugInfo", +"description": "Debugging information about the response." +}, +"errorInfo": { +"$ref": "ErrorInfo", +"description": "Error information about the response." +}, +"facetResults": { +"description": "Repeated facet results.", +"items": { +"$ref": "FacetResult" +}, +"type": "array" +}, +"hasMoreResults": { +"description": "Whether there are more search results matching the query.", +"type": "boolean" +}, +"queryInterpretation": { +"$ref": "QueryInterpretation", +"description": "Query interpretation result for user query. Empty if query interpretation is disabled." +}, +"resultCountEstimate": { +"description": "The estimated result count for this query.", +"format": "int64", +"type": "string" +}, +"resultCountExact": { +"description": "The exact result count for this query.", +"format": "int64", +"type": "string" +}, +"resultCounts": { +"$ref": "ResultCounts", +"description": "Expanded result count information." +}, +"results": { +"description": "Results from a search query.", +"items": { +"$ref": "SearchResult" +}, +"type": "array" +}, +"spellResults": { +"description": "Suggested spelling for the query.", +"items": { +"$ref": "SpellResult" +}, +"type": "array" +}, +"structuredResults": { +"description": "Structured results for the user query. These results are not counted against the page_size.", +"items": { +"$ref": "StructuredResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchResult": { +"description": "Results containing indexed information for a document.", +"id": "SearchResult", +"properties": { +"clusteredResults": { +"description": "If source is clustered, provide list of clustered results. There will only be one level of clustered results. If current source is not enabled for clustering, this field will be empty.", +"items": { +"$ref": "SearchResult" +}, +"type": "array" +}, +"debugInfo": { +"$ref": "ResultDebugInfo", +"description": "Debugging information about this search result." +}, +"metadata": { +"$ref": "Metadata", +"description": "Metadata of the search result." +}, +"snippet": { +"$ref": "Snippet", +"description": "The concatenation of all snippets (summaries) available for this result." +}, +"title": { +"description": "Title of the search result.", +"type": "string" +}, +"url": { +"description": "The URL of the search result. The URL contains a Google redirect to the actual item. This URL is signed and shouldn't be changed.", +"type": "string" +} +}, +"type": "object" +}, +"Snippet": { +"description": "Snippet of the search result, which summarizes the content of the resulting page.", +"id": "Snippet", +"properties": { +"matchRanges": { +"description": "The matched ranges in the snippet.", +"items": { +"$ref": "MatchRange" +}, +"type": "array" +}, +"snippet": { +"description": "The snippet of the document. May contain escaped HTML character that should be unescaped prior to rendering.", +"type": "string" +} +}, +"type": "object" +}, +"SortOptions": { +"id": "SortOptions", +"properties": { +"operatorName": { +"description": "The name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable.", +"type": "string" +}, +"sortOrder": { +"description": "Ascending is the default sort order", +"enum": [ +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "Defines sources for the suggest/search APIs.", +"id": "Source", +"properties": { +"name": { +"description": "Source name for content indexed by the Indexing API.", +"type": "string" +}, +"predefinedSource": { +"description": "Predefined content source for Google Apps.", +"enum": [ +"NONE", +"QUERY_HISTORY", +"PERSON", +"GOOGLE_DRIVE", +"GOOGLE_GMAIL", +"GOOGLE_SITES", +"GOOGLE_GROUPS", +"GOOGLE_CALENDAR", +"GOOGLE_KEEP" +], +"enumDescriptions": [ +"", +"Suggests queries issued by the user in the past. Only valid when used with the suggest API. Ignored when used in the query API.", +"Suggests people in the organization. Only valid when used with the suggest API. Results in an error when used in the query API.", +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"SourceConfig": { +"description": "Configurations for a source while processing a Search or Suggest request.", +"id": "SourceConfig", +"properties": { +"crowdingConfig": { +"$ref": "SourceCrowdingConfig", +"description": "The crowding configuration for the source." +}, +"scoringConfig": { +"$ref": "SourceScoringConfig", +"description": "The scoring configuration for the source." +}, +"source": { +"$ref": "Source", +"description": "The source for which this configuration is to be used." +} +}, +"type": "object" +}, +"SourceCrowdingConfig": { +"description": "Set search results crowding limits. Crowding is a situation in which multiple results from the same source or host \"crowd out\" other results, diminishing the quality of search for users. To foster better search quality and source diversity in search results, you can set a condition to reduce repetitive results by source.", +"id": "SourceCrowdingConfig", +"properties": { +"numResults": { +"description": "Maximum number of results allowed from a datasource in a result page as long as results from other sources are not exhausted. Value specified must not be negative. A default value is used if this value is equal to 0. To disable crowding, set the value greater than 100.", +"format": "int32", +"type": "integer" +}, +"numSuggestions": { +"description": "Maximum number of suggestions allowed from a source. No limits will be set on results if this value is less than or equal to 0.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SourceResultCount": { +"description": "Per source result count information.", +"id": "SourceResultCount", +"properties": { +"hasMoreResults": { +"description": "Whether there are more search results for this source.", +"type": "boolean" +}, +"resultCountEstimate": { +"description": "The estimated result count for this source.", +"format": "int64", +"type": "string" +}, +"resultCountExact": { +"description": "The exact result count for this source.", +"format": "int64", +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "The source the result count information is associated with." +} +}, +"type": "object" +}, +"SourceScoringConfig": { +"description": "Set the scoring configuration. This allows modifying the ranking of results for a source.", +"id": "SourceScoringConfig", +"properties": { +"sourceImportance": { +"description": "Importance of the source.", +"enum": [ +"DEFAULT", +"LOW", +"HIGH" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"SpellResult": { +"id": "SpellResult", +"properties": { +"suggestedQuery": { +"description": "The suggested spelling of the query.", +"type": "string" +}, +"suggestedQueryHtml": { +"$ref": "SafeHtmlProto", +"description": "The sanitized HTML representing the spell corrected query that can be used in the UI. This usually has language-specific tags to mark up parts of the query that are spell checked." +}, +"suggestionType": { +"description": "Suggestion triggered for the current query.", +"enum": [ +"SUGGESTION_TYPE_UNSPECIFIED", +"NON_EMPTY_RESULTS_SPELL_SUGGESTION", +"ZERO_RESULTS_FULL_PAGE_REPLACEMENT" +], +"enumDescriptions": [ +"Default spell check type", +"Spell suggestion without any results changed. The results are still shown for the original query (which has non zero / results) with a suggestion for spelling that would have results.", +"Spell suggestion triggered when original query has no results. When the original query has no results, and spell suggestion has results we trigger results for the spell corrected query." +], +"type": "string" +} +}, +"type": "object" +}, +"StartUploadItemRequest": { +"description": "Start upload file request.", +"id": "StartUploadItemRequest", +"properties": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StructuredDataObject": { +"description": "A structured data object consisting of named properties.", +"id": "StructuredDataObject", +"properties": { +"properties": { +"description": "The properties for the object. The maximum number of elements is 1000.", +"items": { +"$ref": "NamedProperty" +}, +"type": "array" +} +}, +"type": "object" +}, +"StructuredResult": { +"description": "Structured results that are returned as part of search request.", +"id": "StructuredResult", +"properties": { +"person": { +"$ref": "Person", +"description": "Representation of a person" +} +}, +"type": "object" +}, +"SuggestRequest": { +"description": "Request of suggest API.", +"id": "SuggestRequest", +"properties": { +"dataSourceRestrictions": { +"description": "The sources to use for suggestions. If not specified, the data sources are taken from the current search application. NOTE: Suggestions are only supported for the following sources: * Third-party data sources * PredefinedSource.PERSON * PredefinedSource.GOOGLE_DRIVE", +"items": { +"$ref": "DataSourceRestriction" +}, +"type": "array" +}, +"query": { +"description": "Partial query for which autocomplete suggestions will be shown. For example, if the query is \"sea\", then the server might return \"season\", \"search\", \"seagull\" and so on.", +"type": "string" +}, +"requestOptions": { +"$ref": "RequestOptions", +"description": "Request options, such as the search application and user timezone." +} +}, +"type": "object" +}, +"SuggestResponse": { +"description": "Response of the suggest API.", +"id": "SuggestResponse", +"properties": { +"suggestResults": { +"description": "List of suggestions.", +"items": { +"$ref": "SuggestResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"SuggestResult": { +"description": "One suggestion result.", +"id": "SuggestResult", +"properties": { +"peopleSuggestion": { +"$ref": "PeopleSuggestion", +"description": "This is present when the suggestion indicates a person. It contains more information about the person - like their email ID, name etc." +}, +"querySuggestion": { +"$ref": "QuerySuggestion", +"description": "This field will be present if the suggested query is a word/phrase completion." +}, +"source": { +"$ref": "Source", +"description": "The source of the suggestion." +}, +"suggestedQuery": { +"description": "The suggested query that will be used for search, when the user clicks on the suggestion", +"type": "string" +} +}, +"type": "object" +}, +"TextOperatorOptions": { +"description": "Used to provide a search operator for text properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "TextOperatorOptions", +"properties": { +"exactMatchWithOperator": { +"description": "If true, the text value is tokenized as one atomic value in operator searches and facet matches. For example, if the operator name is \"genre\" and the value is \"science-fiction\" the query restrictions \"genre:science\" and \"genre:fiction\" doesn't match the item; \"genre:science-fiction\" does. Text value matching is case-sensitive and does not remove special characters. If false, the text is tokenized. For example, if the value is \"science-fiction\" the queries \"genre:science\" and \"genre:fiction\" matches the item.", +"type": "boolean" +}, +"operatorName": { +"description": "Indicates the operator name required in the query in order to isolate the text property. For example, if operatorName is *subject* and the property's name is *subjectLine*, then queries like *subject:* show results only where the value of the property named *subjectLine* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any text properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"TextPropertyOptions": { +"description": "The options for text properties.", +"id": "TextPropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "TextOperatorOptions", +"description": "If set, describes how the property should be used as a search operator." +}, +"retrievalImportance": { +"$ref": "RetrievalImportance", +"description": "Indicates the search quality importance of the tokens within the field when used for retrieval." +} +}, +"type": "object" +}, +"TextValues": { +"description": "List of text values.", +"id": "TextValues", +"properties": { +"values": { +"description": "The maximum allowable length for text values is 2048 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ThirdPartyGenericCard": { +"id": "ThirdPartyGenericCard", +"properties": { +"cardId": { +"description": "Unique identifier for the card.", +"type": "string" +}, +"category": { +"description": "Category that the card belongs to.", +"type": "string" +}, +"content": { +"$ref": "Content", +"description": "[Required] Card content." +}, +"context": { +"$ref": "Context", +"description": "[Required] Context where the card should be triggered." +}, +"isDismissible": { +"description": "Whether the card can be dismissed.", +"type": "boolean" +}, +"priority": { +"description": "Priority of the card, where 0 is the highest priority.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimestampOperatorOptions": { +"description": "Used to provide a search operator for timestamp properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", +"id": "TimestampOperatorOptions", +"properties": { +"greaterThanOperatorName": { +"description": "Indicates the operator name required in the query in order to isolate the timestamp property using the greater-than operator. For example, if greaterThanOperatorName is *closedafter* and the property's name is *closeDate*, then queries like *closedafter:* show results only where the value of the property named *closeDate* is later than **. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +}, +"lessThanOperatorName": { +"description": "Indicates the operator name required in the query in order to isolate the timestamp property using the less-than operator. For example, if lessThanOperatorName is *closedbefore* and the property's name is *closeDate*, then queries like *closedbefore:* show results only where the value of the property named *closeDate* is earlier than **. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +}, +"operatorName": { +"description": "Indicates the operator name required in the query in order to isolate the timestamp property. For example, if operatorName is *closedon* and the property's name is *closeDate*, then queries like *closedon:* show results only where the value of the property named *closeDate* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", +"type": "string" +} +}, +"type": "object" +}, +"TimestampPropertyOptions": { +"description": "The options for timestamp properties.", +"id": "TimestampPropertyOptions", +"properties": { +"operatorOptions": { +"$ref": "TimestampOperatorOptions", +"description": "If set, describes how the timestamp should be used as a search operator." +} +}, +"type": "object" +}, +"TimestampValues": { +"description": "List of timestamp values.", +"id": "TimestampValues", +"properties": { +"values": { +"items": { +"format": "google-datetime", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UnmappedIdentity": { +"id": "UnmappedIdentity", +"properties": { +"externalIdentity": { +"$ref": "Principal", +"description": "The resource name for an external user." +}, +"resolutionStatusCode": { +"description": "The resolution status for the external identity.", +"enum": [ +"CODE_UNSPECIFIED", +"NOT_FOUND", +"IDENTITY_SOURCE_NOT_FOUND", +"IDENTITY_SOURCE_MISCONFIGURED", +"TOO_MANY_MAPPINGS_FOUND", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"Input-only value. Used to list all unmapped identities regardless of status.", +"The unmapped identity was not found in IDaaS, and needs to be provided by the user.", +"The identity source associated with the identity was either not found or deleted.", +"IDaaS does not understand the identity source, probably because the schema was modified in a non compatible way.", +"The number of users associated with the external identity is too large.", +"Internal error." +], +"type": "string" +} +}, +"type": "object" +}, +"UnreserveItemsRequest": { +"id": "UnreserveItemsRequest", +"properties": { +"connectorName": { +"description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"queue": { +"description": "The name of a queue to unreserve items from.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateDataSourceRequest": { +"id": "UpdateDataSourceRequest", +"properties": { +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"source": { +"$ref": "DataSource" +}, +"updateMask": { +"description": "Only applies to [`settings.datasources.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.datasources/patch). Update mask to control which fields to update. Example field paths: `name`, `displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the source, that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateSchemaRequest": { +"id": "UpdateSchemaRequest", +"properties": { +"debugOptions": { +"$ref": "DebugOptions", +"description": "Common debug options." +}, +"schema": { +"$ref": "Schema", +"description": "The new schema for the source." +}, +"validateOnly": { +"description": "If true, the schema will be checked for validity, but will not be registered with the data source, even if valid.", +"type": "boolean" +} +}, +"type": "object" +}, +"UploadItemRef": { +"description": "Represents an upload session reference. This reference is created via upload method. This reference is valid for 30 days after its creation. Updating of item content may refer to this uploaded content via contentDataRef.", +"id": "UploadItemRef", +"properties": { +"name": { +"description": "The name of the content reference. The maximum length is 2048 characters.", +"type": "string" +} +}, +"type": "object" +}, +"UserActivity": { +"description": "User's single or bulk query activity. This can be a logging query or deletion query.", +"id": "UserActivity", +"properties": { +"queryActivity": { +"$ref": "QueryActivity", +"description": "Contains data which needs to be logged/removed." +} +}, +"type": "object" +}, +"VPCSettings": { +"id": "VPCSettings", +"properties": { +"project": { +"description": "The resource name of the GCP Project to be used for VPC SC policy check. VPC security settings on this project will be honored for Cloud Search APIs after project_name has been updated through CustomerService. Format: projects/{project_id}", +"type": "string" +} +}, +"type": "object" +}, +"Value": { +"description": "Definition of a single value with generic type.", +"id": "Value", +"properties": { +"booleanValue": { +"type": "boolean" +}, +"dateValue": { +"$ref": "Date" +}, +"doubleValue": { +"format": "double", +"type": "number" +}, +"integerValue": { +"format": "int64", +"type": "string" +}, +"stringValue": { +"type": "string" +}, +"timestampValue": { +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ValueFilter": { +"id": "ValueFilter", +"properties": { +"operatorName": { +"description": "The `operator_name` applied to the query, such as *price_greater_than*. The filter can work against both types of filters defined in the schema for your data source: 1. `operator_name`, where the query filters results by the property that matches the value. 2. `greater_than_operator_name` or `less_than_operator_name` in your schema. The query filters the results for the property values that are greater than or less than the supplied value in the query.", +"type": "string" +}, +"value": { +"$ref": "Value", +"description": "The value to be compared with." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Search API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudsupport.v2beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudsupport.v2beta.json new file mode 100644 index 0000000000000000000000000000000000000000..07f37e6170ce66b07cda124993ee22defcd269fa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudsupport.v2beta.json @@ -0,0 +1,1620 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudsupport.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Support", +"description": "Manages Google Cloud technical support cases for Customer Care support offerings. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/support/docs/apis", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudsupport:v2beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudsupport.mtls.googleapis.com/", +"name": "cloudsupport", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"caseClassifications": { +"methods": { +"search": { +"description": "Retrieve valid classifications to use when creating a support case. Classifications are hierarchical. Each classification is a string containing all levels of the hierarchy separated by `\" > \"`. For example, `\"Technical Issue > Compute > Compute Engine\"`. Classification IDs returned by this endpoint are valid for at least six months. When a classification is deactivated, this endpoint immediately stops returning it. After six months, `case.create` requests using the classification will fail. EXAMPLES: cURL: ```shell curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ 'https://cloudsupport.googleapis.com/v2/caseClassifications:search?query=display_name:\"*Compute%20Engine*\"' ``` Python: ```python import googleapiclient.discovery supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=\"v2\", discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version=v2\", ) request = supportApiService.caseClassifications().search( query='display_name:\"*Compute Engine*\"' ) print(request.execute()) ```", +"flatPath": "v2beta/caseClassifications:search", +"httpMethod": "GET", +"id": "cloudsupport.caseClassifications.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of classifications fetched with each request.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.", +"location": "query", +"type": "string" +}, +"product.productLine": { +"description": "The product line of the Product.", +"enum": [ +"PRODUCT_LINE_UNSPECIFIED", +"GOOGLE_CLOUD", +"GOOGLE_MAPS" +], +"enumDescriptions": [ +"Unknown product type.", +"Google Cloud", +"Google Maps" +], +"location": "query", +"type": "string" +}, +"query": { +"description": "An expression used to filter case classifications. If it's an empty string, then no filtering happens. Otherwise, case classifications will be returned that match the filter.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/caseClassifications:search", +"response": { +"$ref": "SearchCaseClassificationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"cases": { +"methods": { +"close": { +"description": "Close a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case:close\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().close( name=\"projects/some-project/cases/43595344\" ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:close", +"httpMethod": "POST", +"id": "cloudsupport.cases.close", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the case to close.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:close", +"request": { +"$ref": "CloseCaseRequest" +}, +"response": { +"$ref": "Case" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Create a new case and associate it with a parent. It must have the following fields set: `display_name`, `description`, `classification`, and `priority`. If you're just testing the API and don't want to route your case to an agent, set `testCase=true`. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"display_name\": \"Test case created by me.\", \"description\": \"a random test case, feel free to close\", \"classification\": { \"id\": \"100IK2AKCLHMGRJ9CDGMOCGP8DM6UTB4BT262T31BT1M2T31DHNMENPO6KS36CPJ786L2TBFEHGN6NPI64R3CDHN8880G08I1H3MURR7DHII0GRCDTQM8\" }, \"time_zone\": \"-07:00\", \"subscriber_email_addresses\": [ \"foo@domain.com\", \"bar@domain.com\" ], \"testCase\": true, \"priority\": \"P3\" }' \\ \"https://cloudsupport.googleapis.com/v2/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().create( parent=\"projects/some-project\", body={ \"displayName\": \"A Test Case\", \"description\": \"This is a test case.\", \"testCase\": True, \"priority\": \"P2\", \"classification\": { \"id\": \"100IK2AKCLHMGRJ9CDGMOCGP8DM6UTB4BT262T31BT1M2T31DHNMENPO6KS36CPJ786L2TBFEHGN6NPI64R3CDHN8880G08I1H3MURR7DHII0GRCDTQM8\" }, }, ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases", +"httpMethod": "POST", +"id": "cloudsupport.cases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent under which the case should be created.", +"location": "path", +"pattern": "^[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/cases", +"request": { +"$ref": "Case" +}, +"response": { +"$ref": "Case" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"escalate": { +"description": "Escalate a case, starting the Google Cloud Support escalation management process. This operation is only available for some support services. Go to https://cloud.google.com/support and look for 'Technical support escalations' in the feature list to find out which ones let you do that. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"escalation\": { \"reason\": \"BUSINESS_IMPACT\", \"justification\": \"This is a test escalation.\" } }' \\ \"https://cloudsupport.googleapis.com/v2/$case:escalate\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().escalate( name=\"projects/some-project/cases/43595344\", body={ \"escalation\": { \"reason\": \"BUSINESS_IMPACT\", \"justification\": \"This is a test escalation.\", }, }, ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:escalate", +"httpMethod": "POST", +"id": "cloudsupport.cases.escalate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the case to be escalated.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:escalate", +"request": { +"$ref": "EscalateCaseRequest" +}, +"response": { +"$ref": "Case" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/16033687\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().get( name=\"projects/some-project/cases/43595344\", ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}", +"httpMethod": "GET", +"id": "cloudsupport.cases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The full name of a case to be retrieved.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "Case" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Retrieve all cases under a parent, but not its children. For example, listing cases under an organization only returns the cases that are directly parented by that organization. To retrieve cases under an organization and its projects, use `cases.search`. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().list(parent=\"projects/some-project\") print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases", +"httpMethod": "GET", +"id": "cloudsupport.cases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "An expression used to filter cases. If it's an empty string, then no filtering happens. Otherwise, the endpoint returns the cases that match the filter. Expressions use the following fields separated by `AND` and specified with `=`: - `state`: Can be `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - `creator.email`: The email address of the case creator. EXAMPLES: - `state=CLOSED` - `state=OPEN AND creator.email=\"tester@example.com\"` - `state=OPEN AND (priority=P0 OR priority=P1)`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of cases fetched with each request. Defaults to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of a parent to list cases under.", +"location": "path", +"pattern": "^[^/]+/[^/]+$", +"required": true, +"type": "string" +}, +"productLine": { +"description": "The product line to request cases for. If unspecified, only Google Cloud cases will be returned.", +"enum": [ +"PRODUCT_LINE_UNSPECIFIED", +"GOOGLE_CLOUD", +"GOOGLE_MAPS" +], +"enumDescriptions": [ +"Unknown product type.", +"Google Cloud", +"Google Maps" +], +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+parent}/cases", +"response": { +"$ref": "ListCasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a case. Only some fields can be updated. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request PATCH \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"priority\": \"P1\" }' \\ \"https://cloudsupport.googleapis.com/v2/$case?updateMask=priority\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().patch( name=\"projects/some-project/cases/43112854\", body={ \"displayName\": \"This is Now a New Title\", \"priority\": \"P2\", }, ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}", +"httpMethod": "PATCH", +"id": "cloudsupport.cases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the case.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A list of attributes of the case that should be updated. Supported values are `priority`, `display_name`, and `subscriber_email_addresses`. If no fields are specified, all supported fields are updated. Be careful - if you do not provide a field mask, then you might accidentally clear some fields. For example, if you leave the field mask empty and do not provide a value for `subscriber_email_addresses`, then `subscriber_email_addresses` is updated to empty.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "Case" +}, +"response": { +"$ref": "Case" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Search for cases using a query. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$parent/cases:search\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().search( parent=\"projects/some-project\", query=\"state=OPEN\" ) print(request.execute()) ```", +"flatPath": "v2beta/cases:search", +"httpMethod": "GET", +"id": "cloudsupport.cases.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of cases fetched with each request. The default page size is 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the parent resource to search for cases under.", +"location": "query", +"type": "string" +}, +"query": { +"description": "An expression used to filter cases. Expressions use the following fields separated by `AND` and specified with `=`: - `organization`: An organization name in the form `organizations/`. - `project`: A project name in the form `projects/`. - `state`: Can be `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - `creator.email`: The email address of the case creator. You must specify either `organization` or `project`. To search across `displayName`, `description`, and comments, use a global restriction with no keyword or operator. For example, `\"my search\"`. To search only cases updated after a certain date, use `update_time` restricted with that particular date, time, and timezone in ISO datetime format. For example, `update_time>\"2020-01-01T00:00:00-05:00\"`. `update_time` only supports the greater than operator (`>`). Examples: - `organization=\"organizations/123456789\"` - `project=\"projects/my-project-id\"` - `project=\"projects/123456789\"` - `organization=\"organizations/123456789\" AND state=CLOSED` - `project=\"projects/my-project-id\" AND creator.email=\"tester@example.com\"` - `project=\"projects/my-project-id\" AND (priority=P0 OR priority=P1)`", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/cases:search", +"response": { +"$ref": "SearchCasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"showFeed": { +"description": "Show items in the feed of this case, including case emails, attachments, and comments.", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:showFeed", +"httpMethod": "GET", +"id": "cloudsupport.cases.showFeed", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. Field to order feed items by, followed by `asc` or `desc` postfix. The only valid field is `creation_time`. This list is case-insensitive, default sorting order is ascending, and the redundant space characters are insignificant. Example: `creation_time desc`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of feed items fetched with each request.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying the page of results to return. If unspecified, it retrieves the first page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the case for which feed items should be listed.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}:showFeed", +"response": { +"$ref": "ShowFeedResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attachments": { +"methods": { +"list": { +"description": "List all the attachments associated with a support case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/23598314\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case/attachments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .attachments() .list(parent=\"projects/some-project/cases/43595344\") ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments", +"httpMethod": "GET", +"id": "cloudsupport.cases.attachments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of attachments fetched with each request. If not provided, the default is 10. The maximum page size that will be returned is 100. The size of each page can be smaller than the requested page size and can include zero. For example, you could request 100 attachments on one page, receive 0, and then on the next page, receive 90.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the case for which attachments should be listed.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/attachments", +"response": { +"$ref": "ListAttachmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"comments": { +"methods": { +"create": { +"description": "Add a new comment to a case. The comment must have the following fields set: `body`. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43591344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"body\": \"This is a test comment.\" }' \\ \"https://cloudsupport.googleapis.com/v2/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .comments() .create( parent=\"projects/some-project/cases/43595344\", body={\"body\": \"This is a test comment.\"}, ) ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments", +"httpMethod": "POST", +"id": "cloudsupport.cases.comments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the case to which the comment should be added.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/comments", +"request": { +"$ref": "Comment" +}, +"response": { +"$ref": "Comment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all the comments associated with a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .comments() .list(parent=\"projects/some-project/cases/43595344\") ) print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments", +"httpMethod": "GET", +"id": "cloudsupport.cases.comments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of comments to fetch. Defaults to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. If unspecified, the first page is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the case for which to list comments.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/comments", +"response": { +"$ref": "ListCommentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"media": { +"methods": { +"download": { +"description": "Download a file attached to a case. Note: HTTP requests must append \"?alt=media\" to the URL. EXAMPLES: cURL: ```shell name=\"projects/some-project/cases/43594844/attachments/0674M00000WijAnZAJ\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$name:download?alt=media\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.media().download( name=\"projects/some-project/cases/43595344/attachments/0684M00000Pw6pHQAR\" ) request.uri = request.uri.split(\"?\")[0] + \"?alt=media\" print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments/{attachmentsId}:download", +"httpMethod": "GET", +"id": "cloudsupport.media.download", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the file attachment to download.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:download", +"response": { +"$ref": "Media" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"upload": { +"description": "Create a file attachment on a case or Cloud resource. The attachment must have the following fields set: `filename`. EXAMPLES: cURL: ```shell echo \"This text is in a file I'm uploading using CSAPI.\" \\ > \"./example_file.txt\" case=\"projects/some-project/cases/43594844\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --data-binary @\"./example_file.txt\" \\ \"https://cloudsupport.googleapis.com/upload/v2beta/$case/attachments?attachment.filename=uploaded_via_curl.txt\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) file_path = \"./example_file.txt\" with open(file_path, \"w\") as file: file.write( \"This text is inside a file I'm going to upload using the Cloud Support API.\", ) request = supportApiService.media().upload( parent=\"projects/some-project/cases/43595344\", media_body=file_path ) request.uri = request.uri.split(\"?\")[0] + \"?attachment.filename=uploaded_via_python.txt\" print(request.execute()) ```", +"flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments", +"httpMethod": "POST", +"id": "cloudsupport.media.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v2beta/{+parent}/attachments" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the case or Cloud resource to which the attachment should be attached.", +"location": "path", +"pattern": "^[^/]+/[^/]+/cases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/attachments", +"request": { +"$ref": "CreateAttachmentRequest" +}, +"response": { +"$ref": "Attachment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +} +}, +"revision": "20241231", +"rootUrl": "https://cloudsupport.googleapis.com/", +"schemas": { +"Actor": { +"description": "An Actor represents an entity that performed an action. For example, an actor could be a user who posted a comment on a support case, a user who uploaded an attachment, or a service account that created a support case.", +"id": "Actor", +"properties": { +"displayName": { +"description": "The name to display for the actor. If not provided, it is inferred from credentials supplied during case creation. When an email is provided, a display name must also be provided. This will be obfuscated if the user is a Google Support agent.", +"type": "string" +}, +"email": { +"deprecated": true, +"description": "The email address of the actor. If not provided, it is inferred from the credentials supplied during case creation. When a name is provided, an email must also be provided. If the user is a Google Support agent, this is obfuscated. This field is deprecated. Use **username** field instead.", +"type": "string" +}, +"googleSupport": { +"description": "Output only. Whether the actor is a Google support actor.", +"readOnly": true, +"type": "boolean" +}, +"username": { +"description": "Output only. The username of the actor. It may look like an email or other format provided by the identity provider. If not provided, it is inferred from the credentials supplied. When a name is provided, a username must also be provided. If the user is a Google Support agent, this will not be set.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Attachment": { +"description": "An Attachment contains metadata about a file that was uploaded to a case - it is NOT a file itself. That being said, the name of an Attachment object can be used to download its accompanying file through the `media.download` endpoint. While attachments can be uploaded in the console at the same time as a comment, they're associated on a \"case\" level, not a \"comment\" level.", +"id": "Attachment", +"properties": { +"createTime": { +"description": "Output only. The time at which the attachment was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creator": { +"$ref": "Actor", +"description": "Output only. The user who uploaded the attachment. Note, the name and email will be obfuscated if the attachment was uploaded by Google support.", +"readOnly": true +}, +"filename": { +"description": "The filename of the attachment (e.g. `\"graph.jpg\"`).", +"type": "string" +}, +"mimeType": { +"description": "Output only. The MIME type of the attachment (e.g. text/plain).", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the attachment.", +"readOnly": true, +"type": "string" +}, +"sizeBytes": { +"description": "Output only. The size of the attachment in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Blobstore2Info": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "Blobstore2Info", +"properties": { +"blobGeneration": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"blobId": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"downloadReadHandle": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"readToken": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"uploadMetadataContainer": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Case": { +"description": "A Case is an object that contains the details of a support case. It contains fields for the time it was created, its priority, its classification, and more. Cases can also have comments and attachments that get added over time. A case is parented by a Google Cloud organization or project. Organizations are identified by a number, so the name of a case parented by an organization would look like this: ``` organizations/123/cases/456 ``` Projects have two unique identifiers, an ID and a number, and they look like this: ``` projects/abc/cases/456 ``` ``` projects/123/cases/456 ``` You can use either of them when calling the API. To learn more about project identifiers, see [AIP-2510](https://google.aip.dev/cloud/2510).", +"id": "Case", +"properties": { +"classification": { +"$ref": "CaseClassification", +"description": "The issue classification applicable to this case." +}, +"contactEmail": { +"description": "A user-supplied email address to send case update notifications for. This should only be used in BYOID flows, where we cannot infer the user's email address directly from their EUCs.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time this case was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creator": { +"$ref": "Actor", +"description": "The user who created the case. Note: The name and email will be obfuscated if the case was created by Google Support." +}, +"description": { +"description": "A broad description of the issue.", +"type": "string" +}, +"displayName": { +"description": "The short summary of the issue reported in this case.", +"type": "string" +}, +"escalated": { +"description": "Whether the case is currently escalated.", +"type": "boolean" +}, +"languageCode": { +"description": "The language the user has requested to receive support in. This should be a BCP 47 language code (e.g., `\"en\"`, `\"zh-CN\"`, `\"zh-TW\"`, `\"ja\"`, `\"ko\"`). If no language or an unsupported language is specified, this field defaults to English (en). Language selection during case creation may affect your available support options. For a list of supported languages and their support working hours, see: https://cloud.google.com/support/docs/language-working-hours", +"type": "string" +}, +"name": { +"description": "The resource name for the case.", +"type": "string" +}, +"priority": { +"description": "The priority of this case.", +"enum": [ +"PRIORITY_UNSPECIFIED", +"P0", +"P1", +"P2", +"P3", +"P4" +], +"enumDescriptions": [ +"Priority is undefined or has not been set yet.", +"Extreme impact on a production service. Service is hard down.", +"Critical impact on a production service. Service is currently unusable.", +"Severe impact on a production service. Service is usable but greatly impaired.", +"Medium impact on a production service. Service is available, but moderately impaired.", +"General questions or minor issues. Production service is fully available." +], +"type": "string" +}, +"severity": { +"description": "REMOVED. The severity of this case. Use priority instead.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"S0", +"S1", +"S2", +"S3", +"S4" +], +"enumDescriptions": [ +"Severity is undefined or has not been set yet.", +"Extreme impact on a production service. Service is hard down.", +"Critical impact on a production service. Service is currently unusable.", +"Severe impact on a production service. Service is usable but greatly impaired.", +"Medium impact on a production service. Service is available, but moderately impaired.", +"General questions or minor issues. Production service is fully available." +], +"type": "string" +}, +"state": { +"description": "Output only. The current status of the support case.", +"enum": [ +"STATE_UNSPECIFIED", +"NEW", +"IN_PROGRESS_GOOGLE_SUPPORT", +"ACTION_REQUIRED", +"SOLUTION_PROVIDED", +"CLOSED" +], +"enumDescriptions": [ +"Case is in an unknown state.", +"The case has been created but no one is assigned to work on it yet.", +"The case is currently being handled by Google support.", +"Google is waiting for a response.", +"A solution has been offered for the case, but it isn't yet closed.", +"The case has been resolved." +], +"readOnly": true, +"type": "string" +}, +"subscriberEmailAddresses": { +"description": "The email addresses to receive updates on this case.", +"items": { +"type": "string" +}, +"type": "array" +}, +"testCase": { +"description": "Whether this case was created for internal API testing and should not be acted on by the support team.", +"type": "boolean" +}, +"timeZone": { +"description": "The timezone of the user who created the support case. It should be in a format IANA recognizes: https://www.iana.org/time-zones. There is no additional validation done by the API.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time this case was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CaseClassification": { +"description": "A Case Classification represents the topic that a case is about. It's very important to use accurate classifications, because they're used to route your cases to specialists who can help you. A classification always has an ID that is its unique identifier. A valid ID is required when creating a case.", +"id": "CaseClassification", +"properties": { +"displayName": { +"description": "A display name for the classification. The display name is not static and can change. To uniquely and consistently identify classifications, use the `CaseClassification.id` field.", +"type": "string" +}, +"id": { +"description": "The unique ID for a classification. Must be specified for case creation. To retrieve valid classification IDs for case creation, use `caseClassifications.search`. Classification IDs returned by `caseClassifications.search` are guaranteed to be valid for at least 6 months. If a given classification is deactiveated, it will immediately stop being returned. After 6 months, `case.create` requests using the classification ID will fail.", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The full product the classification corresponds to." +} +}, +"type": "object" +}, +"CloseCaseRequest": { +"description": "The request message for the CloseCase endpoint.", +"id": "CloseCaseRequest", +"properties": {}, +"type": "object" +}, +"Comment": { +"description": "A comment associated with a support case. Case comments are the primary way for Google Support to communicate with a user who has opened a case. When a user responds to Google Support, the user's responses also appear as comments.", +"id": "Comment", +"properties": { +"body": { +"description": "The full comment body. Maximum of 12800 characters.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the comment was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creator": { +"$ref": "Actor", +"description": "Output only. The user or Google Support agent who created the comment.", +"readOnly": true +}, +"name": { +"description": "Output only. Identifier. The resource name of the comment.", +"readOnly": true, +"type": "string" +}, +"plainTextBody": { +"deprecated": true, +"description": "Output only. DEPRECATED. DO NOT USE. A duplicate of the `body` field. This field is only present for legacy reasons.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CompositeMedia": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "CompositeMedia", +"properties": { +"blobRef": { +"deprecated": true, +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"blobstore2Info": { +"$ref": "Blobstore2Info", +"description": "# gdata.* are outside protos with mising documentation" +}, +"cosmoBinaryReference": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"crc32cHash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "uint32", +"type": "integer" +}, +"inline": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"length": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"md5Hash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"objectId": { +"$ref": "ObjectId", +"description": "# gdata.* are outside protos with mising documentation" +}, +"path": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"referenceType": { +"description": "# gdata.* are outside protos with mising documentation", +"enum": [ +"PATH", +"BLOB_REF", +"INLINE", +"BIGSTORE_REF", +"COSMO_BINARY_REFERENCE" +], +"enumDescriptions": [ +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation" +], +"type": "string" +}, +"sha1Hash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ContentTypeInfo": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "ContentTypeInfo", +"properties": { +"bestGuess": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"fromBytes": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"fromFileName": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"fromHeader": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"fromUrlPath": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +} +}, +"type": "object" +}, +"CreateAttachmentRequest": { +"description": "The request message for the CreateAttachment endpoint.", +"id": "CreateAttachmentRequest", +"properties": { +"attachment": { +"$ref": "Attachment", +"description": "Required. The attachment to be created." +} +}, +"type": "object" +}, +"DiffChecksumsResponse": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "DiffChecksumsResponse", +"properties": { +"checksumsLocation": { +"$ref": "CompositeMedia", +"description": "# gdata.* are outside protos with mising documentation" +}, +"chunkSizeBytes": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"objectLocation": { +"$ref": "CompositeMedia", +"description": "# gdata.* are outside protos with mising documentation" +}, +"objectSizeBytes": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"objectVersion": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +} +}, +"type": "object" +}, +"DiffDownloadResponse": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "DiffDownloadResponse", +"properties": { +"objectLocation": { +"$ref": "CompositeMedia", +"description": "# gdata.* are outside protos with mising documentation" +} +}, +"type": "object" +}, +"DiffUploadRequest": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "DiffUploadRequest", +"properties": { +"checksumsInfo": { +"$ref": "CompositeMedia", +"description": "# gdata.* are outside protos with mising documentation" +}, +"objectInfo": { +"$ref": "CompositeMedia", +"description": "# gdata.* are outside protos with mising documentation" +}, +"objectVersion": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +} +}, +"type": "object" +}, +"DiffUploadResponse": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "DiffUploadResponse", +"properties": { +"objectVersion": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"originalObject": { +"$ref": "CompositeMedia", +"description": "# gdata.* are outside protos with mising documentation" +} +}, +"type": "object" +}, +"DiffVersionResponse": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "DiffVersionResponse", +"properties": { +"objectSizeBytes": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"objectVersion": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +} +}, +"type": "object" +}, +"DownloadParameters": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "DownloadParameters", +"properties": { +"allowGzipCompression": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "boolean" +}, +"ignoreRange": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "boolean" +} +}, +"type": "object" +}, +"EmailMessage": { +"description": "An email associated with a support case.", +"id": "EmailMessage", +"properties": { +"actor": { +"$ref": "Actor", +"description": "Output only. The user or Google Support agent that created this email message. This is inferred from the headers on the email message.", +"readOnly": true +}, +"bodyContent": { +"$ref": "TextContent", +"description": "Output only. The full email message body. A best-effort attempt is made to remove extraneous reply threads.", +"readOnly": true +}, +"ccEmailAddresses": { +"description": "Output only. Email addresses CCed on the email.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. Time when this email message object was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Resource name for the email message.", +"type": "string" +}, +"recipientEmailAddresses": { +"description": "Output only. Email addresses the email was sent to.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"subject": { +"description": "Output only. Subject of the email.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"EscalateCaseRequest": { +"description": "The request message for the EscalateCase endpoint.", +"id": "EscalateCaseRequest", +"properties": { +"escalation": { +"$ref": "Escalation", +"description": "The escalation information to be sent with the escalation request." +} +}, +"type": "object" +}, +"Escalation": { +"description": "An escalation of a support case.", +"id": "Escalation", +"properties": { +"justification": { +"description": "Required. A free text description to accompany the `reason` field above. Provides additional context on why the case is being escalated.", +"type": "string" +}, +"reason": { +"description": "Required. The reason why the Case is being escalated.", +"enum": [ +"REASON_UNSPECIFIED", +"RESOLUTION_TIME", +"TECHNICAL_EXPERTISE", +"BUSINESS_IMPACT" +], +"enumDescriptions": [ +"The escalation reason is in an unknown state or has not been specified.", +"The case is taking too long to resolve.", +"The support agent does not have the expertise required to successfully resolve the issue.", +"The issue is having a significant business impact." +], +"type": "string" +} +}, +"type": "object" +}, +"FeedItem": { +"description": "A feed item associated with a support case.", +"id": "FeedItem", +"properties": { +"attachment": { +"$ref": "Attachment", +"description": "Output only. An attachment attached to the case.", +"readOnly": true +}, +"comment": { +"$ref": "Comment", +"description": "Output only. A comment added to the case.", +"readOnly": true +}, +"deletedAttachment": { +"$ref": "Attachment", +"description": "Output only. A deleted attachment that used to be associated with the support case.", +"readOnly": true +}, +"emailMessage": { +"$ref": "EmailMessage", +"description": "Output only. An email message received in reply to the case.", +"readOnly": true +}, +"eventTime": { +"description": "Output only. Time corresponding to the event of this item.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListAttachmentsResponse": { +"description": "The response message for the ListAttachments endpoint.", +"id": "ListAttachmentsResponse", +"properties": { +"attachments": { +"description": "The list of attachments associated with a case.", +"items": { +"$ref": "Attachment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.attachments.list` requests. If unspecified, there are no more results to retrieve.", +"type": "string" +} +}, +"type": "object" +}, +"ListCasesResponse": { +"description": "The response message for the ListCases endpoint.", +"id": "ListCasesResponse", +"properties": { +"cases": { +"description": "The list of cases associated with the parent after any filters have been applied.", +"items": { +"$ref": "Case" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.list` requests. If unspecified, there are no more results to retrieve.", +"type": "string" +} +}, +"type": "object" +}, +"ListCommentsResponse": { +"description": "The response message for the ListComments endpoint.", +"id": "ListCommentsResponse", +"properties": { +"comments": { +"description": "List of the comments associated with the case.", +"items": { +"$ref": "Comment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.comments.list` requests. If unspecified, there are no more results to retrieve.", +"type": "string" +} +}, +"type": "object" +}, +"Media": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "Media", +"properties": { +"algorithm": { +"deprecated": true, +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"bigstoreObjectRef": { +"deprecated": true, +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"blobRef": { +"deprecated": true, +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"blobstore2Info": { +"$ref": "Blobstore2Info", +"description": "# gdata.* are outside protos with mising documentation" +}, +"compositeMedia": { +"description": "# gdata.* are outside protos with mising documentation", +"items": { +"$ref": "CompositeMedia" +}, +"type": "array" +}, +"contentType": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"contentTypeInfo": { +"$ref": "ContentTypeInfo", +"description": "# gdata.* are outside protos with mising documentation" +}, +"cosmoBinaryReference": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"crc32cHash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "uint32", +"type": "integer" +}, +"diffChecksumsResponse": { +"$ref": "DiffChecksumsResponse", +"description": "# gdata.* are outside protos with mising documentation" +}, +"diffDownloadResponse": { +"$ref": "DiffDownloadResponse", +"description": "# gdata.* are outside protos with mising documentation" +}, +"diffUploadRequest": { +"$ref": "DiffUploadRequest", +"description": "# gdata.* are outside protos with mising documentation" +}, +"diffUploadResponse": { +"$ref": "DiffUploadResponse", +"description": "# gdata.* are outside protos with mising documentation" +}, +"diffVersionResponse": { +"$ref": "DiffVersionResponse", +"description": "# gdata.* are outside protos with mising documentation" +}, +"downloadParameters": { +"$ref": "DownloadParameters", +"description": "# gdata.* are outside protos with mising documentation" +}, +"filename": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"hash": { +"deprecated": true, +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"hashVerified": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "boolean" +}, +"inline": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"isPotentialRetry": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "boolean" +}, +"length": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"md5Hash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"mediaId": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"objectId": { +"$ref": "ObjectId", +"description": "# gdata.* are outside protos with mising documentation" +}, +"path": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"referenceType": { +"description": "# gdata.* are outside protos with mising documentation", +"enum": [ +"PATH", +"BLOB_REF", +"INLINE", +"GET_MEDIA", +"COMPOSITE_MEDIA", +"BIGSTORE_REF", +"DIFF_VERSION_RESPONSE", +"DIFF_CHECKSUMS_RESPONSE", +"DIFF_DOWNLOAD_RESPONSE", +"DIFF_UPLOAD_REQUEST", +"DIFF_UPLOAD_RESPONSE", +"COSMO_BINARY_REFERENCE", +"ARBITRARY_BYTES" +], +"enumDescriptions": [ +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation", +"# gdata.* are outside protos with mising documentation" +], +"type": "string" +}, +"sha1Hash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"sha256Hash": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "byte", +"type": "string" +}, +"timestamp": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "uint64", +"type": "string" +}, +"token": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +} +}, +"type": "object" +}, +"ObjectId": { +"description": "# gdata.* are outside protos with mising documentation", +"id": "ObjectId", +"properties": { +"bucketName": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +}, +"generation": { +"description": "# gdata.* are outside protos with mising documentation", +"format": "int64", +"type": "string" +}, +"objectName": { +"description": "# gdata.* are outside protos with mising documentation", +"type": "string" +} +}, +"type": "object" +}, +"Product": { +"description": "The product a case may be associated with.", +"id": "Product", +"properties": { +"productLine": { +"description": "The product line of the Product.", +"enum": [ +"PRODUCT_LINE_UNSPECIFIED", +"GOOGLE_CLOUD", +"GOOGLE_MAPS" +], +"enumDescriptions": [ +"Unknown product type.", +"Google Cloud", +"Google Maps" +], +"type": "string" +} +}, +"type": "object" +}, +"SearchCaseClassificationsResponse": { +"description": "The response message for SearchCaseClassifications endpoint.", +"id": "SearchCaseClassificationsResponse", +"properties": { +"caseClassifications": { +"description": "The classifications retrieved.", +"items": { +"$ref": "CaseClassification" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `caseClassifications.list` requests. If unspecified, there are no more results to retrieve.", +"type": "string" +} +}, +"type": "object" +}, +"SearchCasesResponse": { +"description": "The response message for the SearchCases endpoint.", +"id": "SearchCasesResponse", +"properties": { +"cases": { +"description": "The list of cases associated with the parent after any filters have been applied.", +"items": { +"$ref": "Case" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.search` requests. If unspecified, there are no more results to retrieve.", +"type": "string" +} +}, +"type": "object" +}, +"ShowFeedResponse": { +"description": "The response message for the ShowFeed endpoint.", +"id": "ShowFeedResponse", +"properties": { +"feedItems": { +"description": "The list of feed items associated with the given Case.", +"items": { +"$ref": "FeedItem" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `ShowFeedRequests`. If unspecified, there are no more results to retrieve.", +"type": "string" +} +}, +"type": "object" +}, +"TextContent": { +"description": "Stores text attached to a support object.", +"id": "TextContent", +"properties": { +"plainText": { +"description": "Content in this field should be rendered and interpreted as-is.", +"type": "string" +} +}, +"type": "object" +}, +"WorkflowOperationMetadata": { +"description": "Metadata about the operation. Used to lookup the current status.", +"id": "WorkflowOperationMetadata", +"properties": { +"namespace": { +"description": "The namespace that the job was scheduled in. Must be included in the workflow metadata so the workflow status can be retrieved.", +"type": "string" +}, +"operationAction": { +"description": "The type of action the operation is classified as.", +"enum": [ +"OPERATION_ACTION_UNSPECIFIED", +"CREATE_SUPPORT_ACCOUNT", +"UPDATE_SUPPORT_ACCOUNT", +"PURCHASE_SUPPORT_ACCOUNT" +], +"enumDescriptions": [ +"Operation action is not specified.", +"Operation pertains to the creation of a new support account.", +"Operation pertains to the updating of an existing support account.", +"Operation pertains to the purchasing of a support plan that may either create or update a support account." +], +"type": "string" +}, +"workflowOperationType": { +"description": "Which version of the workflow service this operation came from.", +"enum": [ +"UNKNOWN_OPERATION_TYPE", +"WORKFLOWS_V1", +"WORKFLOWS_V2" +], +"enumDescriptions": [ +"Unknown version.", +"Version 1.", +"Version 2." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Cloud Support API", +"version": "v2beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtrace.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtrace.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..594fc0c7eadc0597bad63f72f6180bb5e6d0ab6a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtrace.v1.json @@ -0,0 +1,380 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/trace.append": { +"description": "Write Trace data for a project or application" +}, +"https://www.googleapis.com/auth/trace.readonly": { +"description": "Read Trace data for a project or application" +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudtrace.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Trace", +"description": "Sends application trace data to Cloud Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API. This library is used to interact with the Cloud Trace API directly. If you are looking to instrument your application for Cloud Trace, we recommend using OpenTelemetry. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/trace", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudtrace:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudtrace.mtls.googleapis.com/", +"name": "cloudtrace", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"patchTraces": { +"description": "Sends new traces to Cloud Trace or updates existing traces. If the ID of a trace that you send matches that of an existing trace, any fields in the existing trace and its spans are overwritten by the provided values, and any new fields provided are merged with the existing trace data. If the ID does not match, a new trace is created.", +"flatPath": "v1/projects/{projectId}/traces", +"httpMethod": "PATCH", +"id": "cloudtrace.projects.patchTraces", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. ID of the Cloud project where the trace data is stored.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/traces", +"request": { +"$ref": "Traces" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/trace.append" +] +} +}, +"resources": { +"traces": { +"methods": { +"get": { +"description": "Gets a single trace by its ID.", +"flatPath": "v1/projects/{projectId}/traces/{traceId}", +"httpMethod": "GET", +"id": "cloudtrace.projects.traces.get", +"parameterOrder": [ +"projectId", +"traceId" +], +"parameters": { +"projectId": { +"description": "Required. ID of the Cloud project where the trace data is stored.", +"location": "path", +"required": true, +"type": "string" +}, +"traceId": { +"description": "Required. ID of the trace to return.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/traces/{traceId}", +"response": { +"$ref": "Trace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/trace.readonly" +] +}, +"list": { +"description": "Returns a list of traces that match the specified filter conditions.", +"flatPath": "v1/projects/{projectId}/traces", +"httpMethod": "GET", +"id": "cloudtrace.projects.traces.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"endTime": { +"description": "End of the time interval (inclusive) during which the trace data was collected from the application.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Optional. A filter against labels for the request. By default, searches use prefix matching. To specify exact match, prepend a plus symbol (`+`) to the search term. Multiple terms are ANDed. Syntax: * `root:NAME_PREFIX` or `NAME_PREFIX`: Return traces where any root span starts with `NAME_PREFIX`. * `+root:NAME` or `+NAME`: Return traces where any root span's name is exactly `NAME`. * `span:NAME_PREFIX`: Return traces where any span starts with `NAME_PREFIX`. * `+span:NAME`: Return traces where any span's name is exactly `NAME`. * `latency:DURATION`: Return traces whose overall latency is greater or equal to than `DURATION`. Accepted units are nanoseconds (`ns`), milliseconds (`ms`), and seconds (`s`). Default is `ms`. For example, `latency:24ms` returns traces whose overall latency is greater than or equal to 24 milliseconds. * `label:LABEL_KEY`: Return all traces containing the specified label key (exact match, case-sensitive) regardless of the key:value pair's value (including empty values). * `LABEL_KEY:VALUE_PREFIX`: Return all traces containing the specified label key (exact match, case-sensitive) whose value starts with `VALUE_PREFIX`. Both a key and a value must be specified. * `+LABEL_KEY:VALUE`: Return all traces containing a key:value pair exactly matching the specified text. Both a key and a value must be specified. * `method:VALUE`: Equivalent to `/http/method:VALUE`. * `url:VALUE`: Equivalent to `/http/url:VALUE`.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field used to sort the returned traces. Can be one of the following: * `trace_id` * `name` (`name` field of root span in the trace) * `duration` (difference between `end_time` and `start_time` fields of the root span) * `start` (`start_time` field of the root span) Descending order can be specified by appending `desc` to the sort field (for example, `name desc`). Only one sort field is permitted.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of traces to return. If not specified or <= 0, the implementation selects a reasonable value. The implementation may return fewer traces than the requested page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token identifying the page of results to return. If provided, use the value of the `next_page_token` field from a previous request.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the Cloud project where the trace data is stored.", +"location": "path", +"required": true, +"type": "string" +}, +"startTime": { +"description": "Start of the time interval (inclusive) during which the trace data was collected from the application.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"view": { +"description": "Optional. Type of data returned for traces in the list. Default is `MINIMAL`.", +"enum": [ +"VIEW_TYPE_UNSPECIFIED", +"MINIMAL", +"ROOTSPAN", +"COMPLETE" +], +"enumDescriptions": [ +"Default is `MINIMAL` if unspecified.", +"Minimal view of the trace record that contains only the project and trace IDs.", +"Root span view of the trace record that returns the root spans along with the minimal trace data.", +"Complete view of the trace record that contains the actual trace data. This is equivalent to calling the REST `get` or RPC `GetTrace` method using the ID of each listed trace." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/projects/{projectId}/traces", +"response": { +"$ref": "ListTracesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/trace.readonly" +] +} +} +} +} +} +}, +"revision": "20240816", +"rootUrl": "https://cloudtrace.googleapis.com/", +"schemas": { +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ListTracesResponse": { +"description": "The response message for the `ListTraces` method.", +"id": "ListTracesResponse", +"properties": { +"nextPageToken": { +"description": "If defined, indicates that there are more traces that match the request and that this value should be passed to the next request to continue retrieving additional traces.", +"type": "string" +}, +"traces": { +"description": "List of trace records as specified by the view parameter.", +"items": { +"$ref": "Trace" +}, +"type": "array" +} +}, +"type": "object" +}, +"Trace": { +"description": "A trace describes how long it takes for an application to perform an operation. It consists of a set of spans, each of which represent a single timed event within the operation.", +"id": "Trace", +"properties": { +"projectId": { +"description": "Project ID of the Cloud project where the trace data is stored.", +"type": "string" +}, +"spans": { +"description": "Collection of spans in the trace.", +"items": { +"$ref": "TraceSpan" +}, +"type": "array" +}, +"traceId": { +"description": "Globally unique identifier for the trace. This identifier is a 128-bit numeric value formatted as a 32-byte hex string. For example, `382d4f4c6b7bb2f4a972559d9085001d`. The numeric value should not be zero.", +"type": "string" +} +}, +"type": "object" +}, +"TraceSpan": { +"description": "A span represents a single timed event within a trace. Spans can be nested and form a trace tree. Often, a trace contains a root span that describes the end-to-end latency of an operation and, optionally, one or more subspans for its suboperations. Spans do not need to be contiguous. There may be gaps between spans in a trace.", +"id": "TraceSpan", +"properties": { +"endTime": { +"description": "End time of the span in seconds and nanoseconds from the UNIX epoch.", +"format": "google-datetime", +"type": "string" +}, +"kind": { +"description": "Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `RPC_CLIENT` and `RPC_SERVER` to identify queueing latency associated with the span.", +"enum": [ +"SPAN_KIND_UNSPECIFIED", +"RPC_SERVER", +"RPC_CLIENT" +], +"enumDescriptions": [ +"Unspecified.", +"Indicates that the span covers server-side handling of an RPC or other remote network request.", +"Indicates that the span covers the client-side wrapper around an RPC or other remote request." +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Collection of labels associated with the span. Label keys must be less than 128 bytes. Label values must be less than 16 KiB. Some keys might have predefined meaning, and you can also create your own. For more information, see [Cloud Trace labels](https://cloud.google.com/trace/docs/trace-labels).", +"type": "object" +}, +"name": { +"description": "Name of the span. Must be less than 128 bytes. The span name is sanitized and displayed in the Trace tool in the Google Cloud Platform Console. The name may be a method name or some other per-call site name. For the same executable and the same call point, a best practice is to use a consistent name, which makes it easier to correlate cross-trace spans.", +"type": "string" +}, +"parentSpanId": { +"description": "Optional. ID of the parent span, if any.", +"format": "uint64", +"type": "string" +}, +"spanId": { +"description": "Identifier for the span. Must be a 64-bit integer other than 0 and unique within a trace. For example, `2205310701640571284`.", +"format": "uint64", +"type": "string" +}, +"startTime": { +"description": "Start time of the span in seconds and nanoseconds from the UNIX epoch.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Traces": { +"description": "List of new or updated traces.", +"id": "Traces", +"properties": { +"traces": { +"description": "List of traces.", +"items": { +"$ref": "Trace" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Trace API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtrace.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtrace.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..1d13d14e47da2f8f6f383b6c3c32541759ba724d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtrace.v2.json @@ -0,0 +1,610 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/trace.append": { +"description": "Write Trace data for a project or application" +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudtrace.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Trace", +"description": "Sends application trace data to Cloud Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API. This library is used to interact with the Cloud Trace API directly. If you are looking to instrument your application for Cloud Trace, we recommend using OpenTelemetry. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/trace", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudtrace:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudtrace.mtls.googleapis.com/", +"name": "cloudtrace", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"traces": { +"methods": { +"batchWrite": { +"description": "Batch writes new spans to new or existing traces. You cannot update existing spans.", +"flatPath": "v2/projects/{projectsId}/traces:batchWrite", +"httpMethod": "POST", +"id": "cloudtrace.projects.traces.batchWrite", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project where the spans belong. The format is `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}/traces:batchWrite", +"request": { +"$ref": "BatchWriteSpansRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/trace.append" +] +} +}, +"resources": { +"spans": { +"methods": { +"createSpan": { +"description": "Creates a new span.", +"flatPath": "v2/projects/{projectsId}/traces/{tracesId}/spans/{spansId}", +"httpMethod": "POST", +"id": "cloudtrace.projects.traces.spans.createSpan", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the span in the following format: * `projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/[SPAN_ID]` `[TRACE_ID]` is a unique identifier for a trace within a project; it is a 32-character hexadecimal encoding of a 16-byte array. It should not be zero. `[SPAN_ID]` is a unique identifier for a span within a trace; it is a 16-character hexadecimal encoding of an 8-byte array. It should not be zero. .", +"location": "path", +"pattern": "^projects/[^/]+/traces/[^/]+/spans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "Span" +}, +"response": { +"$ref": "Span" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/trace.append" +] +} +} +} +} +} +} +} +}, +"revision": "20240621", +"rootUrl": "https://cloudtrace.googleapis.com/", +"schemas": { +"Annotation": { +"description": "Text annotation with a set of attributes.", +"id": "Annotation", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "A set of attributes on the annotation. You can have up to 4 attributes per Annotation." +}, +"description": { +"$ref": "TruncatableString", +"description": "A user-supplied message describing the event. The maximum length for the description is 256 bytes." +} +}, +"type": "object" +}, +"AttributeValue": { +"description": "The allowed types for `[VALUE]` in a `[KEY]:[VALUE]` attribute.", +"id": "AttributeValue", +"properties": { +"boolValue": { +"description": "A Boolean value represented by `true` or `false`.", +"type": "boolean" +}, +"intValue": { +"description": "A 64-bit signed integer.", +"format": "int64", +"type": "string" +}, +"stringValue": { +"$ref": "TruncatableString", +"description": "A string up to 256 bytes long." +} +}, +"type": "object" +}, +"Attributes": { +"description": "A set of attributes as key-value pairs.", +"id": "Attributes", +"properties": { +"attributeMap": { +"additionalProperties": { +"$ref": "AttributeValue" +}, +"description": "A set of attributes. Each attribute's key can be up to 128 bytes long. The value can be a string up to 256 bytes, a signed 64-bit integer, or the boolean values `true` or `false`. For example: \"/instance_id\": { \"string_value\": { \"value\": \"my-instance\" } } \"/http/request_bytes\": { \"int_value\": 300 } \"example.com/myattribute\": { \"bool_value\": false }", +"type": "object" +}, +"droppedAttributesCount": { +"description": "The number of attributes that were discarded. Attributes can be discarded because their keys are too long or because there are too many attributes. If this value is 0 then all attributes are valid.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BatchWriteSpansRequest": { +"description": "The request message for the `BatchWriteSpans` method.", +"id": "BatchWriteSpansRequest", +"properties": { +"spans": { +"description": "Required. A list of new spans. The span names must not match existing spans, otherwise the results are undefined.", +"items": { +"$ref": "Span" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Link": { +"description": "A pointer from the current span to another span in the same trace or in a different trace. For example, this can be used in batching operations, where a single batch handler processes multiple requests from different traces or when the handler receives a request from a different project.", +"id": "Link", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "A set of attributes on the link. Up to 32 attributes can be specified per link." +}, +"spanId": { +"description": "The `[SPAN_ID]` for a span within a trace.", +"type": "string" +}, +"traceId": { +"description": "The `[TRACE_ID]` for a trace within a project.", +"type": "string" +}, +"type": { +"description": "The relationship of the current span relative to the linked span.", +"enum": [ +"TYPE_UNSPECIFIED", +"CHILD_LINKED_SPAN", +"PARENT_LINKED_SPAN" +], +"enumDescriptions": [ +"The relationship of the two spans is unknown.", +"The linked span is a child of the current span.", +"The linked span is a parent of the current span." +], +"type": "string" +} +}, +"type": "object" +}, +"Links": { +"description": "A collection of links, which are references from this span to a span in the same or different trace.", +"id": "Links", +"properties": { +"droppedLinksCount": { +"description": "The number of dropped links after the maximum size was enforced. If this value is 0, then no links were dropped.", +"format": "int32", +"type": "integer" +}, +"link": { +"description": "A collection of links.", +"items": { +"$ref": "Link" +}, +"type": "array" +} +}, +"type": "object" +}, +"MessageEvent": { +"description": "An event describing a message sent/received between Spans.", +"id": "MessageEvent", +"properties": { +"compressedSizeBytes": { +"description": "The number of compressed bytes sent or received. If missing, the compressed size is assumed to be the same size as the uncompressed size.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "An identifier for the MessageEvent's message that can be used to match `SENT` and `RECEIVED` MessageEvents.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "Type of MessageEvent. Indicates whether the message was sent or received.", +"enum": [ +"TYPE_UNSPECIFIED", +"SENT", +"RECEIVED" +], +"enumDescriptions": [ +"Unknown event type.", +"Indicates a sent message.", +"Indicates a received message." +], +"type": "string" +}, +"uncompressedSizeBytes": { +"description": "The number of uncompressed bytes sent or received.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Module": { +"description": "Binary module.", +"id": "Module", +"properties": { +"buildId": { +"$ref": "TruncatableString", +"description": "A unique identifier for the module, usually a hash of its contents (up to 128 bytes)." +}, +"module": { +"$ref": "TruncatableString", +"description": "For example: main binary, kernel modules, and dynamic libraries such as libc.so, sharedlib.so (up to 256 bytes)." +} +}, +"type": "object" +}, +"Span": { +"description": "A span represents a single operation within a trace. Spans can be nested to form a trace tree. Often, a trace contains a root span that describes the end-to-end latency, and one or more subspans for its sub-operations. A trace can also contain multiple root spans, or none at all. Spans do not need to be contiguous. There might be gaps or overlaps between spans in a trace.", +"id": "Span", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "A set of attributes on the span. You can have up to 32 attributes per span." +}, +"childSpanCount": { +"description": "Optional. The number of child spans that were generated while this span was active. If set, allows implementation to detect missing child spans.", +"format": "int32", +"type": "integer" +}, +"displayName": { +"$ref": "TruncatableString", +"description": "Required. A description of the span's operation (up to 128 bytes). Cloud Trace displays the description in the Cloud console. For example, the display name can be a qualified method name or a file name and a line number where the operation is called. A best practice is to use the same display name within an application and at the same call point. This makes it easier to correlate spans in different traces." +}, +"endTime": { +"description": "Required. The end time of the span. On the client side, this is the time kept by the local machine where the span execution ends. On the server side, this is the time when the server application handler stops running.", +"format": "google-datetime", +"type": "string" +}, +"links": { +"$ref": "Links", +"description": "Links associated with the span. You can have up to 128 links per Span." +}, +"name": { +"description": "Required. The resource name of the span in the following format: * `projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/[SPAN_ID]` `[TRACE_ID]` is a unique identifier for a trace within a project; it is a 32-character hexadecimal encoding of a 16-byte array. It should not be zero. `[SPAN_ID]` is a unique identifier for a span within a trace; it is a 16-character hexadecimal encoding of an 8-byte array. It should not be zero. .", +"type": "string" +}, +"parentSpanId": { +"description": "The `[SPAN_ID]` of this span's parent span. If this is a root span, then this field must be empty.", +"type": "string" +}, +"sameProcessAsParentSpan": { +"description": "Optional. Set this parameter to indicate whether this span is in the same process as its parent. If you do not set this parameter, Trace is unable to take advantage of this helpful information.", +"type": "boolean" +}, +"spanId": { +"description": "Required. The `[SPAN_ID]` portion of the span's resource name.", +"type": "string" +}, +"spanKind": { +"description": "Optional. Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `CLIENT` (caller) and `SERVER` (callee) to identify an RPC call.", +"enum": [ +"SPAN_KIND_UNSPECIFIED", +"INTERNAL", +"SERVER", +"CLIENT", +"PRODUCER", +"CONSUMER" +], +"enumDescriptions": [ +"Unspecified. Do NOT use as default. Implementations MAY assume SpanKind.INTERNAL to be default.", +"Indicates that the span is used internally. Default value.", +"Indicates that the span covers server-side handling of an RPC or other remote network request.", +"Indicates that the span covers the client-side wrapper around an RPC or other remote request.", +"Indicates that the span describes producer sending a message to a broker. Unlike client and server, there is no direct critical path latency relationship between producer and consumer spans (e.g. publishing a message to a pubsub service).", +"Indicates that the span describes consumer receiving a message from a broker. Unlike client and server, there is no direct critical path latency relationship between producer and consumer spans (e.g. receiving a message from a pubsub service subscription)." +], +"type": "string" +}, +"stackTrace": { +"$ref": "StackTrace", +"description": "Stack trace captured at the start of the span." +}, +"startTime": { +"description": "Required. The start time of the span. On the client side, this is the time kept by the local machine where the span execution starts. On the server side, this is the time when the server's application handler starts running.", +"format": "google-datetime", +"type": "string" +}, +"status": { +"$ref": "Status", +"description": "Optional. The final status for this span." +}, +"timeEvents": { +"$ref": "TimeEvents", +"description": "A set of time events. You can have up to 32 annotations and 128 message events per span." +} +}, +"type": "object" +}, +"StackFrame": { +"description": "Represents a single stack frame in a stack trace.", +"id": "StackFrame", +"properties": { +"columnNumber": { +"description": "The column number where the function call appears, if available. This is important in JavaScript because of its anonymous functions.", +"format": "int64", +"type": "string" +}, +"fileName": { +"$ref": "TruncatableString", +"description": "The name of the source file where the function call appears (up to 256 bytes)." +}, +"functionName": { +"$ref": "TruncatableString", +"description": "The fully-qualified name that uniquely identifies the function or method that is active in this frame (up to 1024 bytes)." +}, +"lineNumber": { +"description": "The line number in `file_name` where the function call appears.", +"format": "int64", +"type": "string" +}, +"loadModule": { +"$ref": "Module", +"description": "The binary module from where the code was loaded." +}, +"originalFunctionName": { +"$ref": "TruncatableString", +"description": "An un-mangled function name, if `function_name` is mangled. To get information about name mangling, run [this search](https://www.google.com/search?q=cxx+name+mangling). The name can be fully-qualified (up to 1024 bytes)." +}, +"sourceVersion": { +"$ref": "TruncatableString", +"description": "The version of the deployed source code (up to 128 bytes)." +} +}, +"type": "object" +}, +"StackFrames": { +"description": "A collection of stack frames, which can be truncated.", +"id": "StackFrames", +"properties": { +"droppedFramesCount": { +"description": "The number of stack frames that were dropped because there were too many stack frames. If this value is 0, then no stack frames were dropped.", +"format": "int32", +"type": "integer" +}, +"frame": { +"description": "Stack frames in this call stack.", +"items": { +"$ref": "StackFrame" +}, +"type": "array" +} +}, +"type": "object" +}, +"StackTrace": { +"description": "A call stack appearing in a trace.", +"id": "StackTrace", +"properties": { +"stackFrames": { +"$ref": "StackFrames", +"description": "Stack frames in this stack trace. A maximum of 128 frames are allowed." +}, +"stackTraceHashId": { +"description": "The hash ID is used to conserve network bandwidth for duplicate stack traces within a single trace. Often multiple spans will have identical stack traces. The first occurrence of a stack trace should contain both the `stackFrame` content and a value in `stackTraceHashId`. Subsequent spans within the same request can refer to that stack trace by only setting `stackTraceHashId`.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TimeEvent": { +"description": "A time-stamped annotation or message event in the Span.", +"id": "TimeEvent", +"properties": { +"annotation": { +"$ref": "Annotation", +"description": "Text annotation with a set of attributes." +}, +"messageEvent": { +"$ref": "MessageEvent", +"description": "An event describing a message sent/received between Spans." +}, +"time": { +"description": "The timestamp indicating the time the event occurred.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TimeEvents": { +"description": "A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation on the span, consisting of either user-supplied key:value pairs, or details of a message sent/received between Spans.", +"id": "TimeEvents", +"properties": { +"droppedAnnotationsCount": { +"description": "The number of dropped annotations in all the included time events. If the value is 0, then no annotations were dropped.", +"format": "int32", +"type": "integer" +}, +"droppedMessageEventsCount": { +"description": "The number of dropped message events in all the included time events. If the value is 0, then no message events were dropped.", +"format": "int32", +"type": "integer" +}, +"timeEvent": { +"description": "A collection of `TimeEvent`s.", +"items": { +"$ref": "TimeEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"TruncatableString": { +"description": "Represents a string that might be shortened to a specified length.", +"id": "TruncatableString", +"properties": { +"truncatedByteCount": { +"description": "The number of bytes removed from the original string. If this value is 0, then the string was not shortened.", +"format": "int32", +"type": "integer" +}, +"value": { +"description": "The shortened string. For example, if the original string is 500 bytes long and the limit of the string is 128 bytes, then `value` contains the first 128 bytes of the 500-byte string. Truncation always happens on a UTF8 character boundary. If there are multi-byte characters in the string, then the length of the shortened string might be less than the size limit.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Trace API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/composer.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/composer.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..af3e23c74abc2db2bfa4d20632e1c6ef7975f115 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/composer.v1.json @@ -0,0 +1,2734 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://composer.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Composer", +"description": "Manages Apache Airflow environments on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/composer/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-north2.rep.googleapis.com/", +"location": "europe-north2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.northamerica-south1.rep.googleapis.com/", +"location": "northamerica-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "composer:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://composer.mtls.googleapis.com/", +"name": "composer", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"environments": { +"methods": { +"checkUpgrade": { +"description": "Check if an upgrade operation on the environment will succeed. In case of problems detailed info can be found in the returned Operation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:checkUpgrade", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.checkUpgrade", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Required. The resource name of the environment to check upgrade for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:checkUpgrade", +"request": { +"$ref": "CheckUpgradeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Create a new environment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent must be of the form \"projects/{projectId}/locations/{locationId}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/environments", +"request": { +"$ref": "Environment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"databaseFailover": { +"description": "Triggers database failover (only for highly resilient environments).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:databaseFailover", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.databaseFailover", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Target environment: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:databaseFailover", +"request": { +"$ref": "DatabaseFailoverRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an environment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The environment to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"executeAirflowCommand": { +"description": "Executes Airflow CLI command.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:executeAirflowCommand", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.executeAirflowCommand", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:executeAirflowCommand", +"request": { +"$ref": "ExecuteAirflowCommandRequest" +}, +"response": { +"$ref": "ExecuteAirflowCommandResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchDatabaseProperties": { +"description": "Fetches database properties.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:fetchDatabaseProperties", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.fetchDatabaseProperties", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Required. The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:fetchDatabaseProperties", +"response": { +"$ref": "FetchDatabasePropertiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get an existing environment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the environment to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List environments.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of environments to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "List environments in the given project and location, in the form: \"projects/{projectId}/locations/{locationId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/environments", +"response": { +"$ref": "ListEnvironmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"loadSnapshot": { +"description": "Loads a snapshot of a Cloud Composer environment. As a result of this operation, a snapshot of environment's specified in LoadSnapshotRequest is loaded into the environment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:loadSnapshot", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.loadSnapshot", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the target environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:loadSnapshot", +"request": { +"$ref": "LoadSnapshotRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an environment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "composer.projects.locations.environments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the environment to update, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of numpy, the `updateMask` parameter would include the following two `paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and \"config.softwareConfig.pypiPackages.numpy\". The included patch environment would specify the scikit-learn version as follows: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and numpy will be unaffected. Only one update type may be included in a single request's `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming it already exists), one can provide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate the patch environment as follows: { \"labels\":{ \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field's path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path \"config.softwareConfig.pypiPackages\", and the patch environment would be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerNetworkAccessControl` * Replace the environment's current `WebServerNetworkAccessControl`. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. * `config.databaseConfig.machineType` * Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Environment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pollAirflowCommand": { +"description": "Polls Airflow CLI command execution and fetches logs.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:pollAirflowCommand", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.pollAirflowCommand", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:pollAirflowCommand", +"request": { +"$ref": "PollAirflowCommandRequest" +}, +"response": { +"$ref": "PollAirflowCommandResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"saveSnapshot": { +"description": "Creates a snapshots of a Cloud Composer environment. As a result of this operation, snapshot of environment's state is stored in a location specified in the SaveSnapshotRequest.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:saveSnapshot", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.saveSnapshot", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the source environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:saveSnapshot", +"request": { +"$ref": "SaveSnapshotRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stopAirflowCommand": { +"description": "Stops Airflow CLI command execution.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:stopAirflowCommand", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.stopAirflowCommand", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:stopAirflowCommand", +"request": { +"$ref": "StopAirflowCommandRequest" +}, +"response": { +"$ref": "StopAirflowCommandResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"userWorkloadsConfigMaps": { +"methods": { +"create": { +"description": "Creates a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The environment name to create a ConfigMap for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userWorkloadsConfigMaps", +"request": { +"$ref": "UserWorkloadsConfigMap" +}, +"response": { +"$ref": "UserWorkloadsConfigMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ConfigMap to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an existing user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ConfigMap to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "UserWorkloadsConfigMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists user workloads ConfigMaps. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of ConfigMaps to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. List ConfigMaps in the given environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userWorkloadsConfigMaps", +"response": { +"$ref": "ListUserWorkloadsConfigMapsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", +"httpMethod": "PUT", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ConfigMap, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "UserWorkloadsConfigMap" +}, +"response": { +"$ref": "UserWorkloadsConfigMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"userWorkloadsSecrets": { +"methods": { +"create": { +"description": "Creates a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The environment name to create a Secret for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userWorkloadsSecrets", +"request": { +"$ref": "UserWorkloadsSecret" +}, +"response": { +"$ref": "UserWorkloadsSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Secret to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an existing user workloads Secret. Values of the \"data\" field in the response are cleared. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Secret to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "UserWorkloadsSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists user workloads Secrets. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of Secrets to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. List Secrets in the given environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userWorkloadsSecrets", +"response": { +"$ref": "ListUserWorkloadsSecretsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", +"httpMethod": "PUT", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the Secret, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "UserWorkloadsSecret" +}, +"response": { +"$ref": "UserWorkloadsSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workloads": { +"methods": { +"list": { +"description": "Lists workloads in a Cloud Composer environment. Workload is a unit that runs a single Composer component. This method is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/workloads", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.workloads.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The list filter. Currently only supports equality on the type field. The value of a field specified in the filter expression must be one ComposerWorkloadType enum option. It's possible to get multiple types using \"OR\" operator, e.g.: \"type=SCHEDULER OR type=CELERY_WORKER\". If not specified, all items are returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of environments to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The environment name to get workloads for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/workloads", +"response": { +"$ref": "ListWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"imageVersions": { +"methods": { +"list": { +"description": "List ImageVersions for provided location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageVersions", +"httpMethod": "GET", +"id": "composer.projects.locations.imageVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"includePastReleases": { +"description": "Whether or not image versions from old releases should be included.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "The maximum number of image_versions to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "List ImageVersions in the given project and location, in the form: \"projects/{projectId}/locations/{locationId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/imageVersions", +"response": { +"$ref": "ListImageVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "composer.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250108", +"rootUrl": "https://composer.googleapis.com/", +"schemas": { +"AirflowMetadataRetentionPolicyConfig": { +"description": "The policy for airflow metadata database retention.", +"id": "AirflowMetadataRetentionPolicyConfig", +"properties": { +"retentionDays": { +"description": "Optional. How many days data should be retained for.", +"format": "int32", +"type": "integer" +}, +"retentionMode": { +"description": "Optional. Retention can be either enabled or disabled.", +"enum": [ +"RETENTION_MODE_UNSPECIFIED", +"RETENTION_MODE_ENABLED", +"RETENTION_MODE_DISABLED" +], +"enumDescriptions": [ +"Default mode doesn't change environment parameters.", +"Retention policy is enabled.", +"Retention policy is disabled." +], +"type": "string" +} +}, +"type": "object" +}, +"AllowedIpRange": { +"description": "Allowed IP range with user-provided description.", +"id": "AllowedIpRange", +"properties": { +"description": { +"description": "Optional. User-provided description. It must contain at most 300 characters.", +"type": "string" +}, +"value": { +"description": "IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be properly truncated. For example, `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to `2001:db8::/32`.", +"type": "string" +} +}, +"type": "object" +}, +"CheckUpgradeRequest": { +"description": "Request to check whether image upgrade will succeed.", +"id": "CheckUpgradeRequest", +"properties": { +"imageVersion": { +"description": "Optional. The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", +"type": "string" +} +}, +"type": "object" +}, +"CheckUpgradeResponse": { +"description": "Message containing information about the result of an upgrade check operation.", +"id": "CheckUpgradeResponse", +"properties": { +"buildLogUri": { +"description": "Output only. Url for a docker build log of an upgraded image.", +"readOnly": true, +"type": "string" +}, +"containsPypiModulesConflict": { +"description": "Output only. Whether build has succeeded or failed on modules conflicts.", +"enum": [ +"CONFLICT_RESULT_UNSPECIFIED", +"CONFLICT", +"NO_CONFLICT" +], +"enumDescriptions": [ +"It is unknown whether build had conflicts or not.", +"There were python packages conflicts.", +"There were no python packages conflicts." +], +"readOnly": true, +"type": "string" +}, +"imageVersion": { +"description": "Composer image for which the build was happening.", +"type": "string" +}, +"pypiConflictBuildLogExtract": { +"description": "Output only. Extract from a docker image build log containing information about pypi modules conflicts.", +"readOnly": true, +"type": "string" +}, +"pypiDependencies": { +"additionalProperties": { +"type": "string" +}, +"description": "Pypi dependencies specified in the environment configuration, at the time when the build was triggered.", +"type": "object" +} +}, +"type": "object" +}, +"CidrBlock": { +"description": "CIDR block with an optional name.", +"id": "CidrBlock", +"properties": { +"cidrBlock": { +"description": "CIDR block that must be specified in CIDR notation.", +"type": "string" +}, +"displayName": { +"description": "User-defined name that identifies the CIDR block.", +"type": "string" +} +}, +"type": "object" +}, +"CloudDataLineageIntegration": { +"description": "Configuration for Cloud Data Lineage integration.", +"id": "CloudDataLineageIntegration", +"properties": { +"enabled": { +"description": "Optional. Whether or not Cloud Data Lineage integration is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"ComposerWorkload": { +"description": "Information about a single workload.", +"id": "ComposerWorkload", +"properties": { +"name": { +"description": "Name of a workload.", +"type": "string" +}, +"status": { +"$ref": "ComposerWorkloadStatus", +"description": "Output only. Status of a workload.", +"readOnly": true +}, +"type": { +"description": "Type of a workload.", +"enum": [ +"COMPOSER_WORKLOAD_TYPE_UNSPECIFIED", +"CELERY_WORKER", +"KUBERNETES_WORKER", +"KUBERNETES_OPERATOR_POD", +"SCHEDULER", +"DAG_PROCESSOR", +"TRIGGERER", +"WEB_SERVER", +"REDIS" +], +"enumDescriptions": [ +"Not able to determine the type of the workload.", +"Celery worker.", +"Kubernetes worker.", +"Workload created by Kubernetes Pod Operator.", +"Airflow scheduler.", +"Airflow Dag processor.", +"Airflow triggerer.", +"Airflow web server UI.", +"Redis." +], +"type": "string" +} +}, +"type": "object" +}, +"ComposerWorkloadStatus": { +"description": "Workload status.", +"id": "ComposerWorkloadStatus", +"properties": { +"detailedStatusMessage": { +"description": "Output only. Detailed message of the status.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Workload state.", +"enum": [ +"COMPOSER_WORKLOAD_STATE_UNSPECIFIED", +"PENDING", +"OK", +"WARNING", +"ERROR", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Not able to determine the status of the workload.", +"Workload is in pending state and has not yet started.", +"Workload is running fine.", +"Workload is running but there are some non-critical problems.", +"Workload is not running due to an error.", +"Workload has finished execution with success.", +"Workload has finished execution with failure." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Text to provide more descriptive status.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DagProcessorResource": { +"description": "Configuration for resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"id": "DagProcessorResource", +"properties": { +"count": { +"description": "Optional. The number of DAG processors. If not provided or set to 0, a single DAG processor instance will be created.", +"format": "int32", +"type": "integer" +}, +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow DAG processor replica.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow DAG processor replica.", +"format": "float", +"type": "number" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for a single Airflow DAG processor replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"DataRetentionConfig": { +"description": "The configuration setting for Airflow database data retention mechanism.", +"id": "DataRetentionConfig", +"properties": { +"airflowMetadataRetentionConfig": { +"$ref": "AirflowMetadataRetentionPolicyConfig", +"description": "Optional. The retention policy for airflow metadata database." +}, +"taskLogsRetentionConfig": { +"$ref": "TaskLogsRetentionConfig", +"description": "Optional. The configuration settings for task logs retention" +} +}, +"type": "object" +}, +"DatabaseConfig": { +"description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software.", +"id": "DatabaseConfig", +"properties": { +"machineType": { +"description": "Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"zone": { +"description": "Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*.", +"type": "string" +} +}, +"type": "object" +}, +"DatabaseFailoverRequest": { +"description": "Request to trigger database failover (only for highly resilient environments).", +"id": "DatabaseFailoverRequest", +"properties": {}, +"type": "object" +}, +"DatabaseFailoverResponse": { +"description": "Response for DatabaseFailoverRequest.", +"id": "DatabaseFailoverResponse", +"properties": {}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionConfig": { +"description": "The encryption options for the Cloud Composer environment and its dependencies.Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"id": "EncryptionConfig", +"properties": { +"kmsKeyName": { +"description": "Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated. If not specified, Google-managed key will be used.", +"type": "string" +} +}, +"type": "object" +}, +"Environment": { +"description": "An environment for running orchestration tasks.", +"id": "Environment", +"properties": { +"config": { +"$ref": "EnvironmentConfig", +"description": "Optional. Configuration parameters for this environment." +}, +"createTime": { +"description": "Output only. The time at which this environment was created.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \\p{Ll}\\p{Lo}{0,62} * Values must conform to regexp: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\" EnvironmentId must start with a lowercase letter followed by up to 63 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "The current state of the environment.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"RUNNING", +"UPDATING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"The state of the environment is unknown.", +"The environment is in the process of being created.", +"The environment is currently running and healthy. It is ready for use.", +"The environment is being updated. It remains usable but cannot receive additional update requests or be deleted at this time.", +"The environment is undergoing deletion. It cannot be used.", +"The environment has encountered an error and cannot be used." +], +"type": "string" +}, +"storageConfig": { +"$ref": "StorageConfig", +"description": "Optional. Storage configuration for this environment." +}, +"updateTime": { +"description": "Output only. The time at which this environment was last modified.", +"format": "google-datetime", +"type": "string" +}, +"uuid": { +"description": "Output only. The UUID (Universally Unique IDentifier) associated with this environment. This value is generated when the environment is created.", +"type": "string" +} +}, +"type": "object" +}, +"EnvironmentConfig": { +"description": "Configuration information for an environment.", +"id": "EnvironmentConfig", +"properties": { +"airflowByoidUri": { +"description": "Output only. The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)).", +"readOnly": true, +"type": "string" +}, +"airflowUri": { +"description": "Output only. The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)).", +"type": "string" +}, +"dagGcsPrefix": { +"description": "Output only. The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using \"/\"-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with the given prefix.", +"type": "string" +}, +"dataRetentionConfig": { +"$ref": "DataRetentionConfig", +"description": "Optional. The configuration setting for Airflow database data retention mechanism." +}, +"databaseConfig": { +"$ref": "DatabaseConfig", +"description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software." +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption options for the Cloud Composer environment and its dependencies. Cannot be updated." +}, +"environmentSize": { +"description": "Optional. The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"enum": [ +"ENVIRONMENT_SIZE_UNSPECIFIED", +"ENVIRONMENT_SIZE_SMALL", +"ENVIRONMENT_SIZE_MEDIUM", +"ENVIRONMENT_SIZE_LARGE" +], +"enumDescriptions": [ +"The size of the environment is unspecified.", +"The environment size is small.", +"The environment size is medium.", +"The environment size is large." +], +"type": "string" +}, +"gkeCluster": { +"description": "Output only. The Kubernetes Engine cluster used to run this environment.", +"type": "string" +}, +"maintenanceWindow": { +"$ref": "MaintenanceWindow", +"description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window is applied. By default, maintenance windows are from 00:00:00 to 04:00:00 (GMT) on Friday, Saturday, and Sunday every week." +}, +"masterAuthorizedNetworksConfig": { +"$ref": "MasterAuthorizedNetworksConfig", +"description": "Optional. The configuration options for GKE cluster master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled." +}, +"nodeConfig": { +"$ref": "NodeConfig", +"description": "Optional. The configuration used for the Kubernetes Engine cluster." +}, +"nodeCount": { +"description": "The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"format": "int32", +"type": "integer" +}, +"privateEnvironmentConfig": { +"$ref": "PrivateEnvironmentConfig", +"description": "Optional. The configuration used for the Private IP Cloud Composer environment." +}, +"recoveryConfig": { +"$ref": "RecoveryConfig", +"description": "Optional. The Recovery settings configuration of an environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer." +}, +"resilienceMode": { +"description": "Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer.", +"enum": [ +"RESILIENCE_MODE_UNSPECIFIED", +"HIGH_RESILIENCE" +], +"enumDescriptions": [ +"Default mode doesn't change environment parameters.", +"Enabled High Resilience mode, including Cloud SQL HA." +], +"type": "string" +}, +"softwareConfig": { +"$ref": "SoftwareConfig", +"description": "Optional. The configuration settings for software inside the environment." +}, +"webServerConfig": { +"$ref": "WebServerConfig", +"description": "Optional. The configuration settings for the Airflow web server App Engine instance." +}, +"webServerNetworkAccessControl": { +"$ref": "WebServerNetworkAccessControl", +"description": "Optional. The network-level access control policy for the Airflow web server. If unspecified, no network-level access restrictions will be applied." +}, +"workloadsConfig": { +"$ref": "WorkloadsConfig", +"description": "Optional. The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. The GKE cluster runs Airflow scheduler, web server and workers workloads. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer." +} +}, +"type": "object" +}, +"ExecuteAirflowCommandRequest": { +"description": "Execute Airflow Command request.", +"id": "ExecuteAirflowCommandRequest", +"properties": { +"command": { +"description": "Airflow command.", +"type": "string" +}, +"parameters": { +"description": "Parameters for the Airflow command/subcommand as an array of arguments. It may contain positional arguments like `[\"my-dag-id\"]`, key-value parameters like `[\"--foo=bar\"]` or `[\"--foo\",\"bar\"]`, or other flags like `[\"-f\"]`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"subcommand": { +"description": "Airflow subcommand.", +"type": "string" +} +}, +"type": "object" +}, +"ExecuteAirflowCommandResponse": { +"description": "Response to ExecuteAirflowCommandRequest.", +"id": "ExecuteAirflowCommandResponse", +"properties": { +"error": { +"description": "Error message. Empty if there was no error.", +"type": "string" +}, +"executionId": { +"description": "The unique ID of the command execution for polling.", +"type": "string" +}, +"pod": { +"description": "The name of the pod where the command is executed.", +"type": "string" +}, +"podNamespace": { +"description": "The namespace of the pod where the command is executed.", +"type": "string" +} +}, +"type": "object" +}, +"ExitInfo": { +"description": "Information about how a command ended.", +"id": "ExitInfo", +"properties": { +"error": { +"description": "Error message. Empty if there was no error.", +"type": "string" +}, +"exitCode": { +"description": "The exit code from the command execution.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FetchDatabasePropertiesResponse": { +"description": "Response for FetchDatabasePropertiesRequest.", +"id": "FetchDatabasePropertiesResponse", +"properties": { +"isFailoverReplicaAvailable": { +"description": "The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only fail over to the failover replica when the status is true.", +"type": "boolean" +}, +"primaryGceZone": { +"description": "The Compute Engine zone that the instance is currently serving from.", +"type": "string" +}, +"secondaryGceZone": { +"description": "The Compute Engine zone that the failover instance is currently serving from for a regional Cloud SQL instance.", +"type": "string" +} +}, +"type": "object" +}, +"IPAllocationPolicy": { +"description": "Configuration for controlling how IPs are allocated in the GKE cluster running the Apache Airflow software.", +"id": "IPAllocationPolicy", +"properties": { +"clusterIpv4CidrBlock": { +"description": "Optional. The IP address range used to allocate IP addresses to pods in the GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", +"type": "string" +}, +"clusterSecondaryRangeName": { +"description": "Optional. The name of the GKE cluster's secondary range used to allocate IP addresses to pods. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true.", +"type": "string" +}, +"servicesIpv4CidrBlock": { +"description": "Optional. The IP address range of the services IP addresses in this GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", +"type": "string" +}, +"servicesSecondaryRangeName": { +"description": "Optional. The name of the services' secondary range used to allocate IP addresses to the GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true.", +"type": "string" +}, +"useIpAliases": { +"description": "Optional. Whether or not to enable Alias IPs in the GKE cluster. If `true`, a VPC-native cluster is created. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters.", +"type": "boolean" +} +}, +"type": "object" +}, +"ImageVersion": { +"description": "ImageVersion information", +"id": "ImageVersion", +"properties": { +"creationDisabled": { +"description": "Whether it is impossible to create an environment with the image version.", +"type": "boolean" +}, +"imageVersionId": { +"description": "The string identifier of the ImageVersion, in the form: \"composer-x.y.z-airflow-a.b.c\"", +"type": "string" +}, +"isDefault": { +"description": "Whether this is the default ImageVersion used by Composer during environment creation if no input ImageVersion is specified.", +"type": "boolean" +}, +"releaseDate": { +"$ref": "Date", +"description": "The date of the version release." +}, +"supportedPythonVersions": { +"description": "supported python versions", +"items": { +"type": "string" +}, +"type": "array" +}, +"upgradeDisabled": { +"description": "Whether it is impossible to upgrade an environment running with the image version.", +"type": "boolean" +} +}, +"type": "object" +}, +"Line": { +"description": "Contains information about a single line from logs.", +"id": "Line", +"properties": { +"content": { +"description": "Text content of the log line.", +"type": "string" +}, +"lineNumber": { +"description": "Number of the line.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListEnvironmentsResponse": { +"description": "The environments in a project and location.", +"id": "ListEnvironmentsResponse", +"properties": { +"environments": { +"description": "The list of environments returned by a ListEnvironmentsRequest.", +"items": { +"$ref": "Environment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +} +}, +"type": "object" +}, +"ListImageVersionsResponse": { +"description": "The ImageVersions in a project and location.", +"id": "ListImageVersionsResponse", +"properties": { +"imageVersions": { +"description": "The list of supported ImageVersions in a location.", +"items": { +"$ref": "ImageVersion" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUserWorkloadsConfigMapsResponse": { +"description": "The user workloads ConfigMaps for a given environment.", +"id": "ListUserWorkloadsConfigMapsResponse", +"properties": { +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +}, +"userWorkloadsConfigMaps": { +"description": "The list of ConfigMaps returned by a ListUserWorkloadsConfigMapsRequest.", +"items": { +"$ref": "UserWorkloadsConfigMap" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUserWorkloadsSecretsResponse": { +"description": "The user workloads Secrets for a given environment.", +"id": "ListUserWorkloadsSecretsResponse", +"properties": { +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +}, +"userWorkloadsSecrets": { +"description": "The list of Secrets returned by a ListUserWorkloadsSecretsRequest.", +"items": { +"$ref": "UserWorkloadsSecret" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadsResponse": { +"description": "Response to ListWorkloadsRequest.", +"id": "ListWorkloadsResponse", +"properties": { +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +}, +"workloads": { +"description": "The list of environment workloads.", +"items": { +"$ref": "ComposerWorkload" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadSnapshotRequest": { +"description": "Request to load a snapshot into a Cloud Composer environment.", +"id": "LoadSnapshotRequest", +"properties": { +"skipAirflowOverridesSetting": { +"description": "Whether or not to skip setting Airflow overrides when loading the environment's state.", +"type": "boolean" +}, +"skipEnvironmentVariablesSetting": { +"description": "Whether or not to skip setting environment variables when loading the environment's state.", +"type": "boolean" +}, +"skipGcsDataCopying": { +"description": "Whether or not to skip copying Cloud Storage data when loading the environment's state.", +"type": "boolean" +}, +"skipPypiPackagesInstallation": { +"description": "Whether or not to skip installing Pypi packages when loading the environment's state.", +"type": "boolean" +}, +"snapshotPath": { +"description": "A Cloud Storage path to a snapshot to load, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\".", +"type": "string" +} +}, +"type": "object" +}, +"LoadSnapshotResponse": { +"description": "Response to LoadSnapshotRequest.", +"id": "LoadSnapshotResponse", +"properties": {}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "The configuration settings for Cloud Composer maintenance window. The following example: ``` { \"startTime\":\"2019-08-01T01:00:00Z\" \"endTime\":\"2019-08-01T07:00:00Z\" \"recurrence\":\"FREQ=WEEKLY;BYDAY=TU,WE\" } ``` would define a maintenance window between 01 and 07 hours UTC during each Tuesday and Wednesday.", +"id": "MaintenanceWindow", +"properties": { +"endTime": { +"description": "Required. Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to `start_time`.", +"format": "google-datetime", +"type": "string" +}, +"recurrence": { +"description": "Required. Maintenance window recurrence. Format is a subset of [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`.", +"type": "string" +}, +"startTime": { +"description": "Required. Start time of the first recurrence of the maintenance window.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MasterAuthorizedNetworksConfig": { +"description": "Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.", +"id": "MasterAuthorizedNetworksConfig", +"properties": { +"cidrBlocks": { +"description": "Up to 50 external networks that could access Kubernetes master through HTTPS.", +"items": { +"$ref": "CidrBlock" +}, +"type": "array" +}, +"enabled": { +"description": "Whether or not master authorized networks feature is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"NetworkingConfig": { +"description": "Configuration options for networking connections in the Composer 2 environment.", +"id": "NetworkingConfig", +"properties": { +"connectionType": { +"description": "Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"VPC_PEERING", +"PRIVATE_SERVICE_CONNECT" +], +"enumDescriptions": [ +"No specific connection type was requested, so the environment uses the default value corresponding to the rest of its configuration.", +"Requests the use of VPC peerings for connecting the Customer and Tenant projects.", +"Requests the use of Private Service Connect for connecting the Customer and Tenant projects." +], +"type": "string" +} +}, +"type": "object" +}, +"NodeConfig": { +"description": "The configuration information for the Kubernetes Engine nodes running the Apache Airflow software.", +"id": "NodeConfig", +"properties": { +"composerInternalIpv4CidrBlock": { +"description": "Optional. The IP range in CIDR notation to use internally by Cloud Composer. IP addresses are not reserved - and the same range can be used by multiple Cloud Composer environments. In case of overlap, IPs from this range will not be accessible in the user's VPC network. Cannot be updated. If not specified, the default value of '100.64.128.0/20' is used. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"type": "string" +}, +"composerNetworkAttachment": { +"description": "Optional. Network Attachment that Cloud Composer environment is connected to, which provides connectivity with a user's VPC network. Takes precedence over network and subnetwork settings. If not provided, but network and subnetwork are defined during environment, it will be provisioned. If not provided and network and subnetwork are also empty, then connectivity to user's VPC network is disabled. Network attachment must be provided in format projects/{project}/regions/{region}/networkAttachments/{networkAttachment}. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"type": "string" +}, +"diskSizeGb": { +"description": "Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"format": "int32", +"type": "integer" +}, +"enableIpMasqAgent": { +"description": "Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent", +"type": "boolean" +}, +"ipAllocationPolicy": { +"$ref": "IPAllocationPolicy", +"description": "Optional. The configuration for controlling how IPs are allocated in the GKE cluster." +}, +"location": { +"description": "Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which to deploy the VMs used to run the Apache Airflow software, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/zones/{zoneId}\". This `location` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.machineType` are specified, `nodeConfig.machineType` must belong to this `location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (`location` or `nodeConfig.machineType`) is specified, the location information from the specified field will be propagated to the unspecified field. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"machineType": { +"description": "Optional. The Compute Engine [machine type](/compute/docs/machine-types) used for cluster instances, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}\". The `machineType` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.location` are specified, this `machineType` must belong to the `nodeConfig.location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and `nodeConfig.location` is specified, the location information from the specified field will be propagated to the unspecified field. The `machineTypeId` must not be a [shared-core machine type](/compute/docs/machine-types#sharedcore). If this field is unspecified, the `machineTypeId` defaults to \"n1-standard-1\". This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"network": { +"description": "Optional. The Compute Engine network to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/global/networks/{networkId}\". If unspecified, the \"default\" network ID in the environment's project is used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) is provided, `nodeConfig.subnetwork` must also be provided. For [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see `nodeConfig.subnetwork`.", +"type": "string" +}, +"oauthScopes": { +"description": "Optional. The set of Google API scopes to be made available on all node VMs. If `oauth_scopes` is empty, defaults to [\"https://www.googleapis.com/auth/cloud-platform\"]. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAccount": { +"description": "Optional. The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the \"default\" Compute Engine service account is used. Cannot be updated.", +"type": "string" +}, +"subnetwork": { +"description": "Optional. The Compute Engine subnetwork to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}\" If a subnetwork is provided, `nodeConfig.network` must also be provided, and the subnetwork must belong to the enclosing environment's project and location.", +"type": "string" +}, +"tags": { +"description": "Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Metadata describing an operation.", +"id": "OperationMetadata", +"properties": { +"createTime": { +"description": "Output only. The time the operation was submitted to the server.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "Output only. The time when the operation terminated, regardless of its success. This field is unset if the operation is still ongoing.", +"format": "google-datetime", +"type": "string" +}, +"operationType": { +"description": "Output only. The type of operation being performed.", +"enum": [ +"TYPE_UNSPECIFIED", +"CREATE", +"DELETE", +"UPDATE", +"CHECK", +"SAVE_SNAPSHOT", +"LOAD_SNAPSHOT", +"DATABASE_FAILOVER" +], +"enumDescriptions": [ +"Unused.", +"A resource creation operation.", +"A resource deletion operation.", +"A resource update operation.", +"A resource check operation.", +"Saves snapshot of the resource operation.", +"Loads snapshot of the resource operation.", +"Triggers failover of environment's Cloud SQL instance (only for highly resilient environments)." +], +"type": "string" +}, +"resource": { +"description": "Output only. The resource being operated on, as a [relative resource name]( /apis/design/resource_names#relative_resource_name).", +"type": "string" +}, +"resourceUuid": { +"description": "Output only. The UUID of the resource being operated on.", +"type": "string" +}, +"state": { +"description": "Output only. The current operation state.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"SUCCESSFUL", +"FAILED" +], +"enumDescriptions": [ +"Unused.", +"The operation has been created but is not yet started.", +"The operation is underway.", +"The operation completed successfully.", +"", +"The operation is no longer running but did not succeed." +], +"type": "string" +} +}, +"type": "object" +}, +"PollAirflowCommandRequest": { +"description": "Poll Airflow Command request.", +"id": "PollAirflowCommandRequest", +"properties": { +"executionId": { +"description": "The unique ID of the command execution.", +"type": "string" +}, +"nextLineNumber": { +"description": "Line number from which new logs should be fetched.", +"format": "int32", +"type": "integer" +}, +"pod": { +"description": "The name of the pod where the command is executed.", +"type": "string" +}, +"podNamespace": { +"description": "The namespace of the pod where the command is executed.", +"type": "string" +} +}, +"type": "object" +}, +"PollAirflowCommandResponse": { +"description": "Response to PollAirflowCommandRequest.", +"id": "PollAirflowCommandResponse", +"properties": { +"exitInfo": { +"$ref": "ExitInfo", +"description": "The result exit status of the command." +}, +"output": { +"description": "Output from the command execution. It may not contain the full output and the caller may need to poll for more lines.", +"items": { +"$ref": "Line" +}, +"type": "array" +}, +"outputEnd": { +"description": "Whether the command execution has finished and there is no more output.", +"type": "boolean" +} +}, +"type": "object" +}, +"PrivateClusterConfig": { +"description": "Configuration options for the private GKE cluster in a Cloud Composer environment.", +"id": "PrivateClusterConfig", +"properties": { +"enablePrivateEndpoint": { +"description": "Optional. If `true`, access to the public endpoint of the GKE cluster is denied.", +"type": "boolean" +}, +"masterIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IPv4 range for GKE master will be reserved. If left blank, the default value of '172.16.0.0/23' is used.", +"type": "string" +}, +"masterIpv4ReservedRange": { +"description": "Output only. The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the GKE cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrivateEnvironmentConfig": { +"description": "The configuration information for configuring a Private IP Cloud Composer environment.", +"id": "PrivateEnvironmentConfig", +"properties": { +"cloudComposerConnectionSubnetwork": { +"description": "Optional. When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork.", +"type": "string" +}, +"cloudComposerNetworkIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"type": "string" +}, +"cloudComposerNetworkIpv4ReservedRange": { +"description": "Output only. The IP range reserved for the tenant project's Cloud Composer network. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"readOnly": true, +"type": "string" +}, +"cloudSqlIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from `web_server_ipv4_cidr_block`.", +"type": "string" +}, +"enablePrivateBuildsOnly": { +"description": "Optional. If `true`, builds performed during operations that install Python packages have only private connectivity to Google services (including Artifact Registry) and VPC network (if either `NodeConfig.network` and `NodeConfig.subnetwork` fields or `NodeConfig.composer_network_attachment` field are specified). If `false`, the builds also have access to the internet. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"type": "boolean" +}, +"enablePrivateEnvironment": { +"description": "Optional. If `true`, a Private IP Cloud Composer environment is created. If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "boolean" +}, +"enablePrivatelyUsedPublicIps": { +"description": "Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`.", +"type": "boolean" +}, +"networkingConfig": { +"$ref": "NetworkingConfig", +"description": "Optional. Configuration for the network connections configuration in the environment." +}, +"privateClusterConfig": { +"$ref": "PrivateClusterConfig", +"description": "Optional. Configuration for the private GKE cluster for a Private IP Cloud Composer environment." +}, +"webServerIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from `private_cluster_config.master_ipv4_cidr_block` and `cloud_sql_ipv4_cidr_block`. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"webServerIpv4ReservedRange": { +"description": "Output only. The IP range reserved for the tenant project's App Engine VMs. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RecoveryConfig": { +"description": "The Recovery settings of an environment.", +"id": "RecoveryConfig", +"properties": { +"scheduledSnapshotsConfig": { +"$ref": "ScheduledSnapshotsConfig", +"description": "Optional. The configuration for scheduled snapshot creation mechanism." +} +}, +"type": "object" +}, +"SaveSnapshotRequest": { +"description": "Request to create a snapshot of a Cloud Composer environment.", +"id": "SaveSnapshotRequest", +"properties": { +"snapshotLocation": { +"description": "Location in a Cloud Storage where the snapshot is going to be stored, e.g.: \"gs://my-bucket/snapshots\".", +"type": "string" +} +}, +"type": "object" +}, +"SaveSnapshotResponse": { +"description": "Response to SaveSnapshotRequest.", +"id": "SaveSnapshotResponse", +"properties": { +"snapshotPath": { +"description": "The fully-resolved Cloud Storage path of the created snapshot, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\". This field is populated only if the snapshot creation was successful.", +"type": "string" +} +}, +"type": "object" +}, +"ScheduledSnapshotsConfig": { +"description": "The configuration for scheduled snapshot creation mechanism.", +"id": "ScheduledSnapshotsConfig", +"properties": { +"enabled": { +"description": "Optional. Whether scheduled snapshots creation is enabled.", +"type": "boolean" +}, +"snapshotCreationSchedule": { +"description": "Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution.", +"type": "string" +}, +"snapshotLocation": { +"description": "Optional. The Cloud Storage location for storing automatically created snapshots.", +"type": "string" +}, +"timeZone": { +"description": "Optional. Time zone that sets the context to interpret snapshot_creation_schedule.", +"type": "string" +} +}, +"type": "object" +}, +"SchedulerResource": { +"description": "Configuration for resources used by Airflow schedulers.", +"id": "SchedulerResource", +"properties": { +"count": { +"description": "Optional. The number of schedulers.", +"format": "int32", +"type": "integer" +}, +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow scheduler replica.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow scheduler replica.", +"format": "float", +"type": "number" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for a single Airflow scheduler replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"SoftwareConfig": { +"description": "Specifies the selection and configuration of software inside the environment.", +"id": "SoftwareConfig", +"properties": { +"airflowConfigOverrides": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and must not contain an equals sign (\"=\") or semicolon (\";\"). Section and property names must not contain a period (\".\"). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden.", +"type": "object" +}, +"cloudDataLineageIntegration": { +"$ref": "CloudDataLineageIntegration", +"description": "Optional. The configuration for Cloud Data Lineage integration." +}, +"envVariables": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression `a-zA-Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER` * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` * `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER`", +"type": "object" +}, +"imageVersion": { +"description": "Optional. The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", +"type": "string" +}, +"pypiPackages": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as \"numpy\" and values are the lowercase extras and version specifier such as \"==1.12.0\", \"[devel,gcp_api]\", or \"[devel]>=1.8.2, <1.9.2\". To specify a package without pinning it to a version specifier, use the empty string as the value.", +"type": "object" +}, +"pythonVersion": { +"description": "Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be updated. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.", +"type": "string" +}, +"schedulerCount": { +"description": "Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.", +"format": "int32", +"type": "integer" +}, +"webServerPluginsMode": { +"description": "Optional. Whether or not the web server uses custom plugins. If unspecified, the field defaults to `PLUGINS_ENABLED`. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"enum": [ +"WEB_SERVER_PLUGINS_MODE_UNSPECIFIED", +"PLUGINS_DISABLED", +"PLUGINS_ENABLED" +], +"enumDescriptions": [ +"Default mode.", +"Web server plugins are not supported.", +"Web server plugins are supported." +], +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopAirflowCommandRequest": { +"description": "Stop Airflow Command request.", +"id": "StopAirflowCommandRequest", +"properties": { +"executionId": { +"description": "The unique ID of the command execution.", +"type": "string" +}, +"force": { +"description": "If true, the execution is terminated forcefully (SIGKILL). If false, the execution is stopped gracefully, giving it time for cleanup.", +"type": "boolean" +}, +"pod": { +"description": "The name of the pod where the command is executed.", +"type": "string" +}, +"podNamespace": { +"description": "The namespace of the pod where the command is executed.", +"type": "string" +} +}, +"type": "object" +}, +"StopAirflowCommandResponse": { +"description": "Response to StopAirflowCommandRequest.", +"id": "StopAirflowCommandResponse", +"properties": { +"isDone": { +"description": "Whether the execution is still running.", +"type": "boolean" +}, +"output": { +"description": "Output message from stopping execution request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"StorageConfig": { +"description": "The configuration for data storage in the environment.", +"id": "StorageConfig", +"properties": { +"bucket": { +"description": "Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix.", +"type": "string" +} +}, +"type": "object" +}, +"TaskLogsRetentionConfig": { +"description": "The configuration setting for Task Logs.", +"id": "TaskLogsRetentionConfig", +"properties": { +"storageMode": { +"description": "Optional. The mode of storage for Airflow workers task logs.", +"enum": [ +"TASK_LOGS_STORAGE_MODE_UNSPECIFIED", +"CLOUD_LOGGING_AND_CLOUD_STORAGE", +"CLOUD_LOGGING_ONLY" +], +"enumDescriptions": [ +"This configuration is not specified by the user.", +"Store task logs in Cloud Logging and in the environment's Cloud Storage bucket.", +"Store task logs in Cloud Logging only." +], +"type": "string" +} +}, +"type": "object" +}, +"TriggererResource": { +"description": "Configuration for resources used by Airflow triggerers.", +"id": "TriggererResource", +"properties": { +"count": { +"description": "Optional. The number of triggerers.", +"format": "int32", +"type": "integer" +}, +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow triggerer replica.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow triggerer replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"UserWorkloadsConfigMap": { +"description": "User workloads ConfigMap used by Airflow tasks that run with Kubernetes executor or KubernetesPodOperator.", +"id": "UserWorkloadsConfigMap", +"properties": { +"data": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The \"data\" field of Kubernetes ConfigMap, organized in key-value pairs. For details see: https://kubernetes.io/docs/concepts/configuration/configmap/ Example: { \"example_key\": \"example_value\", \"another_key\": \"another_value\" }", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the ConfigMap, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"type": "string" +} +}, +"type": "object" +}, +"UserWorkloadsSecret": { +"description": "User workloads Secret used by Airflow tasks that run with Kubernetes executor or KubernetesPodOperator.", +"id": "UserWorkloadsSecret", +"properties": { +"data": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The \"data\" field of Kubernetes Secret, organized in key-value pairs, which can contain sensitive values such as a password, a token, or a key. The values for all keys have to be base64-encoded strings. For details see: https://kubernetes.io/docs/concepts/configuration/secret/ Example: { \"example\": \"ZXhhbXBsZV92YWx1ZQ==\", \"another-example\": \"YW5vdGhlcl9leGFtcGxlX3ZhbHVl\" }", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the Secret, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"type": "string" +} +}, +"type": "object" +}, +"WebServerConfig": { +"description": "The configuration settings for the Airflow web server App Engine instance. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*", +"id": "WebServerConfig", +"properties": { +"machineType": { +"description": "Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.", +"type": "string" +} +}, +"type": "object" +}, +"WebServerNetworkAccessControl": { +"description": "Network-level access control policy for the Airflow web server.", +"id": "WebServerNetworkAccessControl", +"properties": { +"allowedIpRanges": { +"description": "A collection of allowed IP ranges with descriptions.", +"items": { +"$ref": "AllowedIpRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"WebServerResource": { +"description": "Configuration for resources used by Airflow web server.", +"id": "WebServerResource", +"properties": { +"cpu": { +"description": "Optional. CPU request and limit for Airflow web server.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for Airflow web server.", +"format": "float", +"type": "number" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for Airflow web server.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"WorkerResource": { +"description": "Configuration for resources used by Airflow workers.", +"id": "WorkerResource", +"properties": { +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow worker replica.", +"format": "float", +"type": "number" +}, +"maxCount": { +"description": "Optional. Maximum number of workers for autoscaling.", +"format": "int32", +"type": "integer" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow worker replica.", +"format": "float", +"type": "number" +}, +"minCount": { +"description": "Optional. Minimum number of workers for autoscaling.", +"format": "int32", +"type": "integer" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for a single Airflow worker replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"WorkloadsConfig": { +"description": "The Kubernetes workloads configuration for GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"id": "WorkloadsConfig", +"properties": { +"dagProcessor": { +"$ref": "DagProcessorResource", +"description": "Optional. Resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer." +}, +"scheduler": { +"$ref": "SchedulerResource", +"description": "Optional. Resources used by Airflow schedulers." +}, +"triggerer": { +"$ref": "TriggererResource", +"description": "Optional. Resources used by Airflow triggerers." +}, +"webServer": { +"$ref": "WebServerResource", +"description": "Optional. Resources used by Airflow web server." +}, +"worker": { +"$ref": "WorkerResource", +"description": "Optional. Resources used by Airflow workers." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Composer API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/contactcenteraiplatform.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/contactcenteraiplatform.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..f3694a82969666ed4eb1298dbce14803faa19a63 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/contactcenteraiplatform.v1alpha1.json @@ -0,0 +1,1336 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://contactcenteraiplatform.googleapis.com/", +"batchPath": "batch", +"canonicalName": "CCAI Platform", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/solutions/contact-center-ai-platform", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "contactcenteraiplatform:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://contactcenteraiplatform.mtls.googleapis.com/", +"name": "contactcenteraiplatform", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1alpha1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryContactCenterQuota": { +"description": "Queries the contact center quota, an aggregation over all the projects, that belongs to the billing account, which the input project belongs to.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:queryContactCenterQuota", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.queryContactCenterQuota", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent project resource id.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}:queryContactCenterQuota", +"response": { +"$ref": "ContactCenterQuota" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"contactCenters": { +"methods": { +"create": { +"description": "Creates a new ContactCenter in a given project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters", +"httpMethod": "POST", +"id": "contactcenteraiplatform.projects.locations.contactCenters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"contactCenterId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and contact_center_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/contactCenters", +"request": { +"$ref": "ContactCenter" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ContactCenter.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters/{contactCentersId}", +"httpMethod": "DELETE", +"id": "contactcenteraiplatform.projects.locations.contactCenters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/contactCenters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single ContactCenter.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters/{contactCentersId}", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.contactCenters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/contactCenters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "ContactCenter" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ContactCenters in a given project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.contactCenters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListContactCentersRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/contactCenters", +"response": { +"$ref": "ListContactCentersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single ContactCenter.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters/{contactCentersId}", +"httpMethod": "PATCH", +"id": "contactcenteraiplatform.projects.locations.contactCenters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "name of resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/contactCenters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the ContactCenter resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "ContactCenter" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "contactcenteraiplatform.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "contactcenteraiplatform.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "contactcenteraiplatform.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241205", +"rootUrl": "https://contactcenteraiplatform.googleapis.com/", +"schemas": { +"AdminUser": { +"description": "Message storing info about the first admin user. Next ID: 3", +"id": "AdminUser", +"properties": { +"familyName": { +"description": "Optional. Last/family name of the first admin user.", +"type": "string" +}, +"givenName": { +"description": "Optional. First/given name of the first admin user.", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Component": { +"description": "Defines a logical CCAIP component that e.g. \u201cEMAIL\u201d, \"CRM\". For more information see go/ccaip-private-path-v2. Each logical component is associated with a list of service attachments.", +"id": "Component", +"properties": { +"name": { +"description": "Name of the component.", +"type": "string" +}, +"serviceAttachmentNames": { +"description": "Associated service attachments. The service attachment names that will be used for sending private traffic to the CCAIP tenant project. Example service attachment name: \"projects/${TENANT_PROJECT_ID}/regions/${REGION}/serviceAttachments/ingress-default\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContactCenter": { +"description": "Message describing ContactCenter object Next ID: 24", +"id": "ContactCenter", +"properties": { +"adminUser": { +"$ref": "AdminUser", +"description": "Optional. Info about the first admin user, such as given name and family name." +}, +"ccaipManagedUsers": { +"description": "Optional. Whether to enable users to be created in the CCAIP-instance concurrently to having users in Cloud identity", +"type": "boolean" +}, +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"critical": { +"$ref": "Critical", +"description": "Optional. Critical release channel." +}, +"customerDomainPrefix": { +"description": "Required. Immutable. At least 2 and max 16 char long, must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).", +"type": "string" +}, +"displayName": { +"description": "Required. A user friendly name for the ContactCenter.", +"type": "string" +}, +"early": { +"$ref": "Early", +"description": "Optional. Early release channel." +}, +"instanceConfig": { +"$ref": "InstanceConfig", +"description": "The configuration of this instance, it is currently immutable once created." +}, +"kmsKey": { +"description": "Immutable. The KMS key name to encrypt the user input (`ContactCenter`).", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "name of resource", +"type": "string" +}, +"normal": { +"$ref": "Normal", +"description": "Optional. Normal release channel." +}, +"privateAccess": { +"$ref": "PrivateAccess", +"description": "Optional. VPC-SC related networking configuration." +}, +"privateComponents": { +"description": "Output only. TODO(b/283407860) Deprecate this field.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"samlParams": { +"$ref": "SAMLParams", +"description": "Optional. Params that sets up Google as IdP." +}, +"state": { +"description": "Output only. The state of this contact center.", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_DEPLOYING", +"STATE_DEPLOYED", +"STATE_TERMINATING", +"STATE_FAILED", +"STATE_TERMINATING_FAILED", +"STATE_TERMINATED", +"STATE_IN_GRACE_PERIOD", +"STATE_FAILING_OVER", +"STATE_DEGRADED", +"STATE_REPAIRING" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"State DEPLOYING", +"State DEPLOYED", +"State TERMINATING", +"State FAILED", +"State TERMINATING_FAILED", +"State TERMINATED", +"State IN_GRACE_PERIOD", +"State in STATE_FAILING_OVER. This State must ONLY be used by Multiregional Instances when a failover was triggered. Customers are not able to update instances in this state.", +"State DEGRADED. This State must ONLY be used by Multiregional Instances after a failover was executed successfully. Customers are not able to update instances in this state.", +"State REPAIRING. This State must ONLY be used by Multiregional Instances after a fallback was triggered. Customers are not able to update instancs in this state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"uris": { +"$ref": "URIs", +"description": "Output only. URIs to access the deployed ContactCenters.", +"readOnly": true +}, +"userEmail": { +"description": "Optional. Email address of the first admin user.", +"type": "string" +} +}, +"type": "object" +}, +"ContactCenterQuota": { +"description": "Represents a quota for contact centers.", +"id": "ContactCenterQuota", +"properties": { +"contactCenterCountLimit": { +"deprecated": true, +"description": "Deprecated: Use the Quota fields instead. Reflects the count limit of contact centers on a billing account.", +"format": "int32", +"type": "integer" +}, +"contactCenterCountSum": { +"deprecated": true, +"description": "Deprecated: Use the Quota fields instead. Reflects the count sum of contact centers on a billing account.", +"format": "int32", +"type": "integer" +}, +"quotas": { +"description": "Quota details per contact center instance type.", +"items": { +"$ref": "Quota" +}, +"type": "array" +} +}, +"type": "object" +}, +"Critical": { +"description": "Instances in this Channel will receive updates after all instances in `Normal` were updated. They also will only be updated outside of their peak hours.", +"id": "Critical", +"properties": { +"peakHours": { +"description": "Required. Hours during which the instance should not be updated.", +"items": { +"$ref": "WeeklySchedule" +}, +"type": "array" +} +}, +"type": "object" +}, +"Early": { +"description": "LINT.IfChange First Channel to receive the updates. Meant to dev/test instances", +"id": "Early", +"properties": {}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GoogleCloudCommonOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudCommonOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InstanceConfig": { +"description": "Message storing the instance configuration.", +"id": "InstanceConfig", +"properties": { +"instanceSize": { +"description": "The instance size of this the instance configuration.", +"enum": [ +"INSTANCE_SIZE_UNSPECIFIED", +"STANDARD_SMALL", +"STANDARD_MEDIUM", +"STANDARD_LARGE", +"STANDARD_XLARGE", +"STANDARD_2XLARGE", +"STANDARD_3XLARGE", +"DEV_XSMALL", +"MULTIREGION_SMALL", +"MULTIREGION_MEDIUM", +"MULTIREGION_LARGE", +"MULTIREGION_XLARGE", +"MULTIREGION_2XLARGE", +"MULTIREGION_3XLARGE", +"DEV_SMALL", +"SANDBOX_SMALL", +"TRIAL_SMALL", +"TIME_LIMITED_TRIAL_SMALL" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Instance Size STANDARD_SMALL.", +"Instance Size STANDARD_MEDIUM.", +"Instance Size STANDARD_LARGE.", +"Instance Size STANDARD_XLARGE.", +"Instance Size STANDARD_2XLARGE.", +"Instance Size STANDARD_3XLARGE.", +"Instance Size DEV_EXTRA_SMALL.", +"Instance Size MULTIREGION_SMALL", +"Instance Size MULTIREGION_MEDIUM", +"Instance Size MULTIREGION_LARGE", +"Instance Size MULTIREGION_XLARGE", +"Instance Size MULTIREGION_2XLARGE.", +"Instance Size MULTIREGION_3XLARGE.", +"Instance Size DEV_SMALL", +"Instance Size SANDBOX_SMALL", +"Instance Size TRIAL_SMALL", +"Instance Size TIME_LIMITED_TRIAL_SMALL" +], +"type": "string" +} +}, +"type": "object" +}, +"ListContactCentersResponse": { +"description": "Message for response to listing ContactCenters", +"id": "ListContactCentersResponse", +"properties": { +"contactCenters": { +"description": "The list of ContactCenter", +"items": { +"$ref": "ContactCenter" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Normal": { +"description": "Instances in this Channel will receive updates after all instances in `Early` were updated + 2 days.", +"id": "Normal", +"properties": {}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"contactCenter": { +"$ref": "ContactCenter", +"description": "Contact center information for this request" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrivateAccess": { +"description": "Defines ingress and egress private traffic settings for CCAIP instances.", +"id": "PrivateAccess", +"properties": { +"egressSettings": { +"description": "List of egress components that should not be accessed via the Internet. For more information see go/ccaip-private-path-v2.", +"items": { +"$ref": "Component" +}, +"type": "array" +}, +"ingressSettings": { +"description": "List of ingress components that should not be accessed via the Internet. For more information see go/ccaip-private-path-v2.", +"items": { +"$ref": "Component" +}, +"type": "array" +}, +"pscSetting": { +"$ref": "PscSetting", +"description": "Private service connect settings." +} +}, +"type": "object" +}, +"PscSetting": { +"description": "Private service connect settings.", +"id": "PscSetting", +"properties": { +"allowedConsumerProjectIds": { +"description": "The list of project ids that are allowed to send traffic to the service attachment. This field should be filled only for the ingress components.", +"items": { +"type": "string" +}, +"type": "array" +}, +"producerProjectIds": { +"description": "Output only. The CCAIP tenant project ids.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"Quota": { +"description": "Quota details.", +"id": "Quota", +"properties": { +"contactCenterCountLimit": { +"description": "Reflects the count limit of contact centers on a billing account.", +"format": "int32", +"type": "integer" +}, +"contactCenterCountSum": { +"description": "Reflects the count sum of contact centers on a billing account.", +"format": "int32", +"type": "integer" +}, +"contactCenterInstanceSize": { +"description": "Contact center instance type.", +"enum": [ +"INSTANCE_SIZE_UNSPECIFIED", +"STANDARD_SMALL", +"STANDARD_MEDIUM", +"STANDARD_LARGE", +"STANDARD_XLARGE", +"STANDARD_2XLARGE", +"STANDARD_3XLARGE", +"DEV_XSMALL", +"MULTIREGION_SMALL", +"MULTIREGION_MEDIUM", +"MULTIREGION_LARGE", +"MULTIREGION_XLARGE", +"MULTIREGION_2XLARGE", +"MULTIREGION_3XLARGE", +"DEV_SMALL", +"SANDBOX_SMALL", +"TRIAL_SMALL", +"TIME_LIMITED_TRIAL_SMALL" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Instance Size STANDARD_SMALL.", +"Instance Size STANDARD_MEDIUM.", +"Instance Size STANDARD_LARGE.", +"Instance Size STANDARD_XLARGE.", +"Instance Size STANDARD_2XLARGE.", +"Instance Size STANDARD_3XLARGE.", +"Instance Size DEV_EXTRA_SMALL.", +"Instance Size MULTIREGION_SMALL", +"Instance Size MULTIREGION_MEDIUM", +"Instance Size MULTIREGION_LARGE", +"Instance Size MULTIREGION_XLARGE", +"Instance Size MULTIREGION_2XLARGE.", +"Instance Size MULTIREGION_3XLARGE.", +"Instance Size DEV_SMALL", +"Instance Size SANDBOX_SMALL", +"Instance Size TRIAL_SMALL", +"Instance Size TIME_LIMITED_TRIAL_SMALL" +], +"type": "string" +} +}, +"type": "object" +}, +"SAMLParams": { +"description": "Message storing SAML params to enable Google as IDP.", +"id": "SAMLParams", +"properties": { +"authenticationContexts": { +"description": "Additional contexts used for authentication.", +"items": { +"enum": [ +"AUTHENTICATION_CONTEXT_UNSPECIFIED", +"INTERNET_PROTOCOL", +"INTERNET_PROTOCOL_PASSWORD", +"KERBEROS", +"MOBILE_ONE_FACTOR_UNREGISTERED", +"MOBILE_TWO_FACTOR_UNREGISTERED", +"MOBILE_ONE_FACTOR_CONTRACT", +"MOBILE_TWO_FACTOR_CONTRACT", +"PASSWORD", +"PASSWORD_PROTECTED_TRANSPORT", +"PREVIOUS_SESSION", +"PUBLIC_KEY_X509", +"PUBLIC_KEY_PGP", +"PUBLIC_KEY_SPKI", +"PUBLIC_KEY_XML_DIGITAL_SIGNATURE", +"SMARTCARD", +"SMARTCARD_PKI", +"SOFTWARE_PKI", +"TELEPHONY", +"TELEPHONY_NOMADIC", +"TELEPHONY_PERSONALIZED", +"TELEPHONY_AUTHENTICATED", +"SECURE_REMOTE_PASSWORD", +"SSL_TLS_CERTIFICATE_BASED", +"TIME_SYNC_TOKEN" +], +"enumDescriptions": [ +"The Unspecified class indicates that the authentication was performed by unspecified means.", +"The Internet Protocol class is applicable when a principal is authenticated through the use of a provided IP address.", +"The Internet Protocol Password class is applicable when a principal is authenticated through the use of a provided IP address, in addition to a username/password.", +"This class is applicable when the principal has authenticated using a password to a local authentication authority, in order to acquire a Kerberos ticket. That Kerberos ticket is then used for subsequent network authentication.", +"Reflects no mobile customer registration procedures and an authentication of the mobile device without requiring explicit end-user interaction. This context class authenticates only the device and never the user; it is useful when services other than the mobile operator want to add a secure device authentication to their authentication process.", +"Reflects no mobile customer registration procedures and a two-factor based authentication, such as secure device and user PIN. This context class is useful when a service other than the mobile operator wants to link their customer ID to a mobile supplied two-factor authentication service by capturing mobile phone data at enrollment.", +"Reflects mobile contract customer registration procedures and a single factor authentication. For example, a digital signing device with tamper resistant memory for key storage, such as the mobile MSISDN, but no required PIN or biometric for real-time user authentication.", +"Reflects mobile contract customer registration procedures and a two-factor based authentication. For example, a digital signing device with tamper resistant memory for key storage, such as a GSM SIM, that requires explicit proof of user identity and intent, such as a PIN or biometric.", +"The Password class is applicable when a principal authenticates to an authentication authority through the presentation of a password over an unprotected HTTP session.", +"The PasswordProtectedTransport class is applicable when a principal authenticates to an authentication authority through the presentation of a password over a protected session.", +"The PreviousSession class is applicable when a principal had authenticated to an authentication authority at some point in the past using any authentication context supported by that authentication authority", +"The X509 context class indicates that the principal authenticated by means of a digital signature where the key was validated as part of an X.509 Public Key Infrastructure.", +"The PGP context class indicates that the principal authenticated by means of a digital signature where the key was validated as part of a PGP Public Key Infrastructure.", +"The SPKI context class indicates that the principal authenticated by means of a digital signature where the key was validated via an SPKI Infrastructure.", +"This context class indicates that the principal authenticated by means of a digital signature according to the processing rules specified in the XML Digital Signature specification [XMLSig].", +"The Smartcard class is identified when a principal authenticates to an authentication authority using a smartcard.", +"The SmartcardPKI class is applicable when a principal authenticates to an authentication authority through a two-factor authentication mechanism using a smartcard with enclosed private key and a PIN.", +"The Software-PKI class is applicable when a principal uses an X.509 certificate stored in software to authenticate to the authentication authority.", +"This class is used to indicate that the principal authenticated via the provision of a fixed-line telephone number, transported via a telephony protocol such as ADSL.", +"Indicates that the principal is \"roaming\" (perhaps using a phone card) and authenticates via the means of the line number, a user suffix, and a password element.", +"This class is used to indicate that the principal authenticated via the provision of a fixed-line telephone number and a user suffix, transported via a telephony protocol such as ADSL.", +"Indicates that the principal authenticated via the means of the line number, a user suffix, and a password element.", +"The Secure Remote Password class is applicable when the authentication was performed by means of Secure Remote Password as specified in [RFC 2945].", +"This class indicates that the principal authenticated by means of a client certificate, secured with the SSL/TLS transport.", +"The TimeSyncToken class is applicable when a principal authenticates through a time synchronization token." +], +"type": "string" +}, +"type": "array" +}, +"certificate": { +"description": "SAML certificate", +"type": "string" +}, +"emailMapping": { +"description": "IdP field that maps to the user\u2019s email address", +"type": "string" +}, +"entityId": { +"description": "Entity id URL", +"type": "string" +}, +"ssoUri": { +"description": "Single sign-on URL", +"type": "string" +}, +"userEmail": { +"deprecated": true, +"description": "Email address of the first admin users.", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"URIs": { +"description": "Message storing the URIs of the ContactCenter.", +"id": "URIs", +"properties": { +"chatBotUri": { +"description": "Chat Bot Uri of the ContactCenter", +"type": "string" +}, +"mediaUri": { +"description": "Media Uri of the ContactCenter.", +"type": "string" +}, +"rootUri": { +"description": "Root Uri of the ContactCenter.", +"type": "string" +}, +"virtualAgentStreamingServiceUri": { +"description": "Virtual Agent Streaming Service Uri of the ContactCenter.", +"type": "string" +} +}, +"type": "object" +}, +"WeeklySchedule": { +"description": "Message representing a weekly schedule.", +"id": "WeeklySchedule", +"properties": { +"days": { +"description": "Required. Days of the week this schedule applies to.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"type": "array" +}, +"duration": { +"description": "Optional. Duration of the schedule.", +"format": "google-duration", +"type": "string" +}, +"endTime": { +"$ref": "TimeOfDay", +"description": "Optional. Daily end time of the schedule. If `end_time` is before `start_time`, the schedule will be considered as ending on the next day." +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. Daily start time of the schedule." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Contact Center AI Platform API", +"version": "v1alpha1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/containeranalysis.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/containeranalysis.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..b5cf2c58f586d50496cdb846546b5e6de1388bfb --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/containeranalysis.v1.json @@ -0,0 +1,6735 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://containeranalysis.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Container Analysis", +"description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://containeranalysis.us-west4.rep.googleapis.com/", +"location": "us-west4" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "containeranalysis:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://containeranalysis.mtls.googleapis.com/", +"name": "containeranalysis", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"notes": { +"methods": { +"batchCreate": { +"description": "Creates new notes in batch.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes:batchCreate", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.notes.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the notes are to be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notes:batchCreate", +"request": { +"$ref": "BatchCreateNotesRequest" +}, +"response": { +"$ref": "BatchCreateNotesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new note.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.notes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"noteId": { +"description": "Required. The ID to use for this note.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the note is to be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notes", +"request": { +"$ref": "Note" +}, +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified note.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}", +"httpMethod": "DELETE", +"id": "containeranalysis.projects.locations.notes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified note.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.notes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a note or an occurrence resource. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}:getIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.notes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notes for the specified project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.notes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of notes to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project to list notes for in the form of `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notes", +"response": { +"$ref": "ListNotesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified note.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}", +"httpMethod": "PATCH", +"id": "containeranalysis.projects.locations.notes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Note" +}, +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified note or occurrence. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or an occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}:setIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.notes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has on the specified note or occurrence. Requires list permission on the project (for example, `containeranalysis.notes.list`). The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}:testIamPermissions", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.notes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"occurrences": { +"methods": { +"list": { +"description": "Lists occurrences referencing the specified note. Provider projects can use this method to get all occurrences across consumer projects referencing the specified note.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}/occurrences", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.notes.occurrences.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the note to list occurrences for in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Number of occurrences to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/occurrences", +"response": { +"$ref": "ListNoteOccurrencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"occurrences": { +"methods": { +"batchCreate": { +"description": "Creates new occurrences in batch.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences:batchCreate", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.occurrences.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the occurrences are to be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences:batchCreate", +"request": { +"$ref": "BatchCreateOccurrencesRequest" +}, +"response": { +"$ref": "BatchCreateOccurrencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new occurrence.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.occurrences.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the occurrence is to be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences", +"request": { +"$ref": "Occurrence" +}, +"response": { +"$ref": "Occurrence" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified occurrence. For example, use this method to delete an occurrence when the occurrence is no longer applicable for the given resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}", +"httpMethod": "DELETE", +"id": "containeranalysis.projects.locations.occurrences.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified occurrence.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.occurrences.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Occurrence" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a note or an occurrence resource. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}:getIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.occurrences.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getNotes": { +"description": "Gets the note attached to the specified occurrence. Consumer projects can use this method to get a note that belongs to a provider project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}/notes", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.occurrences.getNotes", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/notes", +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getVulnerabilitySummary": { +"description": "Gets a summary of the number and severity of occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences:vulnerabilitySummary", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.occurrences.getVulnerabilitySummary", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project to get a vulnerability summary for in the form of `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences:vulnerabilitySummary", +"response": { +"$ref": "VulnerabilityOccurrencesSummary" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists occurrences for the specified project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences", +"httpMethod": "GET", +"id": "containeranalysis.projects.locations.occurrences.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of occurrences to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project to list occurrences for in the form of `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences", +"response": { +"$ref": "ListOccurrencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified occurrence.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}", +"httpMethod": "PATCH", +"id": "containeranalysis.projects.locations.occurrences.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Occurrence" +}, +"response": { +"$ref": "Occurrence" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified note or occurrence. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or an occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}:setIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.occurrences.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has on the specified note or occurrence. Requires list permission on the project (for example, `containeranalysis.notes.list`). The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}:testIamPermissions", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.occurrences.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"resources": { +"methods": { +"exportSBOM": { +"description": "Generates an SBOM for the given resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/resources/{resourcesId}:exportSBOM", +"httpMethod": "POST", +"id": "containeranalysis.projects.locations.resources.exportSBOM", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/resources/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:exportSBOM", +"request": { +"$ref": "ExportSBOMRequest" +}, +"response": { +"$ref": "ExportSBOMResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"notes": { +"methods": { +"batchCreate": { +"description": "Creates new notes in batch.", +"flatPath": "v1/projects/{projectsId}/notes:batchCreate", +"httpMethod": "POST", +"id": "containeranalysis.projects.notes.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the notes are to be created.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notes:batchCreate", +"request": { +"$ref": "BatchCreateNotesRequest" +}, +"response": { +"$ref": "BatchCreateNotesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new note.", +"flatPath": "v1/projects/{projectsId}/notes", +"httpMethod": "POST", +"id": "containeranalysis.projects.notes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"noteId": { +"description": "Required. The ID to use for this note.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the note is to be created.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notes", +"request": { +"$ref": "Note" +}, +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified note.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}", +"httpMethod": "DELETE", +"id": "containeranalysis.projects.notes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified note.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}", +"httpMethod": "GET", +"id": "containeranalysis.projects.notes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a note or an occurrence resource. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}:getIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.notes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notes for the specified project.", +"flatPath": "v1/projects/{projectsId}/notes", +"httpMethod": "GET", +"id": "containeranalysis.projects.notes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of notes to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project to list notes for in the form of `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notes", +"response": { +"$ref": "ListNotesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified note.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}", +"httpMethod": "PATCH", +"id": "containeranalysis.projects.notes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Note" +}, +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified note or occurrence. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or an occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}:setIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.notes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has on the specified note or occurrence. Requires list permission on the project (for example, `containeranalysis.notes.list`). The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}:testIamPermissions", +"httpMethod": "POST", +"id": "containeranalysis.projects.notes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"occurrences": { +"methods": { +"list": { +"description": "Lists occurrences referencing the specified note. Provider projects can use this method to get all occurrences across consumer projects referencing the specified note.", +"flatPath": "v1/projects/{projectsId}/notes/{notesId}/occurrences", +"httpMethod": "GET", +"id": "containeranalysis.projects.notes.occurrences.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the note to list occurrences for in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/notes/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Number of occurrences to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/occurrences", +"response": { +"$ref": "ListNoteOccurrencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"occurrences": { +"methods": { +"batchCreate": { +"description": "Creates new occurrences in batch.", +"flatPath": "v1/projects/{projectsId}/occurrences:batchCreate", +"httpMethod": "POST", +"id": "containeranalysis.projects.occurrences.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the occurrences are to be created.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences:batchCreate", +"request": { +"$ref": "BatchCreateOccurrencesRequest" +}, +"response": { +"$ref": "BatchCreateOccurrencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new occurrence.", +"flatPath": "v1/projects/{projectsId}/occurrences", +"httpMethod": "POST", +"id": "containeranalysis.projects.occurrences.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which the occurrence is to be created.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences", +"request": { +"$ref": "Occurrence" +}, +"response": { +"$ref": "Occurrence" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified occurrence. For example, use this method to delete an occurrence when the occurrence is no longer applicable for the given resource.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}", +"httpMethod": "DELETE", +"id": "containeranalysis.projects.occurrences.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified occurrence.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}", +"httpMethod": "GET", +"id": "containeranalysis.projects.occurrences.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Occurrence" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a note or an occurrence resource. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}:getIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.occurrences.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getNotes": { +"description": "Gets the note attached to the specified occurrence. Consumer projects can use this method to get a note that belongs to a provider project.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}/notes", +"httpMethod": "GET", +"id": "containeranalysis.projects.occurrences.getNotes", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/notes", +"response": { +"$ref": "Note" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getVulnerabilitySummary": { +"description": "Gets a summary of the number and severity of occurrences.", +"flatPath": "v1/projects/{projectsId}/occurrences:vulnerabilitySummary", +"httpMethod": "GET", +"id": "containeranalysis.projects.occurrences.getVulnerabilitySummary", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project to get a vulnerability summary for in the form of `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences:vulnerabilitySummary", +"response": { +"$ref": "VulnerabilityOccurrencesSummary" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists occurrences for the specified project.", +"flatPath": "v1/projects/{projectsId}/occurrences", +"httpMethod": "GET", +"id": "containeranalysis.projects.occurrences.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of occurrences to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project to list occurrences for in the form of `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/occurrences", +"response": { +"$ref": "ListOccurrencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified occurrence.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}", +"httpMethod": "PATCH", +"id": "containeranalysis.projects.occurrences.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Occurrence" +}, +"response": { +"$ref": "Occurrence" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified note or occurrence. Requires `containeranalysis.notes.setIamPolicy` or `containeranalysis.occurrences.setIamPolicy` permission if the resource is a note or an occurrence, respectively. The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}:setIamPolicy", +"httpMethod": "POST", +"id": "containeranalysis.projects.occurrences.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has on the specified note or occurrence. Requires list permission on the project (for example, `containeranalysis.notes.list`). The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for occurrences.", +"flatPath": "v1/projects/{projectsId}/occurrences/{occurrencesId}:testIamPermissions", +"httpMethod": "POST", +"id": "containeranalysis.projects.occurrences.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/occurrences/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"resources": { +"methods": { +"exportSBOM": { +"description": "Generates an SBOM for the given resource.", +"flatPath": "v1/projects/{projectsId}/resources/{resourcesId}:exportSBOM", +"httpMethod": "POST", +"id": "containeranalysis.projects.resources.exportSBOM", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", +"location": "path", +"pattern": "^projects/[^/]+/resources/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:exportSBOM", +"request": { +"$ref": "ExportSBOMRequest" +}, +"response": { +"$ref": "ExportSBOMResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20240924", +"rootUrl": "https://containeranalysis.googleapis.com/", +"schemas": { +"AliasContext": { +"description": "An alias to a repo revision.", +"id": "AliasContext", +"properties": { +"kind": { +"description": "The alias kind.", +"enum": [ +"KIND_UNSPECIFIED", +"FIXED", +"MOVABLE", +"OTHER" +], +"enumDescriptions": [ +"Unknown.", +"Git tag.", +"Git branch.", +"Used to specify non-standard aliases. For example, if a Git repo has a ref named \"refs/foo/bar\"." +], +"type": "string" +}, +"name": { +"description": "The alias name.", +"type": "string" +} +}, +"type": "object" +}, +"AnalysisCompleted": { +"description": "Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource.", +"id": "AnalysisCompleted", +"properties": { +"analysisType": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Artifact": { +"description": "Artifact describes a build product.", +"id": "Artifact", +"properties": { +"checksum": { +"description": "Hash or checksum value of a binary, or Docker Registry 2.0 digest of a container.", +"type": "string" +}, +"id": { +"description": "Artifact ID, if any; for container images, this will be a URL by digest like `gcr.io/projectID/imagename@sha256:123456`.", +"type": "string" +}, +"names": { +"description": "Related artifact names. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. Note that a single Artifact ID can have multiple names, for example if two tags are applied to one image.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Assessment": { +"description": "Assessment provides all information that is related to a single vulnerability for this product.", +"id": "Assessment", +"properties": { +"cve": { +"deprecated": true, +"description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", +"type": "string" +}, +"impacts": { +"description": "Contains information about the impact of this vulnerability, this will change with time.", +"items": { +"type": "string" +}, +"type": "array" +}, +"justification": { +"$ref": "Justification", +"description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." +}, +"longDescription": { +"description": "A detailed description of this Vex.", +"type": "string" +}, +"relatedUris": { +"description": "Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability.", +"items": { +"$ref": "RelatedUrl" +}, +"type": "array" +}, +"remediations": { +"description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", +"items": { +"$ref": "Remediation" +}, +"type": "array" +}, +"shortDescription": { +"description": "A one sentence description of this Vex.", +"type": "string" +}, +"state": { +"description": "Provides the state of this Vulnerability assessment.", +"enum": [ +"STATE_UNSPECIFIED", +"AFFECTED", +"NOT_AFFECTED", +"FIXED", +"UNDER_INVESTIGATION" +], +"enumDescriptions": [ +"No state is specified.", +"This product is known to be affected by this vulnerability.", +"This product is known to be not affected by this vulnerability.", +"This product contains a fix for this vulnerability.", +"It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." +], +"type": "string" +}, +"vulnerabilityId": { +"description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", +"type": "string" +} +}, +"type": "object" +}, +"AttestationNote": { +"description": "Note kind that represents a logical attestation \"role\" or \"authority\". For example, an organization might have one `Authority` for \"QA\" and one for \"build\". This note is intended to act strictly as a grouping mechanism for the attached occurrences (Attestations). This grouping mechanism also provides a security boundary, since IAM ACLs gate the ability for a principle to attach an occurrence to a given note. It also provides a single point of lookup to find all attached attestation occurrences, even if they don't all live in the same project.", +"id": "AttestationNote", +"properties": { +"hint": { +"$ref": "Hint", +"description": "Hint hints at the purpose of the attestation authority." +} +}, +"type": "object" +}, +"AttestationOccurrence": { +"description": "Occurrence that represents a single \"attestation\". The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign.", +"id": "AttestationOccurrence", +"properties": { +"jwts": { +"description": "One or more JWTs encoding a self-contained attestation. Each JWT encodes the payload that it verifies within the JWT itself. Verifier implementation SHOULD ignore the `serialized_payload` field when verifying these JWTs. If only JWTs are present on this AttestationOccurrence, then the `serialized_payload` SHOULD be left empty. Each JWT SHOULD encode a claim specific to the `resource_uri` of this Occurrence, but this is not validated by Grafeas metadata API implementations. The JWT itself is opaque to Grafeas.", +"items": { +"$ref": "Jwt" +}, +"type": "array" +}, +"serializedPayload": { +"description": "Required. The serialized payload that is verified by one or more `signatures`.", +"format": "byte", +"type": "string" +}, +"signatures": { +"description": "One or more signatures over `serialized_payload`. Verifier implementations should consider this attestation message verified if at least one `signature` verifies `serialized_payload`. See `Signature` in common.proto for more details on signature structure and verification.", +"items": { +"$ref": "Signature" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateNotesRequest": { +"description": "Request to create notes in batch.", +"id": "BatchCreateNotesRequest", +"properties": { +"notes": { +"additionalProperties": { +"$ref": "Note" +}, +"description": "Required. The notes to create. Max allowed length is 1000.", +"type": "object" +} +}, +"type": "object" +}, +"BatchCreateNotesResponse": { +"description": "Response for creating notes in batch.", +"id": "BatchCreateNotesResponse", +"properties": { +"notes": { +"description": "The notes that were created.", +"items": { +"$ref": "Note" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateOccurrencesRequest": { +"description": "Request to create occurrences in batch.", +"id": "BatchCreateOccurrencesRequest", +"properties": { +"occurrences": { +"description": "Required. The occurrences to create. Max allowed length is 1000.", +"items": { +"$ref": "Occurrence" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateOccurrencesResponse": { +"description": "Response for creating occurrences in batch.", +"id": "BatchCreateOccurrencesResponse", +"properties": { +"occurrences": { +"description": "The occurrences that were created.", +"items": { +"$ref": "Occurrence" +}, +"type": "array" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BuildDefinition": { +"id": "BuildDefinition", +"properties": { +"buildType": { +"type": "string" +}, +"externalParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"internalParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"resolvedDependencies": { +"items": { +"$ref": "ResourceDescriptor" +}, +"type": "array" +} +}, +"type": "object" +}, +"BuildMetadata": { +"id": "BuildMetadata", +"properties": { +"finishedOn": { +"format": "google-datetime", +"type": "string" +}, +"invocationId": { +"type": "string" +}, +"startedOn": { +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"BuildNote": { +"description": "Note holding the version of the provider's builder and the signature of the provenance message in the build details occurrence.", +"id": "BuildNote", +"properties": { +"builderVersion": { +"description": "Required. Immutable. Version of the builder which produced this build.", +"type": "string" +} +}, +"type": "object" +}, +"BuildOccurrence": { +"description": "Details of a build occurrence.", +"id": "BuildOccurrence", +"properties": { +"inTotoSlsaProvenanceV1": { +"$ref": "InTotoSlsaProvenanceV1", +"description": "In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance." +}, +"intotoProvenance": { +"$ref": "InTotoProvenance", +"description": "Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec." +}, +"intotoStatement": { +"$ref": "InTotoStatement", +"description": "In-toto Statement representation as defined in spec. The intoto_statement can contain any type of provenance. The serialized payload of the statement can be stored and signed in the Occurrence's envelope." +}, +"provenance": { +"$ref": "BuildProvenance", +"description": "The actual provenance for the build." +}, +"provenanceBytes": { +"description": "Serialized JSON representation of the provenance, used in generating the build signature in the corresponding build note. After verifying the signature, `provenance_bytes` can be unmarshalled and compared to the provenance to confirm that it is unchanged. A base64-encoded string representation of the provenance bytes is used for the signature in order to interoperate with openssl which expects this format for signature verification. The serialized form is captured both to avoid ambiguity in how the provenance is marshalled to json as well to prevent incompatibilities with future changes.", +"type": "string" +} +}, +"type": "object" +}, +"BuildProvenance": { +"description": "Provenance of a build. Contains all information needed to verify the full details about the build from source to completion.", +"id": "BuildProvenance", +"properties": { +"buildOptions": { +"additionalProperties": { +"type": "string" +}, +"description": "Special options applied to this build. This is a catch-all field where build providers can enter any desired additional details.", +"type": "object" +}, +"builderVersion": { +"description": "Version string of the builder at the time this build was executed.", +"type": "string" +}, +"builtArtifacts": { +"description": "Output of the build.", +"items": { +"$ref": "Artifact" +}, +"type": "array" +}, +"commands": { +"description": "Commands requested by the build.", +"items": { +"$ref": "Command" +}, +"type": "array" +}, +"createTime": { +"description": "Time at which the build was created.", +"format": "google-datetime", +"type": "string" +}, +"creator": { +"description": "E-mail address of the user who initiated this build. Note that this was the user's e-mail address at the time the build was initiated; this address may not represent the same end-user for all time.", +"type": "string" +}, +"endTime": { +"description": "Time at which execution of the build was finished.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "Required. Unique identifier of the build.", +"type": "string" +}, +"logsUri": { +"description": "URI where any logs for this provenance were written.", +"type": "string" +}, +"projectId": { +"description": "ID of the project.", +"type": "string" +}, +"sourceProvenance": { +"$ref": "Source", +"description": "Details of the Source input to the build." +}, +"startTime": { +"description": "Time at which execution of the build was started.", +"format": "google-datetime", +"type": "string" +}, +"triggerId": { +"description": "Trigger identifier if the build was triggered automatically; empty if not.", +"type": "string" +} +}, +"type": "object" +}, +"BuildStep": { +"description": "A step in the build pipeline. Next ID: 21", +"id": "BuildStep", +"properties": { +"allowExitCodes": { +"description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"allowFailure": { +"description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", +"type": "boolean" +}, +"args": { +"description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", +"items": { +"type": "string" +}, +"type": "array" +}, +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", +"type": "boolean" +}, +"dir": { +"description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", +"type": "string" +}, +"entrypoint": { +"description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", +"type": "string" +}, +"env": { +"description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"exitCode": { +"description": "Output only. Return code from running the step.", +"format": "int32", +"type": "integer" +}, +"id": { +"description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", +"type": "string" +}, +"name": { +"description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", +"type": "string" +}, +"pullTiming": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pulling this build step's builder image only." +}, +"script": { +"description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", +"type": "string" +}, +"secretEnv": { +"description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build has been received and is being queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"type": "string" +}, +"timeout": { +"description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for executing this build step." +}, +"volumes": { +"description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "Volume" +}, +"type": "array" +}, +"waitFor": { +"description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BuilderConfig": { +"id": "BuilderConfig", +"properties": { +"id": { +"type": "string" +} +}, +"type": "object" +}, +"CVSS": { +"description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing various versions of CVSS rather than making a separate proto for storing a specific version.", +"id": "CVSS", +"properties": { +"attackComplexity": { +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH", +"ATTACK_COMPLEXITY_MEDIUM" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"attackVector": { +"description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"", +"", +"", +"", +"" +], +"type": "string" +}, +"authentication": { +"enum": [ +"AUTHENTICATION_UNSPECIFIED", +"AUTHENTICATION_MULTIPLE", +"AUTHENTICATION_SINGLE", +"AUTHENTICATION_NONE" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"availabilityImpact": { +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE", +"IMPACT_PARTIAL", +"IMPACT_COMPLETE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores.", +"format": "float", +"type": "number" +}, +"confidentialityImpact": { +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE", +"IMPACT_PARTIAL", +"IMPACT_COMPLETE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"exploitabilityScore": { +"format": "float", +"type": "number" +}, +"impactScore": { +"format": "float", +"type": "number" +}, +"integrityImpact": { +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE", +"IMPACT_PARTIAL", +"IMPACT_COMPLETE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"privilegesRequired": { +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"scope": { +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"userInteraction": { +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"CVSSv3": { +"description": "Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document", +"id": "CVSSv3", +"properties": { +"attackComplexity": { +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"attackVector": { +"description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"", +"", +"", +"", +"" +], +"type": "string" +}, +"availabilityImpact": { +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores.", +"format": "float", +"type": "number" +}, +"confidentialityImpact": { +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"exploitabilityScore": { +"format": "float", +"type": "number" +}, +"impactScore": { +"format": "float", +"type": "number" +}, +"integrityImpact": { +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"privilegesRequired": { +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"scope": { +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"userInteraction": { +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"Category": { +"description": "The category to which the update belongs.", +"id": "Category", +"properties": { +"categoryId": { +"description": "The identifier of the category.", +"type": "string" +}, +"name": { +"description": "The localized name of the category.", +"type": "string" +} +}, +"type": "object" +}, +"CisBenchmark": { +"description": "A compliance check that is a CIS benchmark.", +"id": "CisBenchmark", +"properties": { +"profileLevel": { +"format": "int32", +"type": "integer" +}, +"severity": { +"enum": [ +"SEVERITY_UNSPECIFIED", +"MINIMAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Unknown.", +"Minimal severity.", +"Low severity.", +"Medium severity.", +"High severity.", +"Critical severity." +], +"type": "string" +} +}, +"type": "object" +}, +"CloudRepoSourceContext": { +"description": "A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo.", +"id": "CloudRepoSourceContext", +"properties": { +"aliasContext": { +"$ref": "AliasContext", +"description": "An alias, which may be a branch or tag." +}, +"repoId": { +"$ref": "RepoId", +"description": "The ID of the repo." +}, +"revisionId": { +"description": "A revision ID.", +"type": "string" +} +}, +"type": "object" +}, +"CloudStorageLocation": { +"description": "Empty placeholder to denote that this is a Google Cloud Storage export request.", +"id": "CloudStorageLocation", +"properties": {}, +"type": "object" +}, +"Command": { +"description": "Command describes a step performed as part of the build pipeline.", +"id": "Command", +"properties": { +"args": { +"description": "Command-line arguments used when executing this command.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dir": { +"description": "Working directory (relative to project source root) used when running this command.", +"type": "string" +}, +"env": { +"description": "Environment variables set before running this command.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Optional unique identifier for this command, used in wait_for to reference this command as a dependency.", +"type": "string" +}, +"name": { +"description": "Required. Name of the command, as presented on the command line, or if the command is packaged as a Docker container, as presented to `docker pull`.", +"type": "string" +}, +"waitFor": { +"description": "The ID(s) of the command(s) that this command depends on.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Completeness": { +"description": "Indicates that the builder claims certain fields in this message to be complete.", +"id": "Completeness", +"properties": { +"arguments": { +"description": "If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe.", +"type": "boolean" +}, +"environment": { +"description": "If true, the builder claims that recipe.environment is claimed to be complete.", +"type": "boolean" +}, +"materials": { +"description": "If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called \"hermetic\".", +"type": "boolean" +} +}, +"type": "object" +}, +"ComplianceNote": { +"id": "ComplianceNote", +"properties": { +"cisBenchmark": { +"$ref": "CisBenchmark" +}, +"description": { +"description": "A description about this compliance check.", +"type": "string" +}, +"impact": { +"type": "string" +}, +"rationale": { +"description": "A rationale for the existence of this compliance check.", +"type": "string" +}, +"remediation": { +"description": "A description of remediation steps if the compliance check fails.", +"type": "string" +}, +"scanInstructions": { +"description": "Serialized scan instructions with a predefined format.", +"format": "byte", +"type": "string" +}, +"title": { +"description": "The title that identifies this compliance check.", +"type": "string" +}, +"version": { +"description": "The OS and config versions the benchmark applies to.", +"items": { +"$ref": "ComplianceVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"ComplianceOccurrence": { +"description": "An indication that the compliance checks in the associated ComplianceNote were not satisfied for particular resources or a specified reason.", +"id": "ComplianceOccurrence", +"properties": { +"nonComplianceReason": { +"type": "string" +}, +"nonCompliantFiles": { +"items": { +"$ref": "NonCompliantFile" +}, +"type": "array" +}, +"version": { +"$ref": "ComplianceVersion", +"description": "The OS and config version the benchmark was run on." +} +}, +"type": "object" +}, +"ComplianceVersion": { +"description": "Describes the CIS benchmark version that is applicable to a given OS and os version.", +"id": "ComplianceVersion", +"properties": { +"benchmarkDocument": { +"description": "The name of the document that defines this benchmark, e.g. \"CIS Container-Optimized OS\".", +"type": "string" +}, +"cpeUri": { +"description": "The CPE URI (https://cpe.mitre.org/specification/) this benchmark is applicable to.", +"type": "string" +}, +"version": { +"description": "The version of the benchmark. This is set to the version of the OS-specific CIS document the benchmark is defined in.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig": { +"description": "ApprovalConfig describes configuration for manual approval of a build.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig", +"properties": { +"approvalRequired": { +"description": "Whether or not approval is needed. If this is set on a build, it will become pending when created, and will need to be explicitly approved to start.", +"type": "boolean" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult": { +"description": "ApprovalResult describes the decision and associated metadata of a manual approval of a build.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult", +"properties": { +"approvalTime": { +"description": "Output only. The time when the approval decision was made.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"approverAccount": { +"description": "Output only. Email of the user that called the ApproveBuild API to approve or reject a build at the time that the API was called.", +"readOnly": true, +"type": "string" +}, +"comment": { +"description": "Optional. An optional comment for this manual approval result.", +"type": "string" +}, +"decision": { +"description": "Required. The decision of this manual approval.", +"enum": [ +"DECISION_UNSPECIFIED", +"APPROVED", +"REJECTED" +], +"enumDescriptions": [ +"Default enum type. This should not be used.", +"Build is approved.", +"Build is rejected." +], +"type": "string" +}, +"url": { +"description": "Optional. An optional URL tied to this manual approval result. This field is essentially the same as comment, except that it will be rendered by the UI differently. An example use case is a link to an external job that approved this Build.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts": { +"description": "Artifacts produced by a build that should be uploaded upon successful completion of all build steps.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts", +"properties": { +"images": { +"description": "A list of images to be pushed upon the successful completion of all build steps. The images will be pushed using the builder service account's credentials. The digests of the pushed images will be stored in the Build resource's results field. If any of the images fail to be pushed, the build is marked FAILURE.", +"items": { +"type": "string" +}, +"type": "array" +}, +"mavenArtifacts": { +"description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact" +}, +"type": "array" +}, +"npmPackages": { +"description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage" +}, +"type": "array" +}, +"objects": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects", +"description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." +}, +"pythonPackages": { +"description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects": { +"description": "Files in the workspace to upload to Cloud Storage upon successful completion of all build steps.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects", +"properties": { +"location": { +"description": "Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\". (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Files in the workspace matching any path pattern will be uploaded to Cloud Storage with this location as a prefix.", +"type": "string" +}, +"paths": { +"description": "Path globs used to match files in the build's workspace.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timing": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing all artifact objects.", +"readOnly": true +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact": { +"description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact", +"properties": { +"artifactId": { +"description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", +"type": "string" +}, +"groupId": { +"description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", +"type": "string" +}, +"path": { +"description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", +"type": "string" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +}, +"version": { +"description": "Maven `version` value used when uploading the artifact to Artifact Registry.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage": { +"description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage", +"properties": { +"packagePath": { +"description": "Path to the package.json. e.g. workspace/path/to/package", +"type": "string" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage": { +"description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage", +"properties": { +"paths": { +"description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", +"items": { +"type": "string" +}, +"type": "array" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Build": { +"description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Build", +"properties": { +"approval": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval", +"description": "Output only. Describes this build's approval configuration, status, and result.", +"readOnly": true +}, +"artifacts": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts", +"description": "Artifacts produced by the build that should be uploaded upon successful completion of all build steps." +}, +"availableSecrets": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets", +"description": "Secrets and secret environment variables." +}, +"buildTriggerId": { +"description": "Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Time at which the request to create the build was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"failureInfo": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo", +"description": "Output only. Contains information about the build when status=FAILURE.", +"readOnly": true +}, +"finishTime": { +"description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"gitConfig": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig", +"description": "Optional. Configuration for git operations." +}, +"id": { +"description": "Output only. Unique identifier of the build.", +"readOnly": true, +"type": "string" +}, +"images": { +"description": "A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logUrl": { +"description": "Output only. URL to logs for this build in Google Cloud Console.", +"readOnly": true, +"type": "string" +}, +"logsBucket": { +"description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", +"type": "string" +}, +"name": { +"description": "Output only. The 'Build' name with format: `projects/{project}/locations/{location}/builds/{build}`, where {build} is a unique identifier generated by the service.", +"readOnly": true, +"type": "string" +}, +"options": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", +"description": "Special options for this build." +}, +"projectId": { +"description": "Output only. ID of the project.", +"readOnly": true, +"type": "string" +}, +"queueTtl": { +"description": "TTL in queue for this build. If provided and the build is enqueued longer than this value, the build will expire and the build status will be `EXPIRED`. The TTL starts ticking from create_time.", +"format": "google-duration", +"type": "string" +}, +"results": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Results", +"description": "Output only. Results of the build.", +"readOnly": true +}, +"secrets": { +"description": "Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is the recommended technique for managing sensitive data with Cloud Build. Use `available_secrets` to configure builds to access secrets from Secret Manager. For instructions, see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Secret" +}, +"type": "array" +}, +"serviceAccount": { +"description": "IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. ", +"type": "string" +}, +"source": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Source", +"description": "Optional. The location of the source files to build." +}, +"sourceProvenance": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance", +"description": "Output only. A permanent fixed identifier for source.", +"readOnly": true +}, +"startTime": { +"description": "Output only. Time at which execution of the build was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Status of the build.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Customer-readable message about the current status.", +"readOnly": true, +"type": "string" +}, +"steps": { +"description": "Required. The operations to be performed on the workspace.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep" +}, +"type": "array" +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Substitutions data for `Build` resource.", +"type": "object" +}, +"tags": { +"description": "Tags for annotation of a `Build`. These are not docker tags.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timeout": { +"description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"additionalProperties": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan" +}, +"description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", +"readOnly": true, +"type": "object" +}, +"warnings": { +"description": "Output only. Non-fatal problems encountered during the execution of the build.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval": { +"description": "BuildApproval describes a build's approval configuration, state, and result.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval", +"properties": { +"config": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig", +"description": "Output only. Configuration for manual approval of this build.", +"readOnly": true +}, +"result": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult", +"description": "Output only. Result of manual approval for this Build.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of this build's approval.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"APPROVED", +"REJECTED", +"CANCELLED" +], +"enumDescriptions": [ +"Default enum type. This should not be used.", +"Build approval is pending.", +"Build approval has been approved.", +"Build approval has been rejected.", +"Build was cancelled while it was still pending approval." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo": { +"description": "A fatal problem encountered during the execution of the build.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo", +"properties": { +"detail": { +"description": "Explains the failure issue in more detail using hard-coded text.", +"type": "string" +}, +"type": { +"description": "The name of the failure.", +"enum": [ +"FAILURE_TYPE_UNSPECIFIED", +"PUSH_FAILED", +"PUSH_IMAGE_NOT_FOUND", +"PUSH_NOT_AUTHORIZED", +"LOGGING_FAILURE", +"USER_BUILD_STEP", +"FETCH_SOURCE_FAILED" +], +"enumDescriptions": [ +"Type unspecified", +"Unable to push the image to the repository.", +"Final image not found.", +"Unauthorized push of the final image.", +"Backend logging failures. Should retry.", +"A build step has failed.", +"The source fetching has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions": { +"description": "Optional arguments to enable specific features of builds.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", +"properties": { +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for all build steps.", +"type": "boolean" +}, +"defaultLogsBucketBehavior": { +"description": "Optional. Option to specify how default logs buckets are setup.", +"enum": [ +"DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", +"REGIONAL_USER_OWNED_BUCKET", +"LEGACY_BUCKET" +], +"enumDescriptions": [ +"Unspecified.", +"Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project.", +"Bucket is located in a Google-owned project and is not regionalized." +], +"type": "string" +}, +"diskSizeGb": { +"description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 4000GB; builds that request more than the maximum are rejected with an error.", +"format": "int64", +"type": "string" +}, +"dynamicSubstitutions": { +"description": "Option to specify whether or not to apply bash style string operations to the substitutions. NOTE: this is always enabled for triggered builds and cannot be overridden in the build configuration file.", +"type": "boolean" +}, +"env": { +"description": "A list of global environment variable definitions that will exist for all build steps in this build. If a variable is defined in both globally and in a build step, the variable will use the build step value. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"logStreamingOption": { +"description": "Option to define build log streaming behavior to Cloud Storage.", +"enum": [ +"STREAM_DEFAULT", +"STREAM_ON", +"STREAM_OFF" +], +"enumDescriptions": [ +"Service may automatically determine build log streaming behavior.", +"Build logs should be streamed to Cloud Storage.", +"Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." +], +"type": "string" +}, +"logging": { +"description": "Option to specify the logging mode, which determines if and where build logs are stored.", +"enum": [ +"LOGGING_UNSPECIFIED", +"LEGACY", +"GCS_ONLY", +"STACKDRIVER_ONLY", +"CLOUD_LOGGING_ONLY", +"NONE" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false +], +"enumDescriptions": [ +"The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", +"Build logs are stored in Cloud Logging and Cloud Storage.", +"Build logs are stored in Cloud Storage.", +"This option is the same as CLOUD_LOGGING_ONLY.", +"Build logs are stored in Cloud Logging. Selecting this option will not allow [logs streaming](https://cloud.google.com/sdk/gcloud/reference/builds/log).", +"Turn off all logging. No build logs will be captured." +], +"type": "string" +}, +"machineType": { +"description": "Compute Engine machine type on which to run the build.", +"enum": [ +"UNSPECIFIED", +"N1_HIGHCPU_8", +"N1_HIGHCPU_32", +"E2_HIGHCPU_8", +"E2_HIGHCPU_32", +"E2_MEDIUM" +], +"enumDeprecated": [ +false, +true, +true, +false, +false, +false +], +"enumDescriptions": [ +"Standard machine type.", +"Highcpu machine with 8 CPUs.", +"Highcpu machine with 32 CPUs.", +"Highcpu e2 machine with 8 CPUs.", +"Highcpu e2 machine with 32 CPUs.", +"E2 machine with 1 CPU." +], +"type": "string" +}, +"pool": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption", +"description": "Optional. Specification for execution on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information." +}, +"requestedVerifyOption": { +"description": "Requested verifiability options.", +"enum": [ +"NOT_VERIFIED", +"VERIFIED" +], +"enumDescriptions": [ +"Not a verifiable build (the default).", +"Build must be verified." +], +"type": "string" +}, +"secretEnv": { +"description": "A list of global environment variables, which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. These variables will be available to all build steps in this build.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sourceProvenanceHash": { +"description": "Requested hash for SourceProvenance.", +"items": { +"enum": [ +"NONE", +"SHA256", +"MD5", +"SHA512" +], +"enumDescriptions": [ +"No hash requested.", +"Use a sha256 hash.", +"Use a md5 hash.", +"Use a sha512 hash." +], +"type": "string" +}, +"type": "array" +}, +"substitutionOption": { +"description": "Option to specify behavior when there is an error in the substitution checks. NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden in the build configuration file.", +"enum": [ +"MUST_MATCH", +"ALLOW_LOOSE" +], +"enumDescriptions": [ +"Fails the build if error in substitutions checks, like missing a substitution in the template or in the map.", +"Do not fail the build if error in substitutions checks." +], +"type": "string" +}, +"volumes": { +"description": "Global list of volumes to mount for ALL build steps Each volume is created as an empty volume prior to starting the build process. Upon completion of the build, volumes and their contents are discarded. Global volume names and paths cannot conflict with the volumes defined a build step. Using a global volume in a build with only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume" +}, +"type": "array" +}, +"workerPool": { +"deprecated": true, +"description": "This field deprecated; please use `pool.name` instead.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption": { +"description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption", +"properties": { +"name": { +"description": "The `WorkerPool` resource to execute the build on. You must have `cloudbuild.workerpools.use` on the project hosting the WorkerPool. Format projects/{project}/locations/{location}/workerPools/{workerPoolId}", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep": { +"description": "A step in the build pipeline.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep", +"properties": { +"allowExitCodes": { +"description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"allowFailure": { +"description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", +"type": "boolean" +}, +"args": { +"description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", +"items": { +"type": "string" +}, +"type": "array" +}, +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", +"type": "boolean" +}, +"dir": { +"description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", +"type": "string" +}, +"entrypoint": { +"description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", +"type": "string" +}, +"env": { +"description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"exitCode": { +"description": "Output only. Return code from running the step.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"id": { +"description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", +"type": "string" +}, +"name": { +"description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", +"type": "string" +}, +"pullTiming": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pulling this build step's builder image only.", +"readOnly": true +}, +"script": { +"description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", +"type": "string" +}, +"secretEnv": { +"description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"readOnly": true, +"type": "string" +}, +"timeout": { +"description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for executing this build step.", +"readOnly": true +}, +"volumes": { +"description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume" +}, +"type": "array" +}, +"waitFor": { +"description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning": { +"description": "A non-fatal problem encountered during the execution of the build.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning", +"properties": { +"priority": { +"description": "The priority for this warning.", +"enum": [ +"PRIORITY_UNSPECIFIED", +"INFO", +"WARNING", +"ALERT" +], +"enumDescriptions": [ +"Should not be used.", +"e.g. deprecation warnings and alternative feature highlights.", +"e.g. automated detection of possible issues with the build.", +"e.g. alerts that a feature used in the build is pending removal" +], +"type": "string" +}, +"text": { +"description": "Explanation of the warning generated.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage": { +"description": "An image built by the pipeline.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage", +"properties": { +"digest": { +"description": "Docker Registry 2.0 digest.", +"type": "string" +}, +"name": { +"description": "Name used to push the container image to Google Container Registry, as presented to `docker push`.", +"type": "string" +}, +"pushTiming": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified image.", +"readOnly": true +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository": { +"description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", +"properties": { +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build.", +"type": "string" +}, +"repository": { +"description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", +"type": "string" +}, +"revision": { +"description": "Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig": { +"description": "This config defines the location of a source through Developer Connect.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig", +"properties": { +"dir": { +"description": "Required. Directory, relative to the source root, in which to run the build.", +"type": "string" +}, +"gitRepositoryLink": { +"description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.", +"type": "string" +}, +"revision": { +"description": "Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes": { +"description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", +"properties": { +"fileHash": { +"description": "Collection of file hashes.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig": { +"description": "GitConfig is a configuration for git operations.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig", +"properties": { +"http": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig", +"description": "Configuration for HTTP related git operations." +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig": { +"description": "HttpConfig is a configuration for HTTP related git operations.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig", +"properties": { +"proxySecretVersionName": { +"description": "SecretVersion resource of the HTTP proxy URL. The Service Account used in the build (either the default Service Account or user-specified Service Account) should have `secretmanager.versions.access` permissions on this secret. The proxy URL should be in format `protocol://@]proxyhost[:port]`.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource": { +"description": "Location of the source in any accessible Git repository.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", +"properties": { +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", +"type": "string" +}, +"revision": { +"description": "Optional. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", +"type": "string" +}, +"url": { +"description": "Required. Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Hash": { +"description": "Container message for hash values.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash", +"properties": { +"type": { +"description": "The type of hash that was performed.", +"enum": [ +"NONE", +"SHA256", +"MD5", +"SHA512" +], +"enumDescriptions": [ +"No hash requested.", +"Use a sha256 hash.", +"Use a md5 hash.", +"Use a sha512 hash." +], +"type": "string" +}, +"value": { +"description": "The hash value.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret": { +"description": "Pairs a set of secret environment variables mapped to encrypted values with the Cloud KMS key to use to decrypt the value.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret", +"properties": { +"envMap": { +"additionalProperties": { +"format": "byte", +"type": "string" +}, +"description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", +"type": "object" +}, +"kmsKeyName": { +"description": "Resource name of Cloud KMS crypto key to decrypt the encrypted value. In format: projects/*/locations/*/keyRings/*/cryptoKeys/*", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource": { +"description": "Location of the source in a Google Cloud Source Repository.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", +"properties": { +"branchName": { +"description": "Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +}, +"commitSha": { +"description": "Explicit commit SHA to build.", +"type": "string" +}, +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", +"type": "string" +}, +"invertRegex": { +"description": "Optional. Only trigger a build if the revision regex does NOT match the revision regex.", +"type": "boolean" +}, +"projectId": { +"description": "Optional. ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed.", +"type": "string" +}, +"repoName": { +"description": "Required. Name of the Cloud Source Repository.", +"type": "string" +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Substitutions to use in a triggered build. Should only be used with RunBuildTrigger", +"type": "object" +}, +"tagName": { +"description": "Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Results": { +"description": "Artifacts created by the build pipeline.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Results", +"properties": { +"artifactManifest": { +"description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", +"type": "string" +}, +"artifactTiming": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Time to push all non-container artifacts to Cloud Storage." +}, +"buildStepImages": { +"description": "List of build step digests, in the order corresponding to build step indices.", +"items": { +"type": "string" +}, +"type": "array" +}, +"buildStepOutputs": { +"description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored. Note that the `$BUILDER_OUTPUT` variable is read-only and can't be substituted.", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"images": { +"description": "Container images that were built as a part of the build.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage" +}, +"type": "array" +}, +"mavenArtifacts": { +"description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact" +}, +"type": "array" +}, +"npmPackages": { +"description": "Npm packages uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage" +}, +"type": "array" +}, +"numArtifacts": { +"description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", +"format": "int64", +"type": "string" +}, +"pythonPackages": { +"description": "Python artifacts uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Secret": { +"description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Secret", +"properties": { +"kmsKeyName": { +"description": "Cloud KMS key name to use to decrypt these envs.", +"type": "string" +}, +"secretEnv": { +"additionalProperties": { +"format": "byte", +"type": "string" +}, +"description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", +"type": "object" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret": { +"description": "Pairs a secret environment variable with a SecretVersion in Secret Manager.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret", +"properties": { +"env": { +"description": "Environment variable name to associate with the secret. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step.", +"type": "string" +}, +"versionName": { +"description": "Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets": { +"description": "Secrets and secret environment variables.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets", +"properties": { +"inline": { +"description": "Secrets encrypted with KMS key and the associated secret environment variable.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret" +}, +"type": "array" +}, +"secretManager": { +"description": "Secrets in Secret Manager and associated secret environment variable.", +"items": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Source": { +"description": "Location of the source in a supported storage service.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Source", +"properties": { +"connectedRepository": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", +"description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." +}, +"developerConnectConfig": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig", +"description": "If provided, get the source from this Developer Connect config." +}, +"gitSource": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", +"description": "If provided, get the source from this Git repository." +}, +"repoSource": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", +"description": "If provided, get the source from this location in a Cloud Source Repository." +}, +"storageSource": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", +"description": "If provided, get the source from this location in Cloud Storage." +}, +"storageSourceManifest": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", +"description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance": { +"description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance", +"properties": { +"fileHashes": { +"additionalProperties": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes" +}, +"description": "Output only. Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. Note that `FileHashes` will only be populated if `BuildOptions` has requested a `SourceProvenanceHash`. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (`.tar.gz`), the `FileHash` will be for the single path to that file.", +"readOnly": true, +"type": "object" +}, +"resolvedConnectedRepository": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", +"description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", +"readOnly": true +}, +"resolvedGitSource": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", +"description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", +"readOnly": true +}, +"resolvedRepoSource": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", +"description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." +}, +"resolvedStorageSource": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", +"description": "A copy of the build's `source.storage_source`, if exists, with any generations resolved." +}, +"resolvedStorageSourceManifest": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", +"description": "A copy of the build's `source.storage_source_manifest`, if exists, with any revisions resolved. This feature is in Preview." +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource": { +"description": "Location of the source in an archive file in Cloud Storage.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", +"properties": { +"bucket": { +"description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Optional. Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", +"type": "string" +}, +"sourceFetcher": { +"description": "Optional. Option to specify the tool to fetch the source file for the build.", +"enum": [ +"SOURCE_FETCHER_UNSPECIFIED", +"GSUTIL", +"GCS_FETCHER" +], +"enumDescriptions": [ +"Unspecified defaults to GSUTIL.", +"Use the \"gsutil\" tool to download the source file.", +"Use the Cloud Storage Fetcher tool to download the source file." +], +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest": { +"description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", +"properties": { +"bucket": { +"description": "Required. Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Cloud Storage object containing the source manifest. This object must be a JSON file.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan": { +"description": "Start and end times for a build execution phase.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"properties": { +"endTime": { +"description": "End of time span.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start of time span.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { +"description": "A Maven artifact uploaded using the MavenArtifact directive.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact", +"properties": { +"fileHashes": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", +"description": "Hash types and values of the Maven Artifact." +}, +"pushTiming": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded artifact.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage": { +"description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage", +"properties": { +"fileHashes": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", +"description": "Hash types and values of the npm package." +}, +"pushTiming": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded npm package.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { +"description": "Artifact uploaded using the PythonPackage directive.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", +"properties": { +"fileHashes": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", +"description": "Hash types and values of the Python Artifact." +}, +"pushTiming": { +"$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded artifact.", +"type": "string" +} +}, +"type": "object" +}, +"ContaineranalysisGoogleDevtoolsCloudbuildV1Volume": { +"description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", +"id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume", +"properties": { +"name": { +"description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", +"type": "string" +}, +"path": { +"description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", +"type": "string" +} +}, +"type": "object" +}, +"DSSEAttestationNote": { +"id": "DSSEAttestationNote", +"properties": { +"hint": { +"$ref": "DSSEHint", +"description": "DSSEHint hints at the purpose of the attestation authority." +} +}, +"type": "object" +}, +"DSSEAttestationOccurrence": { +"description": "Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at the top level of the Occurrence.", +"id": "DSSEAttestationOccurrence", +"properties": { +"envelope": { +"$ref": "Envelope", +"description": "If doing something security critical, make sure to verify the signatures in this metadata." +}, +"statement": { +"$ref": "InTotoStatement" +} +}, +"type": "object" +}, +"DSSEHint": { +"description": "This submessage provides human-readable hints about the purpose of the authority. Because the name of a note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from \"readable\" names more suitable for debug output. Note that these hints should not be used to look up authorities in security sensitive contexts, such as when looking up attestations to verify.", +"id": "DSSEHint", +"properties": { +"humanReadableName": { +"description": "Required. The human readable name of this attestation authority, for example \"cloudbuild-prod\".", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentNote": { +"description": "An artifact that can be deployed in some runtime.", +"id": "DeploymentNote", +"properties": { +"resourceUri": { +"description": "Required. Resource URI for the artifact being deployed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeploymentOccurrence": { +"description": "The period during which some deployable was active in a runtime.", +"id": "DeploymentOccurrence", +"properties": { +"address": { +"description": "Address of the runtime element hosting this deployment.", +"type": "string" +}, +"config": { +"description": "Configuration used to create this deployment.", +"type": "string" +}, +"deployTime": { +"description": "Required. Beginning of the lifetime of this deployment.", +"format": "google-datetime", +"type": "string" +}, +"platform": { +"description": "Platform hosting this deployment.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"GKE", +"FLEX", +"CUSTOM" +], +"enumDescriptions": [ +"Unknown.", +"Google Container Engine.", +"Google App Engine: Flexible Environment.", +"Custom user-defined platform." +], +"type": "string" +}, +"resourceUri": { +"description": "Output only. Resource URI for the artifact being deployed taken from the deployable field with the same name.", +"items": { +"type": "string" +}, +"type": "array" +}, +"undeployTime": { +"description": "End of the lifetime of this deployment.", +"format": "google-datetime", +"type": "string" +}, +"userEmail": { +"description": "Identity of the user that triggered this deployment.", +"type": "string" +} +}, +"type": "object" +}, +"Detail": { +"description": "A detail for a distro and package affected by this vulnerability and its associated fix (if one is available).", +"id": "Detail", +"properties": { +"affectedCpeUri": { +"description": "Required. The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability affects.", +"type": "string" +}, +"affectedPackage": { +"description": "Required. The package this vulnerability affects.", +"type": "string" +}, +"affectedVersionEnd": { +"$ref": "Version", +"description": "The version number at the end of an interval in which this vulnerability exists. A vulnerability can affect a package between version numbers that are disjoint sets of intervals (example: [1.0.0-1.1.0], [2.4.6-2.4.8] and [4.5.6-4.6.8]) each of which will be represented in its own Detail. If a specific affected version is provided by a vulnerability database, affected_version_start and affected_version_end will be the same in that Detail." +}, +"affectedVersionStart": { +"$ref": "Version", +"description": "The version number at the start of an interval in which this vulnerability exists. A vulnerability can affect a package between version numbers that are disjoint sets of intervals (example: [1.0.0-1.1.0], [2.4.6-2.4.8] and [4.5.6-4.6.8]) each of which will be represented in its own Detail. If a specific affected version is provided by a vulnerability database, affected_version_start and affected_version_end will be the same in that Detail." +}, +"description": { +"description": "A vendor-specific description of this vulnerability.", +"type": "string" +}, +"fixedCpeUri": { +"description": "The distro recommended [CPE URI](https://cpe.mitre.org/specification/) to update to that contains a fix for this vulnerability. It is possible for this to be different from the affected_cpe_uri.", +"type": "string" +}, +"fixedPackage": { +"description": "The distro recommended package to update to that contains a fix for this vulnerability. It is possible for this to be different from the affected_package.", +"type": "string" +}, +"fixedVersion": { +"$ref": "Version", +"description": "The distro recommended version to update to that contains a fix for this vulnerability. Setting this to VersionKind.MAXIMUM means no such version is yet available." +}, +"isObsolete": { +"description": "Whether this detail is obsolete. Occurrences are expected not to point to obsolete details.", +"type": "boolean" +}, +"packageType": { +"description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", +"type": "string" +}, +"severityName": { +"description": "The distro assigned severity of this vulnerability.", +"type": "string" +}, +"source": { +"description": "The source from which the information in this Detail was obtained.", +"type": "string" +}, +"sourceUpdateTime": { +"description": "The time this information was last changed at the source. This is an upstream timestamp from the underlying information source - e.g. Ubuntu security tracker.", +"format": "google-datetime", +"type": "string" +}, +"vendor": { +"description": "The name of the vendor of the product.", +"type": "string" +} +}, +"type": "object" +}, +"Digest": { +"description": "Digest information.", +"id": "Digest", +"properties": { +"algo": { +"description": "`SHA1`, `SHA512` etc.", +"type": "string" +}, +"digestBytes": { +"description": "Value of the digest.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"DiscoveryNote": { +"description": "A note that indicates a type of analysis a provider would perform. This note exists in a provider's project. A `Discovery` occurrence is created in a consumer's project at the start of analysis.", +"id": "DiscoveryNote", +"properties": { +"analysisKind": { +"description": "Required. Immutable. The kind of analysis that is handled by this discovery.", +"enum": [ +"NOTE_KIND_UNSPECIFIED", +"VULNERABILITY", +"BUILD", +"IMAGE", +"PACKAGE", +"DEPLOYMENT", +"DISCOVERY", +"ATTESTATION", +"UPGRADE", +"COMPLIANCE", +"DSSE_ATTESTATION", +"VULNERABILITY_ASSESSMENT", +"SBOM_REFERENCE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The note and occurrence represent a package vulnerability.", +"The note and occurrence assert build provenance.", +"This represents an image basis relationship.", +"This represents a package installed via a package manager.", +"The note and occurrence track deployment events.", +"The note and occurrence track the initial discovery status of a resource.", +"This represents a logical \"role\" that can attest to artifacts.", +"This represents an available package upgrade.", +"This represents a Compliance Note", +"This represents a DSSE attestation Note", +"This represents a Vulnerability Assessment.", +"This represents an SBOM Reference." +], +"type": "string" +} +}, +"type": "object" +}, +"DiscoveryOccurrence": { +"description": "Provides information about the analysis status of a discovered resource.", +"id": "DiscoveryOccurrence", +"properties": { +"analysisCompleted": { +"$ref": "AnalysisCompleted" +}, +"analysisError": { +"description": "Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors.", +"items": { +"$ref": "Status" +}, +"type": "array" +}, +"analysisStatus": { +"description": "The status of discovery for the resource.", +"enum": [ +"ANALYSIS_STATUS_UNSPECIFIED", +"PENDING", +"SCANNING", +"FINISHED_SUCCESS", +"COMPLETE", +"FINISHED_FAILED", +"FINISHED_UNSUPPORTED" +], +"enumDescriptions": [ +"Unknown.", +"Resource is known but no action has been taken yet.", +"Resource is being analyzed.", +"Analysis has finished successfully.", +"Analysis has completed.", +"Analysis has finished unsuccessfully, the analysis itself is in a bad state.", +"The resource is known not to be supported." +], +"type": "string" +}, +"analysisStatusError": { +"$ref": "Status", +"description": "When an error is encountered this will contain a LocalizedMessage under details to show to the user. The LocalizedMessage is output only and populated by the API." +}, +"archiveTime": { +"description": "Output only. The time occurrences related to this discovery occurrence were archived.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"continuousAnalysis": { +"description": "Whether the resource is continuously analyzed.", +"enum": [ +"CONTINUOUS_ANALYSIS_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unknown.", +"The resource is continuously analyzed.", +"The resource is ignored for continuous analysis." +], +"type": "string" +}, +"cpe": { +"description": "The CPE of the resource being scanned.", +"type": "string" +}, +"lastScanTime": { +"description": "The last time this resource was scanned.", +"format": "google-datetime", +"type": "string" +}, +"sbomStatus": { +"$ref": "SBOMStatus", +"description": "The status of an SBOM generation." +} +}, +"type": "object" +}, +"Distribution": { +"description": "This represents a particular channel of distribution for a given package. E.g., Debian's jessie-backports dpkg mirror.", +"id": "Distribution", +"properties": { +"architecture": { +"description": "The CPU architecture for which packages in this distribution channel were built.", +"enum": [ +"ARCHITECTURE_UNSPECIFIED", +"X86", +"X64" +], +"enumDescriptions": [ +"Unknown architecture.", +"X86 architecture.", +"X64 architecture." +], +"type": "string" +}, +"cpeUri": { +"description": "Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", +"type": "string" +}, +"description": { +"description": "The distribution channel-specific description of this package.", +"type": "string" +}, +"latestVersion": { +"$ref": "Version", +"description": "The latest available version of this package in this distribution channel." +}, +"maintainer": { +"description": "A freeform string denoting the maintainer of this package.", +"type": "string" +}, +"url": { +"description": "The distribution channel-specific homepage for this package.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Envelope": { +"description": "MUST match https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto. An authenticated message of arbitrary type.", +"id": "Envelope", +"properties": { +"payload": { +"format": "byte", +"type": "string" +}, +"payloadType": { +"type": "string" +}, +"signatures": { +"items": { +"$ref": "EnvelopeSignature" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnvelopeSignature": { +"id": "EnvelopeSignature", +"properties": { +"keyid": { +"type": "string" +}, +"sig": { +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ExportSBOMRequest": { +"description": "The request to generate and export SBOM. Target must be specified for the request.", +"id": "ExportSBOMRequest", +"properties": { +"cloudStorageLocation": { +"$ref": "CloudStorageLocation", +"description": "Empty placeholder to denote that this is a Google Cloud Storage export request." +} +}, +"type": "object" +}, +"ExportSBOMResponse": { +"description": "The response from a call to ExportSBOM.", +"id": "ExportSBOMResponse", +"properties": { +"discoveryOccurrence": { +"description": "The name of the discovery occurrence in the form \"projects/{project_id}/occurrences/{OCCURRENCE_ID} It can be used to track the progress of the SBOM export.", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"FileHashes": { +"description": "Container message for hashes of byte content of files, used in source messages to verify integrity of source input to the build.", +"id": "FileHashes", +"properties": { +"fileHash": { +"description": "Required. Collection of file hashes.", +"items": { +"$ref": "Hash" +}, +"type": "array" +} +}, +"type": "object" +}, +"Fingerprint": { +"description": "A set of properties that uniquely identify a given Docker image.", +"id": "Fingerprint", +"properties": { +"v1Name": { +"description": "Required. The layer ID of the final layer in the Docker image's v1 representation.", +"type": "string" +}, +"v2Blob": { +"description": "Required. The ordered list of v2 blobs that represent a given image.", +"items": { +"type": "string" +}, +"type": "array" +}, +"v2Name": { +"description": "Output only. The name of the image's v2 blobs computed via: [bottom] := v2_blobbottom := sha256(v2_blob[N] + \" \" + v2_name[N+1]) Only the name of the final blob is kept.", +"type": "string" +} +}, +"type": "object" +}, +"FixableTotalByDigest": { +"description": "Per resource and severity counts of fixable and total vulnerabilities.", +"id": "FixableTotalByDigest", +"properties": { +"fixableCount": { +"description": "The number of fixable vulnerabilities associated with this resource.", +"format": "int64", +"type": "string" +}, +"resourceUri": { +"description": "The affected resource.", +"type": "string" +}, +"severity": { +"description": "The severity for this count. SEVERITY_UNSPECIFIED indicates total across all severities.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"MINIMAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Unknown.", +"Minimal severity.", +"Low severity.", +"Medium severity.", +"High severity.", +"Critical severity." +], +"type": "string" +}, +"totalCount": { +"description": "The total number of vulnerabilities associated with this resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GerritSourceContext": { +"description": "A SourceContext referring to a Gerrit project.", +"id": "GerritSourceContext", +"properties": { +"aliasContext": { +"$ref": "AliasContext", +"description": "An alias, which may be a branch or tag." +}, +"gerritProject": { +"description": "The full project name within the host. Projects may be nested, so \"project/subproject\" is a valid project name. The \"repo name\" is the hostURI/project.", +"type": "string" +}, +"hostUri": { +"description": "The URI of a running Gerrit instance.", +"type": "string" +}, +"revisionId": { +"description": "A revision (commit) ID.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GitSourceContext": { +"description": "A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub).", +"id": "GitSourceContext", +"properties": { +"revisionId": { +"description": "Git commit hash.", +"type": "string" +}, +"url": { +"description": "Git repository URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata": { +"description": "Metadata for all operations used and required for all operations that created by Container Analysis Providers", +"id": "GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata", +"properties": { +"createTime": { +"description": "Output only. The time this operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "Output only. The time that this operation was marked completed or failed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GrafeasV1FileLocation": { +"description": "Indicates the location at which a package was found.", +"id": "GrafeasV1FileLocation", +"properties": { +"filePath": { +"description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", +"type": "string" +} +}, +"type": "object" +}, +"GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder": { +"description": "Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance.", +"id": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder", +"properties": { +"id": { +"type": "string" +} +}, +"type": "object" +}, +"GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness": { +"description": "Indicates that the builder claims certain fields in this message to be complete.", +"id": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness", +"properties": { +"environment": { +"type": "boolean" +}, +"materials": { +"type": "boolean" +}, +"parameters": { +"type": "boolean" +} +}, +"type": "object" +}, +"GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource": { +"description": "Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from.", +"id": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource", +"properties": { +"digest": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +}, +"entryPoint": { +"type": "string" +}, +"uri": { +"type": "string" +} +}, +"type": "object" +}, +"GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation": { +"description": "Identifies the event that kicked off the build.", +"id": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation", +"properties": { +"configSource": { +"$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource" +}, +"environment": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +} +}, +"type": "object" +}, +"GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial": { +"description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.", +"id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial", +"properties": { +"digest": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +}, +"uri": { +"type": "string" +} +}, +"type": "object" +}, +"GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata": { +"description": "Other properties of the build.", +"id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata", +"properties": { +"buildFinishedOn": { +"format": "google-datetime", +"type": "string" +}, +"buildInvocationId": { +"type": "string" +}, +"buildStartedOn": { +"format": "google-datetime", +"type": "string" +}, +"completeness": { +"$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness" +}, +"reproducible": { +"type": "boolean" +} +}, +"type": "object" +}, +"Hash": { +"description": "Container message for hash values.", +"id": "Hash", +"properties": { +"type": { +"description": "Required. The type of hash that was performed, e.g. \"SHA-256\".", +"type": "string" +}, +"value": { +"description": "Required. The hash value.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Hint": { +"description": "This submessage provides human-readable hints about the purpose of the authority. Because the name of a note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from \"readable\" names more suitable for debug output. Note that these hints should not be used to look up authorities in security sensitive contexts, such as when looking up attestations to verify.", +"id": "Hint", +"properties": { +"humanReadableName": { +"description": "Required. The human readable name of this attestation authority, for example \"qa\".", +"type": "string" +} +}, +"type": "object" +}, +"Identity": { +"description": "The unique identifier of the update.", +"id": "Identity", +"properties": { +"revision": { +"description": "The revision number of the update.", +"format": "int32", +"type": "integer" +}, +"updateId": { +"description": "The revision independent identifier of the update.", +"type": "string" +} +}, +"type": "object" +}, +"ImageNote": { +"description": "Basis describes the base image portion (Note) of the DockerImage relationship. Linked occurrences are derived from this or an equivalent image via: FROM Or an equivalent reference, e.g., a tag of the resource_url.", +"id": "ImageNote", +"properties": { +"fingerprint": { +"$ref": "Fingerprint", +"description": "Required. Immutable. The fingerprint of the base image." +}, +"resourceUrl": { +"description": "Required. Immutable. The resource_url for the resource representing the basis of associated occurrence images.", +"type": "string" +} +}, +"type": "object" +}, +"ImageOccurrence": { +"description": "Details of the derived image portion of the DockerImage relationship. This image would be produced from a Dockerfile with FROM .", +"id": "ImageOccurrence", +"properties": { +"baseResourceUrl": { +"description": "Output only. This contains the base image URL for the derived image occurrence.", +"type": "string" +}, +"distance": { +"description": "Output only. The number of layers by which this image differs from the associated image basis.", +"format": "int32", +"type": "integer" +}, +"fingerprint": { +"$ref": "Fingerprint", +"description": "Required. The fingerprint of the derived image." +}, +"layerInfo": { +"description": "This contains layer-specific metadata, if populated it has length \"distance\" and is ordered with [distance] being the layer immediately following the base image and [1] being the final layer.", +"items": { +"$ref": "Layer" +}, +"type": "array" +} +}, +"type": "object" +}, +"InTotoProvenance": { +"id": "InTotoProvenance", +"properties": { +"builderConfig": { +"$ref": "BuilderConfig", +"description": "required" +}, +"materials": { +"description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. This is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metadata": { +"$ref": "Metadata" +}, +"recipe": { +"$ref": "Recipe", +"description": "Identifies the configuration used for the build. When combined with materials, this SHOULD fully describe the build, such that re-running this recipe results in bit-for-bit identical output (if the build is reproducible). required" +} +}, +"type": "object" +}, +"InTotoSlsaProvenanceV1": { +"id": "InTotoSlsaProvenanceV1", +"properties": { +"_type": { +"description": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement", +"type": "string" +}, +"predicate": { +"$ref": "SlsaProvenanceV1" +}, +"predicateType": { +"type": "string" +}, +"subject": { +"items": { +"$ref": "Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"InTotoStatement": { +"description": "Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always \"application/vnd.in-toto+json\".", +"id": "InTotoStatement", +"properties": { +"_type": { +"description": "Always `https://in-toto.io/Statement/v0.1`.", +"type": "string" +}, +"predicateType": { +"description": "`https://slsa.dev/provenance/v0.1` for SlsaProvenance.", +"type": "string" +}, +"provenance": { +"$ref": "InTotoProvenance" +}, +"slsaProvenance": { +"$ref": "SlsaProvenance" +}, +"slsaProvenanceZeroTwo": { +"$ref": "SlsaProvenanceZeroTwo" +}, +"subject": { +"items": { +"$ref": "Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"Justification": { +"description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED.", +"id": "Justification", +"properties": { +"details": { +"description": "Additional details on why this justification was chosen.", +"type": "string" +}, +"justificationType": { +"description": "The justification type for this vulnerability.", +"enum": [ +"JUSTIFICATION_TYPE_UNSPECIFIED", +"COMPONENT_NOT_PRESENT", +"VULNERABLE_CODE_NOT_PRESENT", +"VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", +"VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", +"INLINE_MITIGATIONS_ALREADY_EXIST" +], +"enumDescriptions": [ +"JUSTIFICATION_TYPE_UNSPECIFIED.", +"The vulnerable component is not present in the product.", +"The vulnerable code is not present. Typically this case occurs when source code is configured or built in a way that excludes the vulnerable code.", +"The vulnerable code can not be executed. Typically this case occurs when the product includes the vulnerable code but does not call or use the vulnerable code.", +"The vulnerable code cannot be controlled by an attacker to exploit the vulnerability.", +"The product includes built-in protections or features that prevent exploitation of the vulnerability. These built-in protections cannot be subverted by the attacker and cannot be configured or disabled by the user. These mitigations completely prevent exploitation based on known attack vectors." +], +"type": "string" +} +}, +"type": "object" +}, +"Jwt": { +"id": "Jwt", +"properties": { +"compactJwt": { +"description": "The compact encoding of a JWS, which is always three base64 encoded strings joined by periods. For details, see: https://tools.ietf.org/html/rfc7515.html#section-3.1", +"type": "string" +} +}, +"type": "object" +}, +"KnowledgeBase": { +"id": "KnowledgeBase", +"properties": { +"name": { +"description": "The KB name (generally of the form KB[0-9]+ (e.g., KB123456)).", +"type": "string" +}, +"url": { +"description": "A link to the KB in the [Windows update catalog] (https://www.catalog.update.microsoft.com/).", +"type": "string" +} +}, +"type": "object" +}, +"Layer": { +"description": "Layer holds metadata specific to a layer of a Docker image.", +"id": "Layer", +"properties": { +"arguments": { +"description": "The recovered arguments to the Dockerfile directive.", +"type": "string" +}, +"directive": { +"description": "Required. The recovered Dockerfile directive used to construct this layer. See https://docs.docker.com/engine/reference/builder/ for more information.", +"type": "string" +} +}, +"type": "object" +}, +"License": { +"description": "License information.", +"id": "License", +"properties": { +"comments": { +"description": "Comments", +"type": "string" +}, +"expression": { +"description": "Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\", \"GPL-2.0-or-later WITH Bison-exception-2.2\".", +"type": "string" +} +}, +"type": "object" +}, +"ListNoteOccurrencesResponse": { +"description": "Response for listing occurrences for a note.", +"id": "ListNoteOccurrencesResponse", +"properties": { +"nextPageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"type": "string" +}, +"occurrences": { +"description": "The occurrences attached to the specified note.", +"items": { +"$ref": "Occurrence" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListNotesResponse": { +"description": "Response for listing notes.", +"id": "ListNotesResponse", +"properties": { +"nextPageToken": { +"description": "The next pagination token in the list response. It should be used as `page_token` for the following request. An empty value means no more results.", +"type": "string" +}, +"notes": { +"description": "The notes requested.", +"items": { +"$ref": "Note" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOccurrencesResponse": { +"description": "Response for listing occurrences.", +"id": "ListOccurrencesResponse", +"properties": { +"nextPageToken": { +"description": "The next pagination token in the list response. It should be used as `page_token` for the following request. An empty value means no more results.", +"type": "string" +}, +"occurrences": { +"description": "The occurrences requested.", +"items": { +"$ref": "Occurrence" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "An occurrence of a particular package installation found within a system's filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.", +"id": "Location", +"properties": { +"cpeUri": { +"description": "Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/)", +"type": "string" +}, +"path": { +"description": "The path from which we gathered that this package/version is installed.", +"type": "string" +}, +"version": { +"$ref": "Version", +"description": "Deprecated. The version installed at this location." +} +}, +"type": "object" +}, +"Material": { +"id": "Material", +"properties": { +"digest": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +}, +"uri": { +"type": "string" +} +}, +"type": "object" +}, +"Metadata": { +"description": "Other properties of the build.", +"id": "Metadata", +"properties": { +"buildFinishedOn": { +"description": "The timestamp of when the build completed.", +"format": "google-datetime", +"type": "string" +}, +"buildInvocationId": { +"description": "Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. The value SHOULD be globally unique, per in-toto Provenance spec.", +"type": "string" +}, +"buildStartedOn": { +"description": "The timestamp of when the build started.", +"format": "google-datetime", +"type": "string" +}, +"completeness": { +"$ref": "Completeness", +"description": "Indicates that the builder claims certain fields in this message to be complete." +}, +"reproducible": { +"description": "If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output.", +"type": "boolean" +} +}, +"type": "object" +}, +"NonCompliantFile": { +"description": "Details about files that caused a compliance check to fail. display_command is a single command that can be used to display a list of non compliant files. When there is no such command, we can also iterate a list of non compliant file using 'path'.", +"id": "NonCompliantFile", +"properties": { +"displayCommand": { +"description": "Command to display the non-compliant files.", +"type": "string" +}, +"path": { +"description": "Empty if `display_command` is set.", +"type": "string" +}, +"reason": { +"description": "Explains why a file is non compliant for a CIS check.", +"type": "string" +} +}, +"type": "object" +}, +"Note": { +"description": "A type of analysis that can be done for a resource.", +"id": "Note", +"properties": { +"attestation": { +"$ref": "AttestationNote", +"description": "A note describing an attestation role." +}, +"build": { +"$ref": "BuildNote", +"description": "A note describing build provenance for a verifiable build." +}, +"compliance": { +"$ref": "ComplianceNote", +"description": "A note describing a compliance check." +}, +"createTime": { +"description": "Output only. The time this note was created. This field can be used as a filter in list requests.", +"format": "google-datetime", +"type": "string" +}, +"deployment": { +"$ref": "DeploymentNote", +"description": "A note describing something that can be deployed." +}, +"discovery": { +"$ref": "DiscoveryNote", +"description": "A note describing the initial analysis of a resource." +}, +"dsseAttestation": { +"$ref": "DSSEAttestationNote", +"description": "A note describing a dsse attestation note." +}, +"expirationTime": { +"description": "Time of expiration for this note. Empty if note does not expire.", +"format": "google-datetime", +"type": "string" +}, +"image": { +"$ref": "ImageNote", +"description": "A note describing a base image." +}, +"kind": { +"description": "Output only. The type of analysis. This field can be used as a filter in list requests.", +"enum": [ +"NOTE_KIND_UNSPECIFIED", +"VULNERABILITY", +"BUILD", +"IMAGE", +"PACKAGE", +"DEPLOYMENT", +"DISCOVERY", +"ATTESTATION", +"UPGRADE", +"COMPLIANCE", +"DSSE_ATTESTATION", +"VULNERABILITY_ASSESSMENT", +"SBOM_REFERENCE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The note and occurrence represent a package vulnerability.", +"The note and occurrence assert build provenance.", +"This represents an image basis relationship.", +"This represents a package installed via a package manager.", +"The note and occurrence track deployment events.", +"The note and occurrence track the initial discovery status of a resource.", +"This represents a logical \"role\" that can attest to artifacts.", +"This represents an available package upgrade.", +"This represents a Compliance Note", +"This represents a DSSE attestation Note", +"This represents a Vulnerability Assessment.", +"This represents an SBOM Reference." +], +"type": "string" +}, +"longDescription": { +"description": "A detailed description of this note.", +"type": "string" +}, +"name": { +"description": "Output only. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", +"type": "string" +}, +"package": { +"$ref": "PackageNote", +"description": "A note describing a package hosted by various package managers." +}, +"relatedNoteNames": { +"description": "Other notes related to this note.", +"items": { +"type": "string" +}, +"type": "array" +}, +"relatedUrl": { +"description": "URLs associated with this note.", +"items": { +"$ref": "RelatedUrl" +}, +"type": "array" +}, +"sbomReference": { +"$ref": "SBOMReferenceNote", +"description": "A note describing an SBOM reference." +}, +"shortDescription": { +"description": "A one sentence description of this note.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time this note was last updated. This field can be used as a filter in list requests.", +"format": "google-datetime", +"type": "string" +}, +"upgrade": { +"$ref": "UpgradeNote", +"description": "A note describing available package upgrades." +}, +"vulnerability": { +"$ref": "VulnerabilityNote", +"description": "A note describing a package vulnerability." +}, +"vulnerabilityAssessment": { +"$ref": "VulnerabilityAssessmentNote", +"description": "A note describing a vulnerability assessment." +} +}, +"type": "object" +}, +"Occurrence": { +"description": "An instance of an analysis type that has been found on a resource.", +"id": "Occurrence", +"properties": { +"attestation": { +"$ref": "AttestationOccurrence", +"description": "Describes an attestation of an artifact." +}, +"build": { +"$ref": "BuildOccurrence", +"description": "Describes a verifiable build." +}, +"compliance": { +"$ref": "ComplianceOccurrence", +"description": "Describes a compliance violation on a linked resource." +}, +"createTime": { +"description": "Output only. The time this occurrence was created.", +"format": "google-datetime", +"type": "string" +}, +"deployment": { +"$ref": "DeploymentOccurrence", +"description": "Describes the deployment of an artifact on a runtime." +}, +"discovery": { +"$ref": "DiscoveryOccurrence", +"description": "Describes when a resource was discovered." +}, +"dsseAttestation": { +"$ref": "DSSEAttestationOccurrence", +"description": "Describes an attestation of an artifact using dsse." +}, +"envelope": { +"$ref": "Envelope", +"description": "https://github.com/secure-systems-lab/dsse" +}, +"image": { +"$ref": "ImageOccurrence", +"description": "Describes how this resource derives from the basis in the associated note." +}, +"kind": { +"description": "Output only. This explicitly denotes which of the occurrence details are specified. This field can be used as a filter in list requests.", +"enum": [ +"NOTE_KIND_UNSPECIFIED", +"VULNERABILITY", +"BUILD", +"IMAGE", +"PACKAGE", +"DEPLOYMENT", +"DISCOVERY", +"ATTESTATION", +"UPGRADE", +"COMPLIANCE", +"DSSE_ATTESTATION", +"VULNERABILITY_ASSESSMENT", +"SBOM_REFERENCE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The note and occurrence represent a package vulnerability.", +"The note and occurrence assert build provenance.", +"This represents an image basis relationship.", +"This represents a package installed via a package manager.", +"The note and occurrence track deployment events.", +"The note and occurrence track the initial discovery status of a resource.", +"This represents a logical \"role\" that can attest to artifacts.", +"This represents an available package upgrade.", +"This represents a Compliance Note", +"This represents a DSSE attestation Note", +"This represents a Vulnerability Assessment.", +"This represents an SBOM Reference." +], +"type": "string" +}, +"name": { +"description": "Output only. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", +"type": "string" +}, +"noteName": { +"description": "Required. Immutable. The analysis note associated with this occurrence, in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be used as a filter in list requests.", +"type": "string" +}, +"package": { +"$ref": "PackageOccurrence", +"description": "Describes the installation of a package on the linked resource." +}, +"remediation": { +"description": "A description of actions that can be taken to remedy the note.", +"type": "string" +}, +"resourceUri": { +"description": "Required. Immutable. A URI that represents the resource for which the occurrence applies. For example, `https://gcr.io/project/image@sha256:123abc` for a Docker image.", +"type": "string" +}, +"sbomReference": { +"$ref": "SBOMReferenceOccurrence", +"description": "Describes a specific SBOM reference occurrences." +}, +"updateTime": { +"description": "Output only. The time this occurrence was last updated.", +"format": "google-datetime", +"type": "string" +}, +"upgrade": { +"$ref": "UpgradeOccurrence", +"description": "Describes an available package upgrade on the linked resource." +}, +"vulnerability": { +"$ref": "VulnerabilityOccurrence", +"description": "Describes a security vulnerability." +} +}, +"type": "object" +}, +"PackageIssue": { +"description": "A detail for a distro and package this vulnerability occurrence was found in and its associated fix (if one is available).", +"id": "PackageIssue", +"properties": { +"affectedCpeUri": { +"description": "Required. The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was found in.", +"type": "string" +}, +"affectedPackage": { +"description": "Required. The package this vulnerability was found in.", +"type": "string" +}, +"affectedVersion": { +"$ref": "Version", +"description": "Required. The version of the package that is installed on the resource affected by this vulnerability." +}, +"effectiveSeverity": { +"description": "Output only. The distro or language system assigned severity for this vulnerability when that is available and note provider assigned severity when it is not available.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"MINIMAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Unknown.", +"Minimal severity.", +"Low severity.", +"Medium severity.", +"High severity.", +"Critical severity." +], +"readOnly": true, +"type": "string" +}, +"fileLocation": { +"description": "The location at which this package was found.", +"items": { +"$ref": "GrafeasV1FileLocation" +}, +"type": "array" +}, +"fixAvailable": { +"description": "Output only. Whether a fix is available for this package.", +"type": "boolean" +}, +"fixedCpeUri": { +"description": "The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was fixed in. It is possible for this to be different from the affected_cpe_uri.", +"type": "string" +}, +"fixedPackage": { +"description": "The package this vulnerability was fixed in. It is possible for this to be different from the affected_package.", +"type": "string" +}, +"fixedVersion": { +"$ref": "Version", +"description": "Required. The version of the package this vulnerability was fixed in. Setting this to VersionKind.MAXIMUM means no fix is yet available." +}, +"packageType": { +"description": "The type of package (e.g. OS, MAVEN, GO).", +"type": "string" +} +}, +"type": "object" +}, +"PackageNote": { +"description": "PackageNote represents a particular package version.", +"id": "PackageNote", +"properties": { +"architecture": { +"description": "The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", +"enum": [ +"ARCHITECTURE_UNSPECIFIED", +"X86", +"X64" +], +"enumDescriptions": [ +"Unknown architecture.", +"X86 architecture.", +"X64 architecture." +], +"type": "string" +}, +"cpeUri": { +"description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", +"type": "string" +}, +"description": { +"description": "The description of this package.", +"type": "string" +}, +"digest": { +"description": "Hash value, typically a file digest, that allows unique identification a specific package.", +"items": { +"$ref": "Digest" +}, +"type": "array" +}, +"distribution": { +"description": "Deprecated. The various channels by which a package is distributed.", +"items": { +"$ref": "Distribution" +}, +"type": "array" +}, +"license": { +"$ref": "License", +"description": "Licenses that have been declared by the authors of the package." +}, +"maintainer": { +"description": "A freeform text denoting the maintainer of this package.", +"type": "string" +}, +"name": { +"description": "Required. Immutable. The name of the package.", +"type": "string" +}, +"packageType": { +"description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", +"type": "string" +}, +"url": { +"description": "The homepage for this package.", +"type": "string" +}, +"version": { +"$ref": "Version", +"description": "The version of the package." +} +}, +"type": "object" +}, +"PackageOccurrence": { +"description": "Details on how a particular software package was installed on a system.", +"id": "PackageOccurrence", +"properties": { +"architecture": { +"description": "Output only. The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", +"enum": [ +"ARCHITECTURE_UNSPECIFIED", +"X86", +"X64" +], +"enumDescriptions": [ +"Unknown architecture.", +"X86 architecture.", +"X64 architecture." +], +"readOnly": true, +"type": "string" +}, +"cpeUri": { +"description": "Output only. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", +"readOnly": true, +"type": "string" +}, +"license": { +"$ref": "License", +"description": "Licenses that have been declared by the authors of the package." +}, +"location": { +"description": "All of the places within the filesystem versions of this package have been found.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"name": { +"description": "Required. Output only. The name of the installed package.", +"readOnly": true, +"type": "string" +}, +"packageType": { +"description": "Output only. The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", +"readOnly": true, +"type": "string" +}, +"version": { +"$ref": "Version", +"description": "Output only. The version of the package.", +"readOnly": true +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Product": { +"description": "Product contains information about a product and how to uniquely identify it.", +"id": "Product", +"properties": { +"genericUri": { +"description": "Contains a URI which is vendor-specific. Example: The artifact repository URL of an image.", +"type": "string" +}, +"id": { +"description": "Token that identifies a product so that it can be referred to from other parts in the document. There is no predefined format as long as it uniquely identifies a group in the context of the current document.", +"type": "string" +}, +"name": { +"description": "Name of the product.", +"type": "string" +} +}, +"type": "object" +}, +"ProjectRepoId": { +"description": "Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project.", +"id": "ProjectRepoId", +"properties": { +"projectId": { +"description": "The ID of the project.", +"type": "string" +}, +"repoName": { +"description": "The name of the repo. Leave empty for the default repo.", +"type": "string" +} +}, +"type": "object" +}, +"ProvenanceBuilder": { +"id": "ProvenanceBuilder", +"properties": { +"builderDependencies": { +"items": { +"$ref": "ResourceDescriptor" +}, +"type": "array" +}, +"id": { +"type": "string" +}, +"version": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +} +}, +"type": "object" +}, +"Publisher": { +"description": "Publisher contains information about the publisher of this Note.", +"id": "Publisher", +"properties": { +"issuingAuthority": { +"description": "Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations.", +"type": "string" +}, +"name": { +"description": "Name of the publisher. Examples: 'Google', 'Google Cloud Platform'.", +"type": "string" +}, +"publisherNamespace": { +"description": "The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io", +"type": "string" +} +}, +"type": "object" +}, +"Recipe": { +"description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", +"id": "Recipe", +"properties": { +"arguments": { +"description": "Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were \"make\", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Since the arguments field can greatly vary in structure, depending on the builder and recipe type, this is of form \"Any\".", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"definedInMaterial": { +"description": "Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were \"make\", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64.", +"format": "int64", +"type": "string" +}, +"entryPoint": { +"description": "String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were \"make\", then this would reference the directory in which to run make as well as which target to use.", +"type": "string" +}, +"environment": { +"description": "Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Since the environment field can greatly vary in structure, depending on the builder and recipe type, this is of form \"Any\".", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"type": { +"description": "URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials.", +"type": "string" +} +}, +"type": "object" +}, +"RelatedUrl": { +"description": "Metadata for any related URL information.", +"id": "RelatedUrl", +"properties": { +"label": { +"description": "Label to describe usage of the URL.", +"type": "string" +}, +"url": { +"description": "Specific URL associated with the resource.", +"type": "string" +} +}, +"type": "object" +}, +"Remediation": { +"description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", +"id": "Remediation", +"properties": { +"details": { +"description": "Contains a comprehensive human-readable discussion of the remediation.", +"type": "string" +}, +"remediationType": { +"description": "The type of remediation that can be applied.", +"enum": [ +"REMEDIATION_TYPE_UNSPECIFIED", +"MITIGATION", +"NO_FIX_PLANNED", +"NONE_AVAILABLE", +"VENDOR_FIX", +"WORKAROUND" +], +"enumDescriptions": [ +"No remediation type specified.", +"A MITIGATION is available.", +"No fix is planned.", +"Not available.", +"A vendor fix is available.", +"A workaround is available." +], +"type": "string" +}, +"remediationUri": { +"$ref": "RelatedUrl", +"description": "Contains the URL where to obtain the remediation." +} +}, +"type": "object" +}, +"RepoId": { +"description": "A unique identifier for a Cloud Repo.", +"id": "RepoId", +"properties": { +"projectRepoId": { +"$ref": "ProjectRepoId", +"description": "A combination of a project ID and a repo name." +}, +"uid": { +"description": "A server-assigned, globally unique identifier.", +"type": "string" +} +}, +"type": "object" +}, +"ResourceDescriptor": { +"id": "ResourceDescriptor", +"properties": { +"annotations": { +"additionalProperties": { +"type": "any" +}, +"type": "object" +}, +"content": { +"format": "byte", +"type": "string" +}, +"digest": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +}, +"downloadLocation": { +"type": "string" +}, +"mediaType": { +"type": "string" +}, +"name": { +"type": "string" +}, +"uri": { +"type": "string" +} +}, +"type": "object" +}, +"RunDetails": { +"id": "RunDetails", +"properties": { +"builder": { +"$ref": "ProvenanceBuilder" +}, +"byproducts": { +"items": { +"$ref": "ResourceDescriptor" +}, +"type": "array" +}, +"metadata": { +"$ref": "BuildMetadata" +} +}, +"type": "object" +}, +"SBOMReferenceNote": { +"description": "The note representing an SBOM reference.", +"id": "SBOMReferenceNote", +"properties": { +"format": { +"description": "The format that SBOM takes. E.g. may be spdx, cyclonedx, etc...", +"type": "string" +}, +"version": { +"description": "The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3.", +"type": "string" +} +}, +"type": "object" +}, +"SBOMReferenceOccurrence": { +"description": "The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details.", +"id": "SBOMReferenceOccurrence", +"properties": { +"payload": { +"$ref": "SbomReferenceIntotoPayload", +"description": "The actual payload that contains the SBOM reference data." +}, +"payloadType": { +"description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'.", +"type": "string" +}, +"signatures": { +"description": "The signatures over the payload.", +"items": { +"$ref": "EnvelopeSignature" +}, +"type": "array" +} +}, +"type": "object" +}, +"SBOMStatus": { +"description": "The status of an SBOM generation.", +"id": "SBOMStatus", +"properties": { +"error": { +"description": "If there was an error generating an SBOM, this will indicate what that error was.", +"type": "string" +}, +"sbomState": { +"description": "The progress of the SBOM generation.", +"enum": [ +"SBOM_STATE_UNSPECIFIED", +"PENDING", +"COMPLETE" +], +"enumDescriptions": [ +"Default unknown state.", +"SBOM scanning is pending.", +"SBOM scanning has completed." +], +"type": "string" +} +}, +"type": "object" +}, +"SbomReferenceIntotoPayload": { +"description": "The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details.", +"id": "SbomReferenceIntotoPayload", +"properties": { +"_type": { +"description": "Identifier for the schema of the Statement.", +"type": "string" +}, +"predicate": { +"$ref": "SbomReferenceIntotoPredicate", +"description": "Additional parameters of the Predicate. Includes the actual data about the SBOM." +}, +"predicateType": { +"description": "URI identifying the type of the Predicate.", +"type": "string" +}, +"subject": { +"description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", +"items": { +"$ref": "Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"SbomReferenceIntotoPredicate": { +"description": "A predicate which describes the SBOM being referenced.", +"id": "SbomReferenceIntotoPredicate", +"properties": { +"digest": { +"additionalProperties": { +"type": "string" +}, +"description": "A map of algorithm to digest of the contents of the SBOM.", +"type": "object" +}, +"location": { +"description": "The location of the SBOM.", +"type": "string" +}, +"mimeType": { +"description": "The mime type of the SBOM.", +"type": "string" +}, +"referrerId": { +"description": "The person or system referring this predicate to the consumer.", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"Signature": { +"description": "Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be \"attached\" (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any \"attached\" payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).", +"id": "Signature", +"properties": { +"publicKeyId": { +"description": "The identifier for the public key that verifies this signature. * The `public_key_id` is required. * The `public_key_id` SHOULD be an RFC3986 conformant URI. * When possible, the `public_key_id` SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4 public key fingerprint: * \"openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA\" See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * \"ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU\" * \"nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5\"", +"type": "string" +}, +"signature": { +"description": "The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SlsaBuilder": { +"id": "SlsaBuilder", +"properties": { +"id": { +"type": "string" +} +}, +"type": "object" +}, +"SlsaCompleteness": { +"description": "Indicates that the builder claims certain fields in this message to be complete.", +"id": "SlsaCompleteness", +"properties": { +"arguments": { +"description": "If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe.", +"type": "boolean" +}, +"environment": { +"description": "If true, the builder claims that recipe.environment is claimed to be complete.", +"type": "boolean" +}, +"materials": { +"description": "If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called \"hermetic\".", +"type": "boolean" +} +}, +"type": "object" +}, +"SlsaMetadata": { +"description": "Other properties of the build.", +"id": "SlsaMetadata", +"properties": { +"buildFinishedOn": { +"description": "The timestamp of when the build completed.", +"format": "google-datetime", +"type": "string" +}, +"buildInvocationId": { +"description": "Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. The value SHOULD be globally unique, per in-toto Provenance spec.", +"type": "string" +}, +"buildStartedOn": { +"description": "The timestamp of when the build started.", +"format": "google-datetime", +"type": "string" +}, +"completeness": { +"$ref": "SlsaCompleteness", +"description": "Indicates that the builder claims certain fields in this message to be complete." +}, +"reproducible": { +"description": "If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output.", +"type": "boolean" +} +}, +"type": "object" +}, +"SlsaProvenance": { +"id": "SlsaProvenance", +"properties": { +"builder": { +"$ref": "SlsaBuilder", +"description": "required" +}, +"materials": { +"description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. This is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty.", +"items": { +"$ref": "Material" +}, +"type": "array" +}, +"metadata": { +"$ref": "SlsaMetadata" +}, +"recipe": { +"$ref": "SlsaRecipe", +"description": "Identifies the configuration used for the build. When combined with materials, this SHOULD fully describe the build, such that re-running this recipe results in bit-for-bit identical output (if the build is reproducible). required" +} +}, +"type": "object" +}, +"SlsaProvenanceV1": { +"description": "Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts.", +"id": "SlsaProvenanceV1", +"properties": { +"buildDefinition": { +"$ref": "BuildDefinition" +}, +"runDetails": { +"$ref": "RunDetails" +} +}, +"type": "object" +}, +"SlsaProvenanceZeroTwo": { +"description": "See full explanation of fields at slsa.dev/provenance/v0.2.", +"id": "SlsaProvenanceZeroTwo", +"properties": { +"buildConfig": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"buildType": { +"type": "string" +}, +"builder": { +"$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder" +}, +"invocation": { +"$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation" +}, +"materials": { +"items": { +"$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial" +}, +"type": "array" +}, +"metadata": { +"$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata" +} +}, +"type": "object" +}, +"SlsaRecipe": { +"description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", +"id": "SlsaRecipe", +"properties": { +"arguments": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were \"make\", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different.", +"type": "object" +}, +"definedInMaterial": { +"description": "Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were \"make\", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64.", +"format": "int64", +"type": "string" +}, +"entryPoint": { +"description": "String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were \"make\", then this would reference the directory in which to run make as well as which target to use.", +"type": "string" +}, +"environment": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different.", +"type": "object" +}, +"type": { +"description": "URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials.", +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "Source describes the location of the source used for the build.", +"id": "Source", +"properties": { +"additionalContexts": { +"description": "If provided, some of the source code used for the build may be found in these locations, in the case where the source repository had multiple remotes or submodules. This list will not include the context specified in the context field.", +"items": { +"$ref": "SourceContext" +}, +"type": "array" +}, +"artifactStorageSourceUri": { +"description": "If provided, the input binary artifacts for the build came from this location.", +"type": "string" +}, +"context": { +"$ref": "SourceContext", +"description": "If provided, the source code used for the build came from this location." +}, +"fileHashes": { +"additionalProperties": { +"$ref": "FileHashes" +}, +"description": "Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (.tar.gz), the FileHash will be for the single path to that file.", +"type": "object" +} +}, +"type": "object" +}, +"SourceContext": { +"description": "A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.", +"id": "SourceContext", +"properties": { +"cloudRepo": { +"$ref": "CloudRepoSourceContext", +"description": "A SourceContext referring to a revision in a Google Cloud Source Repo." +}, +"gerrit": { +"$ref": "GerritSourceContext", +"description": "A SourceContext referring to a Gerrit project." +}, +"git": { +"$ref": "GitSourceContext", +"description": "A SourceContext referring to any third party Git repo (e.g., GitHub)." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels with user defined metadata.", +"type": "object" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Subject": { +"id": "Subject", +"properties": { +"digest": { +"additionalProperties": { +"type": "string" +}, +"description": "`\"\": \"\"` Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet", +"type": "object" +}, +"name": { +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeSpan": { +"description": "Start and end times for a build execution phase. Next ID: 3", +"id": "TimeSpan", +"properties": { +"endTime": { +"description": "End of time span.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start of time span.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeDistribution": { +"description": "The Upgrade Distribution represents metadata about the Upgrade for each operating system (CPE). Some distributions have additional metadata around updates, classifying them into various categories and severities.", +"id": "UpgradeDistribution", +"properties": { +"classification": { +"description": "The operating system classification of this Upgrade, as specified by the upstream operating system upgrade feed. For Windows the classification is one of the category_ids listed at https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85)", +"type": "string" +}, +"cpeUri": { +"description": "Required - The specific operating system this metadata applies to. See https://cpe.mitre.org/specification/.", +"type": "string" +}, +"cve": { +"description": "The cve tied to this Upgrade.", +"items": { +"type": "string" +}, +"type": "array" +}, +"severity": { +"description": "The severity as specified by the upstream operating system.", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeNote": { +"description": "An Upgrade Note represents a potential upgrade of a package to a given version. For each package version combination (i.e. bash 4.0, bash 4.1, bash 4.1.2), there will be an Upgrade Note. For Windows, windows_update field represents the information related to the update.", +"id": "UpgradeNote", +"properties": { +"distributions": { +"description": "Metadata about the upgrade for each specific operating system.", +"items": { +"$ref": "UpgradeDistribution" +}, +"type": "array" +}, +"package": { +"description": "Required for non-Windows OS. The package this Upgrade is for.", +"type": "string" +}, +"version": { +"$ref": "Version", +"description": "Required for non-Windows OS. The version of the package in machine + human readable form." +}, +"windowsUpdate": { +"$ref": "WindowsUpdate", +"description": "Required for Windows OS. Represents the metadata about the Windows update." +} +}, +"type": "object" +}, +"UpgradeOccurrence": { +"description": "An Upgrade Occurrence represents that a specific resource_url could install a specific upgrade. This presence is supplied via local sources (i.e. it is present in the mirror and the running system has noticed its availability). For Windows, both distribution and windows_update contain information for the Windows update.", +"id": "UpgradeOccurrence", +"properties": { +"distribution": { +"$ref": "UpgradeDistribution", +"description": "Metadata about the upgrade for available for the specific operating system for the resource_url. This allows efficient filtering, as well as making it easier to use the occurrence." +}, +"package": { +"description": "Required for non-Windows OS. The package this Upgrade is for.", +"type": "string" +}, +"parsedVersion": { +"$ref": "Version", +"description": "Required for non-Windows OS. The version of the package in a machine + human readable form." +}, +"windowsUpdate": { +"$ref": "WindowsUpdate", +"description": "Required for Windows OS. Represents the metadata about the Windows update." +} +}, +"type": "object" +}, +"Version": { +"description": "Version contains structured information about the version of a package.", +"id": "Version", +"properties": { +"epoch": { +"description": "Used to correct mistakes in the version numbering scheme.", +"format": "int32", +"type": "integer" +}, +"fullName": { +"description": "Human readable version string. This string is of the form :- and is only set when kind is NORMAL.", +"type": "string" +}, +"inclusive": { +"description": "Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.", +"type": "boolean" +}, +"kind": { +"description": "Required. Distinguishes between sentinel MIN/MAX versions and normal versions.", +"enum": [ +"VERSION_KIND_UNSPECIFIED", +"NORMAL", +"MINIMUM", +"MAXIMUM" +], +"enumDescriptions": [ +"Unknown.", +"A standard package version.", +"A special version representing negative infinity.", +"A special version representing positive infinity." +], +"type": "string" +}, +"name": { +"description": "Required only when version kind is NORMAL. The main part of the version name.", +"type": "string" +}, +"revision": { +"description": "The iteration of the package build from the above version.", +"type": "string" +} +}, +"type": "object" +}, +"VexAssessment": { +"description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability.", +"id": "VexAssessment", +"properties": { +"cve": { +"deprecated": true, +"description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", +"type": "string" +}, +"impacts": { +"description": "Contains information about the impact of this vulnerability, this will change with time.", +"items": { +"type": "string" +}, +"type": "array" +}, +"justification": { +"$ref": "Justification", +"description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." +}, +"noteName": { +"description": "The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`.", +"type": "string" +}, +"relatedUris": { +"description": "Holds a list of references associated with this vulnerability item and assessment.", +"items": { +"$ref": "RelatedUrl" +}, +"type": "array" +}, +"remediations": { +"description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", +"items": { +"$ref": "Remediation" +}, +"type": "array" +}, +"state": { +"description": "Provides the state of this Vulnerability assessment.", +"enum": [ +"STATE_UNSPECIFIED", +"AFFECTED", +"NOT_AFFECTED", +"FIXED", +"UNDER_INVESTIGATION" +], +"enumDescriptions": [ +"No state is specified.", +"This product is known to be affected by this vulnerability.", +"This product is known to be not affected by this vulnerability.", +"This product contains a fix for this vulnerability.", +"It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." +], +"type": "string" +}, +"vulnerabilityId": { +"description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", +"type": "string" +} +}, +"type": "object" +}, +"Volume": { +"description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution. Next ID: 3", +"id": "Volume", +"properties": { +"name": { +"description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", +"type": "string" +}, +"path": { +"description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityAssessmentNote": { +"description": "A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE.", +"id": "VulnerabilityAssessmentNote", +"properties": { +"assessment": { +"$ref": "Assessment", +"description": "Represents a vulnerability assessment for the product." +}, +"languageCode": { +"description": "Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646.", +"type": "string" +}, +"longDescription": { +"description": "A detailed description of this Vex.", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The product affected by this vex." +}, +"publisher": { +"$ref": "Publisher", +"description": "Publisher details of this Note." +}, +"shortDescription": { +"description": "A one sentence description of this Vex.", +"type": "string" +}, +"title": { +"description": "The title of the note. E.g. `Vex-Debian-11.4`", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityNote": { +"description": "A security vulnerability that can be found in resources.", +"id": "VulnerabilityNote", +"properties": { +"cvssScore": { +"description": "The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.", +"format": "float", +"type": "number" +}, +"cvssV2": { +"$ref": "CVSS", +"description": "The full description of the v2 CVSS for this vulnerability." +}, +"cvssV3": { +"$ref": "CVSSv3", +"description": "The full description of the CVSSv3 for this vulnerability." +}, +"cvssVersion": { +"description": "CVSS version used to populate cvss_score and severity.", +"enum": [ +"CVSS_VERSION_UNSPECIFIED", +"CVSS_VERSION_2", +"CVSS_VERSION_3" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"details": { +"description": "Details of all known distros and packages affected by this vulnerability.", +"items": { +"$ref": "Detail" +}, +"type": "array" +}, +"severity": { +"description": "The note provider assigned severity of this vulnerability.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"MINIMAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Unknown.", +"Minimal severity.", +"Low severity.", +"Medium severity.", +"High severity.", +"Critical severity." +], +"type": "string" +}, +"sourceUpdateTime": { +"description": "The time this information was last changed at the source. This is an upstream timestamp from the underlying information source - e.g. Ubuntu security tracker.", +"format": "google-datetime", +"type": "string" +}, +"windowsDetails": { +"description": "Windows details get their own format because the information format and model don't match a normal detail. Specifically Windows updates are done as patches, thus Windows vulnerabilities really are a missing package, rather than a package being at an incorrect version.", +"items": { +"$ref": "WindowsDetail" +}, +"type": "array" +} +}, +"type": "object" +}, +"VulnerabilityOccurrence": { +"description": "An occurrence of a severity vulnerability on a resource.", +"id": "VulnerabilityOccurrence", +"properties": { +"cvssScore": { +"description": "Output only. The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.", +"format": "float", +"type": "number" +}, +"cvssV2": { +"$ref": "CVSS", +"description": "The cvss v2 score for the vulnerability." +}, +"cvssVersion": { +"description": "Output only. CVSS version used to populate cvss_score and severity.", +"enum": [ +"CVSS_VERSION_UNSPECIFIED", +"CVSS_VERSION_2", +"CVSS_VERSION_3" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"cvssv3": { +"$ref": "CVSS", +"description": "The cvss v3 score for the vulnerability." +}, +"effectiveSeverity": { +"description": "The distro assigned severity for this vulnerability when it is available, otherwise this is the note provider assigned severity. When there are multiple PackageIssues for this vulnerability, they can have different effective severities because some might be provided by the distro while others are provided by the language ecosystem for a language pack. For this reason, it is advised to use the effective severity on the PackageIssue level. In the case where multiple PackageIssues have differing effective severities, this field should be the highest severity for any of the PackageIssues.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"MINIMAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Unknown.", +"Minimal severity.", +"Low severity.", +"Medium severity.", +"High severity.", +"Critical severity." +], +"type": "string" +}, +"extraDetails": { +"description": "Occurrence-specific extra details about the vulnerability.", +"type": "string" +}, +"fixAvailable": { +"description": "Output only. Whether at least one of the affected packages has a fix available.", +"type": "boolean" +}, +"longDescription": { +"description": "Output only. A detailed description of this vulnerability.", +"type": "string" +}, +"packageIssue": { +"description": "Required. The set of affected locations and their fixes (if available) within the associated resource.", +"items": { +"$ref": "PackageIssue" +}, +"type": "array" +}, +"relatedUrls": { +"description": "Output only. URLs related to this vulnerability.", +"items": { +"$ref": "RelatedUrl" +}, +"type": "array" +}, +"severity": { +"description": "Output only. The note provider assigned severity of this vulnerability.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"MINIMAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Unknown.", +"Minimal severity.", +"Low severity.", +"Medium severity.", +"High severity.", +"Critical severity." +], +"type": "string" +}, +"shortDescription": { +"description": "Output only. A one sentence description of this vulnerability.", +"type": "string" +}, +"type": { +"description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", +"type": "string" +}, +"vexAssessment": { +"$ref": "VexAssessment" +} +}, +"type": "object" +}, +"VulnerabilityOccurrencesSummary": { +"description": "A summary of how many vulnerability occurrences there are per resource and severity type.", +"id": "VulnerabilityOccurrencesSummary", +"properties": { +"counts": { +"description": "A listing by resource of the number of fixable and total vulnerabilities.", +"items": { +"$ref": "FixableTotalByDigest" +}, +"type": "array" +} +}, +"type": "object" +}, +"WindowsDetail": { +"id": "WindowsDetail", +"properties": { +"cpeUri": { +"description": "Required. The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability affects.", +"type": "string" +}, +"description": { +"description": "The description of this vulnerability.", +"type": "string" +}, +"fixingKbs": { +"description": "Required. The names of the KBs which have hotfixes to mitigate this vulnerability. Note that there may be multiple hotfixes (and thus multiple KBs) that mitigate a given vulnerability. Currently any listed KBs presence is considered a fix.", +"items": { +"$ref": "KnowledgeBase" +}, +"type": "array" +}, +"name": { +"description": "Required. The name of this vulnerability.", +"type": "string" +} +}, +"type": "object" +}, +"WindowsUpdate": { +"description": "Windows Update represents the metadata about the update for the Windows operating system. The fields in this message come from the Windows Update API documented at https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate.", +"id": "WindowsUpdate", +"properties": { +"categories": { +"description": "The list of categories to which the update belongs.", +"items": { +"$ref": "Category" +}, +"type": "array" +}, +"description": { +"description": "The localized description of the update.", +"type": "string" +}, +"identity": { +"$ref": "Identity", +"description": "Required - The unique identifier for the update." +}, +"kbArticleIds": { +"description": "The Microsoft Knowledge Base article IDs that are associated with the update.", +"items": { +"type": "string" +}, +"type": "array" +}, +"lastPublishedTimestamp": { +"description": "The last published timestamp of the update.", +"format": "google-datetime", +"type": "string" +}, +"supportUrl": { +"description": "The hyperlink to the support information for the update.", +"type": "string" +}, +"title": { +"description": "The localized title of the update.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Container Analysis API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datafusion.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datafusion.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..c13e257d5aef420a652a8bff17fb2d98d0a22740 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datafusion.v1.json @@ -0,0 +1,1646 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://datafusion.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Data Fusion", +"description": "Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/data-fusion/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datafusion:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datafusion.mtls.googleapis.com/", +"name": "datafusion", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "datafusion.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "datafusion.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"create": { +"description": "Creates a new Data Fusion instance in the specified project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The name of the instance to create. Instance name can only contain lowercase alphanumeric characters and hyphens. It must start with a letter and must not end with a hyphen. It can have a maximum of 30 characters.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The instance's project and location in the format projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Date Fusion instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "datafusion.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The instance resource name in the format projects/{project}/locations/{location}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Data Fusion instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The instance resource name in the format projects/{project}/locations/{location}/instances/{instance}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:getIamPolicy", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Data Fusion instances in the specified project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\", or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location for which to retrieve instance information in the format projects/{project}/locations/{location}. If the location is specified as '-' (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single Data Fusion instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "datafusion.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The name of this instance is in the form of projects/{project}/locations/{location}/instances/{instance}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Field mask is used to specify the fields that the update will overwrite in an instance resource. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask, the label field will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restart": { +"description": "Restart a single Data Fusion instance. At the end of an operation instance is fully restarted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:restart", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Data Fusion instance which need to be restarted in the form of projects/{project}/locations/{location}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:restart", +"request": { +"$ref": "RestartInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:setIamPolicy", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:testIamPermissions", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dnsPeerings": { +"methods": { +"create": { +"description": "Creates DNS peering on the given resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.dnsPeerings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dnsPeeringId": { +"description": "Required. The name of the peering to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource on which DNS peering will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsPeerings", +"request": { +"$ref": "DnsPeering" +}, +"response": { +"$ref": "DnsPeering" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes DNS peering on the given resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings/{dnsPeeringsId}", +"httpMethod": "DELETE", +"id": "datafusion.projects.locations.instances.dnsPeerings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DNS peering zone to delete. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/dnsPeerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DNS peerings for a given resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.dnsPeerings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of dns peerings to return. The service may return fewer than this value. If unspecified, at most 50 dns peerings will be returned. The maximum value is 200; values above 200 will be coerced to 200.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDnsPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDnsPeerings` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of dns peerings. Format: projects/{project}/locations/{location}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsPeerings", +"response": { +"$ref": "ListDnsPeeringsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "datafusion.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "datafusion.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "datafusion.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "datafusion.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"versions": { +"methods": { +"list": { +"description": "Lists possible versions for Data Fusion instances in the specified project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/versions", +"httpMethod": "GET", +"id": "datafusion.projects.locations.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"latestPatchOnly": { +"description": "Whether or not to return the latest patch of every available minor version. If true, only the latest patch will be returned. Ex. if allowed versions is [6.1.1, 6.1.2, 6.2.0] then response will be [6.1.2, 6.2.0]", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location for which to retrieve instance information in the format projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/versions", +"response": { +"$ref": "ListAvailableVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://datafusion.googleapis.com/", +"schemas": { +"Accelerator": { +"description": "Identifies Data Fusion accelerators for an instance.", +"id": "Accelerator", +"properties": { +"acceleratorType": { +"description": "Optional. The type of an accelator for a Cloud Data Fusion instance.", +"enum": [ +"ACCELERATOR_TYPE_UNSPECIFIED", +"CDC", +"HEALTHCARE", +"CCAI_INSIGHTS", +"CLOUDSEARCH" +], +"enumDescriptions": [ +"Default value, if unspecified.", +"Change Data Capture accelerator for Cloud Data Fusion.", +"Reserved for internal use.", +"Contact Center AI Insights This accelerator is used to enable import and export pipelines custom built to streamline CCAI Insights processing.", +"Reserved for internal use." +], +"type": "string" +}, +"state": { +"description": "Output only. The state of the accelerator.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"UNKNOWN" +], +"enumDescriptions": [ +"Default value, do not use.", +"Indicates that the accelerator is enabled and available to use.", +"Indicates that the accelerator is disabled and not available to use.", +"Indicates that accelerator state is currently unknown. Requests for enable, disable could be retried while in this state." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CryptoKeyConfig": { +"description": "The crypto key configuration. This field is used by the Customer-managed encryption keys (CMEK) feature.", +"id": "CryptoKeyConfig", +"properties": { +"keyReference": { +"description": "Optional. The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", +"type": "string" +} +}, +"type": "object" +}, +"DnsPeering": { +"description": "DNS peering configuration. These configurations are used to create DNS peering with the customer Cloud DNS.", +"id": "DnsPeering", +"properties": { +"description": { +"description": "Optional. Optional description of the dns zone.", +"type": "string" +}, +"domain": { +"description": "Required. The dns name suffix of the zone.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the dns peering zone. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", +"type": "string" +}, +"targetNetwork": { +"description": "Optional. Optional target network to which dns peering should happen.", +"type": "string" +}, +"targetProject": { +"description": "Optional. Optional target project to which dns peering should happen.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EventPublishConfig": { +"description": "Confirguration of PubSubEventWriter.", +"id": "EventPublishConfig", +"properties": { +"enabled": { +"description": "Required. Option to enable Event Publishing.", +"type": "boolean" +}, +"topic": { +"description": "Required. The resource name of the Pub/Sub topic. Format: projects/{project_id}/topics/{topic_id}", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"Instance": { +"description": "Represents a Data Fusion instance.", +"id": "Instance", +"properties": { +"accelerators": { +"description": "Output only. List of accelerators enabled for this CDF instance.", +"items": { +"$ref": "Accelerator" +}, +"readOnly": true, +"type": "array" +}, +"apiEndpoint": { +"description": "Output only. Endpoint on which the REST APIs is accessible.", +"readOnly": true, +"type": "string" +}, +"availableVersion": { +"description": "Output only. Available versions that the instance can be upgraded to using UpdateInstanceRequest.", +"items": { +"$ref": "Version" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cryptoKeyConfig": { +"$ref": "CryptoKeyConfig", +"description": "Optional. The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature." +}, +"dataplexDataLineageIntegrationEnabled": { +"description": "Optional. Option to enable the Dataplex Lineage Integration feature.", +"type": "boolean" +}, +"dataprocServiceAccount": { +"description": "Optional. User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.", +"type": "string" +}, +"description": { +"description": "Optional. A description of this instance.", +"type": "string" +}, +"disabledReason": { +"description": "Output only. If the instance state is DISABLED, the reason for disabling the instance.", +"items": { +"enum": [ +"DISABLED_REASON_UNSPECIFIED", +"KMS_KEY_ISSUE" +], +"enumDescriptions": [ +"This is an unknown reason for disabling.", +"The KMS key used by the instance is either revoked or denied access to" +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "Optional. Display name for an instance.", +"type": "string" +}, +"enableRbac": { +"description": "Optional. Option to enable granular role-based access control.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"description": "Optional. Option to enable Stackdriver Logging.", +"type": "boolean" +}, +"enableStackdriverMonitoring": { +"description": "Optional. Option to enable Stackdriver Monitoring.", +"type": "boolean" +}, +"enableZoneSeparation": { +"description": "Output only. Option to enable granular zone separation.", +"readOnly": true, +"type": "boolean" +}, +"eventPublishConfig": { +"$ref": "EventPublishConfig", +"description": "Optional. Option to enable and pass metadata for event publishing." +}, +"gcsBucket": { +"description": "Output only. Cloud Storage bucket generated by Data Fusion in the customer project.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for instance to use to annotate any related underlying resources such as Compute Engine VMs. The character '=' is not allowed to be used within the labels.", +"type": "object" +}, +"maintenancePolicy": { +"$ref": "MaintenancePolicy", +"description": "Optional. Configure the maintenance policy for this instance." +}, +"name": { +"description": "Output only. The name of this instance is in the form of projects/{project}/locations/{location}/instances/{instance}.", +"readOnly": true, +"type": "string" +}, +"networkConfig": { +"$ref": "NetworkConfig", +"description": "Optional. Network configuration options. These are required when a private Data Fusion instance is to be created." +}, +"options": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of additional options used to configure the behavior of Data Fusion instance.", +"type": "object" +}, +"p4ServiceAccount": { +"description": "Output only. Service agent for the customer project.", +"readOnly": true, +"type": "string" +}, +"patchRevision": { +"description": "Optional. Current patch revision of the Data Fusion.", +"type": "string" +}, +"privateInstance": { +"description": "Optional. Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.", +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"serviceAccount": { +"deprecated": true, +"description": "Output only. Deprecated. Use tenant_project_id instead to extract the tenant project ID.", +"readOnly": true, +"type": "string" +}, +"serviceEndpoint": { +"description": "Output only. Endpoint on which the Data Fusion UI is accessible.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of this Data Fusion instance.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"FAILED", +"DELETING", +"UPGRADING", +"RESTARTING", +"UPDATING", +"AUTO_UPDATING", +"AUTO_UPGRADING", +"DISABLED" +], +"enumDescriptions": [ +"Instance does not have a state yet", +"Instance is being created", +"Instance is active and ready for requests. This corresponds to 'RUNNING' in datafusion.v1beta1.", +"Instance creation failed", +"Instance is being deleted", +"Instance is being upgraded", +"Instance is being restarted", +"Instance is being updated on customer request", +"Instance is being auto-updated", +"Instance is being auto-upgraded", +"Instance is disabled" +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. Additional information about the current state of this Data Fusion instance if available.", +"readOnly": true, +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. The name of the tenant project.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. Instance type.", +"enum": [ +"TYPE_UNSPECIFIED", +"BASIC", +"ENTERPRISE", +"DEVELOPER" +], +"enumDescriptions": [ +"No type specified. The instance creation will fail.", +"Basic Data Fusion instance. In Basic type, the user will be able to create data pipelines using point and click UI. However, there are certain limitations, such as fewer number of concurrent pipelines, no support for streaming pipelines, etc.", +"Enterprise Data Fusion instance. In Enterprise type, the user will have all features available, such as support for streaming pipelines, higher number of concurrent pipelines, etc.", +"Developer Data Fusion instance. In Developer type, the user will have all features available but with restrictive capabilities. This is to help enterprises design and develop their data ingestion and integration pipelines at low cost." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the instance was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Optional. Current version of the Data Fusion. Only specifiable in Update.", +"type": "string" +}, +"workforceIdentityServiceEndpoint": { +"description": "Output only. Endpoint on which the Data Fusion UI is accessible to third-party users", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Optional. Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.", +"type": "string" +} +}, +"type": "object" +}, +"ListAvailableVersionsResponse": { +"description": "Response message for the list available versions request.", +"id": "ListAvailableVersionsResponse", +"properties": { +"availableVersions": { +"deprecated": true, +"description": "Represents a list of versions that are supported. Deprecated: Use versions field instead.", +"items": { +"$ref": "Version" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results or empty if there are no more results in the list.", +"type": "string" +}, +"versions": { +"description": "Represents a list of all versions.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDnsPeeringsResponse": { +"description": "Response message for list DNS peerings.", +"id": "ListDnsPeeringsResponse", +"properties": { +"dnsPeerings": { +"description": "List of dns peering.", +"items": { +"$ref": "DnsPeering" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Response message for the list instance request.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "Represents a list of Data Fusion instances.", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "Maintenance policy of the instance.", +"id": "MaintenancePolicy", +"properties": { +"maintenanceExclusionWindow": { +"$ref": "TimeWindow", +"description": "Optional. The maintenance exclusion window of the instance." +}, +"maintenanceWindow": { +"$ref": "MaintenanceWindow", +"description": "Optional. The maintenance window of the instance." +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "Maintenance window of the instance.", +"id": "MaintenanceWindow", +"properties": { +"recurringTimeWindow": { +"$ref": "RecurringTimeWindow", +"description": "Required. The recurring time window of the maintenance window." +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Network configuration for a Data Fusion instance. These configurations are used for peering with the customer network. Configurations are optional when a public Data Fusion instance is to be created. However, providing these configurations allows several benefits, such as reduced network latency while accessing the customer resources from managed Data Fusion instance nodes, as well as access to the customer on-prem resources.", +"id": "NetworkConfig", +"properties": { +"connectionType": { +"description": "Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and the corresponding tenant project from a predefined list of available connection modes. If this field is unspecified for a private instance, VPC peering is used.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"VPC_PEERING", +"PRIVATE_SERVICE_CONNECT_INTERFACES" +], +"enumDescriptions": [ +"No specific connection type was requested, the default value of VPC_PEERING is chosen.", +"Requests the use of VPC peerings for connecting the consumer and tenant projects.", +"Requests the use of Private Service Connect Interfaces for connecting the consumer and tenant projects." +], +"type": "string" +}, +"ipAllocation": { +"description": "Optional. The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the Data Fusion instance network. This is required only when using connection type VPC_PEERING. Format: a.b.c.d/22 Example: 192.168.0.0/22", +"type": "string" +}, +"network": { +"description": "Optional. Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{host-project-id}/global/networks/{network}. This is only required for connectivity type VPC_PEERING.", +"type": "string" +}, +"privateServiceConnectConfig": { +"$ref": "PrivateServiceConnectConfig", +"description": "Optional. Configuration for Private Service Connect. This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES." +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "OperationMetadata", +"properties": { +"additionalStatus": { +"additionalProperties": { +"type": "string" +}, +"description": "Map to hold any additional status info for the operation If there is an accelerator being enabled/disabled/deleted, this will be populated with accelerator name as key and status as ENABLING, DISABLING or DELETING", +"type": "object" +}, +"apiVersion": { +"description": "API version used to start the operation.", +"type": "string" +}, +"createTime": { +"description": "The time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time the operation finished running.", +"format": "google-datetime", +"type": "string" +}, +"requestedCancellation": { +"description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"type": "boolean" +}, +"statusDetail": { +"description": "Human-readable status of the operation if any.", +"type": "string" +}, +"target": { +"description": "Server-defined resource path for the target of the operation.", +"type": "string" +}, +"verb": { +"description": "Name of the verb executed by the operation.", +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PrivateServiceConnectConfig": { +"description": "Configuration for using Private Service Connect to establish connectivity between the Data Fusion consumer project and the corresponding tenant project.", +"id": "PrivateServiceConnectConfig", +"properties": { +"effectiveUnreachableCidrBlock": { +"description": "Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block is /25. The format of this field is governed by RFC 4632. Example: 240.0.0.0/25", +"readOnly": true, +"type": "string" +}, +"networkAttachment": { +"description": "Required. The reference to the network attachment used to establish private connectivity. It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.", +"type": "string" +}, +"unreachableCidrBlock": { +"description": "Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment. This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses. If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632. Example: 192.168.0.0/25", +"type": "string" +} +}, +"type": "object" +}, +"RecurringTimeWindow": { +"description": "Represents an arbitrary window of time that recurs.", +"id": "RecurringTimeWindow", +"properties": { +"recurrence": { +"description": "Required. An RRULE with format [RFC-5545](https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. The only supported FREQ value is \"WEEKLY\". To have something repeat every weekday, use: \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR\". This specifies how frequently the window starts. To have a 9 am - 5 pm UTC-4 window every weekday, use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ```", +"type": "string" +}, +"window": { +"$ref": "TimeWindow", +"description": "Required. The window representing the start and end time of recurrences. This field ignores the date components of the provided timestamps. Only the time of day and duration between start and end time are relevant." +} +}, +"type": "object" +}, +"RestartInstanceRequest": { +"description": "Request message for restarting a Data Fusion instance.", +"id": "RestartInstanceRequest", +"properties": {}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeWindow": { +"description": "Represents an arbitrary window of time.", +"id": "TimeWindow", +"properties": { +"endTime": { +"description": "Required. The end time of the time window provided in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. The end time should take place after the start time. Example: \"2024-01-02T12:04:06-06:00\"", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Required. The start time of the time window provided in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. Example: \"2024-01-01T12:04:06-04:00\"", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Version": { +"description": "The Data Fusion version. This proto message stores information about certain Data Fusion version, which is used for Data Fusion version upgrade.", +"id": "Version", +"properties": { +"availableFeatures": { +"description": "Represents a list of available feature names for a given version.", +"items": { +"type": "string" +}, +"type": "array" +}, +"defaultVersion": { +"description": "Whether this is currently the default version for Cloud Data Fusion", +"type": "boolean" +}, +"type": { +"description": "Type represents the release availability of the version", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_PREVIEW", +"TYPE_GENERAL_AVAILABILITY", +"TYPE_DEPRECATED" +], +"enumDescriptions": [ +"Version does not have availability yet", +"Version is under development and not considered stable", +"Version is available for public use", +"Version is no longer supported." +], +"type": "string" +}, +"versionNumber": { +"description": "The version number of the Data Fusion instance, such as '6.0.1.0'.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Data Fusion API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datamigration.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datamigration.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e8e7a2bcc73c2bd5865a5ae884bd11cca2f1f798 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datamigration.v1.json @@ -0,0 +1,6949 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://datamigration.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Database Migration Service", +"description": "Manage Cloud Database Migration Service resources on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/database-migration/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datamigration:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datamigration.mtls.googleapis.com/", +"name": "datamigration", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"fetchStaticIps": { +"description": "Fetches a set of static IP addresses that need to be allowlisted by the customer when using the static-IP connectivity method.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:fetchStaticIps", +"httpMethod": "GET", +"id": "datamigration.projects.locations.fetchStaticIps", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name for the location for which static IPs should be returned. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum number of IPs to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `FetchStaticIps` call.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:fetchStaticIps", +"response": { +"$ref": "FetchStaticIpsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "datamigration.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"connectionProfiles": { +"methods": { +"create": { +"description": "Creates a new connection profile in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", +"httpMethod": "POST", +"id": "datamigration.projects.locations.connectionProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectionProfileId": { +"description": "Required. The connection profile identifier.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of connection profiles.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"skipValidation": { +"description": "Optional. Create the connection profile without validating it. The default is false. Only supported for Oracle connection profiles.", +"location": "query", +"type": "boolean" +}, +"validateOnly": { +"description": "Optional. Only validate the connection profile, but don't create any resources. The default is false. Only supported for Oracle connection profiles.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/connectionProfiles", +"request": { +"$ref": "ConnectionProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Database Migration Service connection profile. A connection profile can only be deleted if it is not in use by any active migration jobs.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.connectionProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "In case of force delete, the CloudSQL replica database is also deleted (only for CloudSQL connection profile).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the connection profile resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single connection profile.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.connectionProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the connection profile resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ConnectionProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.connectionProfiles.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Retrieves a list of all connection profiles in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", +"httpMethod": "GET", +"id": "datamigration.projects.locations.connectionProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters connection profiles listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list connection profiles created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z**. You can also filter nested fields. For example, you could specify **mySql.username = %lt;my_username%gt;** to list all connection profiles configured to connect with a specific username.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "A comma-separated list of fields to order results according to.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of connection profiles to return. The service may return fewer than this value. If unspecified, at most 50 connection profiles will be returned. The maximum value is 1000; values above 1000 are coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListConnectionProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConnectionProfiles` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of connection profiles.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/connectionProfiles", +"response": { +"$ref": "ListConnectionProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update the configuration of a single connection profile.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "PATCH", +"id": "datamigration.projects.locations.connectionProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of this connection profile resource in the form of projects/{project}/locations/{location}/connectionProfiles/{connectionProfile}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"skipValidation": { +"description": "Optional. Update the connection profile without validating it. The default is false. Only supported for Oracle connection profiles.", +"location": "query", +"type": "boolean" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten by the update in the conversion workspace resource.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the connection profile, but don't update any resources. The default is false. Only supported for Oracle connection profiles.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ConnectionProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.connectionProfiles.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.connectionProfiles.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"conversionWorkspaces": { +"methods": { +"apply": { +"description": "Applies draft tree onto a specific destination database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:apply", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.apply", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversion workspace resource for which to apply the draft tree. Must be in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:apply", +"request": { +"$ref": "ApplyConversionWorkspaceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"commit": { +"description": "Marks all the data in the conversion workspace as committed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:commit", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.commit", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the conversion workspace resource to commit.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:commit", +"request": { +"$ref": "CommitConversionWorkspaceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"convert": { +"description": "Creates a draft tree schema for the destination database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:convert", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.convert", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the conversion workspace resource to convert in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:convert", +"request": { +"$ref": "ConvertConversionWorkspaceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new conversion workspace in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"conversionWorkspaceId": { +"description": "Required. The ID of the conversion workspace to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of conversion workspaces.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/conversionWorkspaces", +"request": { +"$ref": "ConversionWorkspace" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.conversionWorkspaces.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Force delete the conversion workspace, even if there's a running migration that is using the workspace.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the conversion workspace resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"describeConversionWorkspaceRevisions": { +"description": "Retrieves a list of committed revisions of a specific conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:describeConversionWorkspaceRevisions", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.describeConversionWorkspaceRevisions", +"parameterOrder": [ +"conversionWorkspace" +], +"parameters": { +"commitId": { +"description": "Optional. Optional filter to request a specific commit ID.", +"location": "query", +"type": "string" +}, +"conversionWorkspace": { +"description": "Required. Name of the conversion workspace resource whose revisions are listed. Must be in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+conversionWorkspace}:describeConversionWorkspaceRevisions", +"response": { +"$ref": "DescribeConversionWorkspaceRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"describeDatabaseEntities": { +"description": "Describes the database entities tree for a specific conversion workspace and a specific tree type. Database entities are not resources like conversion workspaces or mapping rules, and they can't be created, updated or deleted. Instead, they are simple data objects describing the structure of the client database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:describeDatabaseEntities", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.describeDatabaseEntities", +"parameterOrder": [ +"conversionWorkspace" +], +"parameters": { +"commitId": { +"description": "Optional. Request a specific commit ID. If not specified, the entities from the latest commit are returned.", +"location": "query", +"type": "string" +}, +"conversionWorkspace": { +"description": "Required. Name of the conversion workspace resource whose database entities are described. Must be in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Optional. Filter the returned entities based on AIP-160 standard.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of entities to return. The service may return fewer entities than the value specifies.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The nextPageToken value received in the previous call to conversionWorkspace.describeDatabaseEntities, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to conversionWorkspace.describeDatabaseEntities must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"tree": { +"description": "Required. The tree to fetch.", +"enum": [ +"DB_TREE_TYPE_UNSPECIFIED", +"SOURCE_TREE", +"DRAFT_TREE", +"DESTINATION_TREE" +], +"enumDescriptions": [ +"Unspecified tree type.", +"The source database tree.", +"The draft database tree.", +"The destination database tree." +], +"location": "query", +"type": "string" +}, +"uncommitted": { +"description": "Optional. Whether to retrieve the latest committed version of the entities or the latest version. This field is ignored if a specific commit_id is specified.", +"location": "query", +"type": "boolean" +}, +"view": { +"description": "Optional. Results view based on AIP-157", +"enum": [ +"DATABASE_ENTITY_VIEW_UNSPECIFIED", +"DATABASE_ENTITY_VIEW_BASIC", +"DATABASE_ENTITY_VIEW_FULL", +"DATABASE_ENTITY_VIEW_ROOT_SUMMARY" +], +"enumDescriptions": [ +"Unspecified view. Defaults to basic view.", +"Default view. Does not return DDLs or Issues.", +"Return full entity details including mappings, ddl and issues.", +"Top-most (Database, Schema) nodes which are returned contains summary details for their decendents such as the number of entities per type and issues rollups. When this view is used, only a single page of result is returned and the page_size property of the request is ignored. The returned page will only include the top-most node types." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+conversionWorkspace}:describeDatabaseEntities", +"response": { +"$ref": "DescribeDatabaseEntitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the conversion workspace resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ConversionWorkspace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists conversion workspaces in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters conversion workspaces listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list conversion workspaces created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z.** You can also filter nested fields. For example, you could specify **source.version = \"12.c.1\"** to select all conversion workspaces with source database version equal to 12.c.1.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of conversion workspaces to return. The service may return fewer than this value. If unspecified, at most 50 sets are returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The nextPageToken value received in the previous call to conversionWorkspaces.list, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to conversionWorkspaces.list must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of conversion workspaces.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/conversionWorkspaces", +"response": { +"$ref": "ListConversionWorkspacesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}", +"httpMethod": "PATCH", +"id": "datamigration.projects.locations.conversionWorkspaces.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Full name of the workspace resource, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten by the update in the conversion workspace resource.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ConversionWorkspace" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rollback": { +"description": "Rolls back a conversion workspace to the last committed snapshot.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:rollback", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.rollback", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the conversion workspace resource to roll back to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:rollback", +"request": { +"$ref": "RollbackConversionWorkspaceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchBackgroundJobs": { +"description": "Searches/lists the background jobs for a specific conversion workspace. The background jobs are not resources like conversion workspaces or mapping rules, and they can't be created, updated or deleted. Instead, they are a way to expose the data plane jobs log.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:searchBackgroundJobs", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.searchBackgroundJobs", +"parameterOrder": [ +"conversionWorkspace" +], +"parameters": { +"completedUntilTime": { +"description": "Optional. If provided, only returns jobs that completed until (not including) the given timestamp.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"conversionWorkspace": { +"description": "Required. Name of the conversion workspace resource whose jobs are listed, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +}, +"maxSize": { +"description": "Optional. The maximum number of jobs to return. The service may return fewer than this value. If unspecified, at most 100 jobs are returned. The maximum value is 100; values above 100 are coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"returnMostRecentPerJobType": { +"description": "Optional. Whether or not to return just the most recent job per job type,", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+conversionWorkspace}:searchBackgroundJobs", +"response": { +"$ref": "SearchBackgroundJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"seed": { +"description": "Imports a snapshot of the source database into the conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:seed", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.seed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the conversion workspace resource to seed with new database structure, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:seed", +"request": { +"$ref": "SeedConversionWorkspaceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"mappingRules": { +"methods": { +"create": { +"description": "Creates a new mapping rule for a given conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"mappingRuleId": { +"description": "Required. The ID of the rule to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of mapping rules.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/mappingRules", +"request": { +"$ref": "MappingRule" +}, +"response": { +"$ref": "MappingRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single mapping rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules/{mappingRulesId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mapping rule resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+/mappingRules/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a mapping rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules/{mappingRulesId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mapping rule resource to get. Example: conversionWorkspaces/123/mappingRules/rule123 In order to retrieve a previous revision of the mapping rule, also provide the revision ID. Example: conversionWorkspace/123/mappingRules/rule123@c7cfa2a8c7cfa2a8c7cfa2a8c7cfa2a8", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+/mappingRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "MappingRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Imports the mapping rules for a given conversion workspace. Supports various formats of external rules files.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules:import", +"httpMethod": "POST", +"id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the conversion workspace resource to import the rules to in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/mappingRules:import", +"request": { +"$ref": "ImportMappingRulesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the mapping rules for a specific conversion workspace.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules", +"httpMethod": "GET", +"id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of rules to return. The service may return fewer than this value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The nextPageToken value received in the previous call to mappingRules.list, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to mappingRules.list must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the conversion workspace resource whose mapping rules are listed in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/mappingRules", +"response": { +"$ref": "ListMappingRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"migrationJobs": { +"methods": { +"create": { +"description": "Creates a new migration job in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"migrationJobId": { +"description": "Required. The ID of the instance to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of migration jobs.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/migrationJobs", +"request": { +"$ref": "MigrationJob" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single migration job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.migrationJobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "The destination CloudSQL connection profile is always deleted with the migration job. In case of force delete, the destination CloudSQL replica database is also deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the migration job resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"demoteDestination": { +"description": "Demotes the destination database to become a read replica of the source. This is applicable for the following migrations: 1. MySQL to Cloud SQL for MySQL 2. PostgreSQL to Cloud SQL for PostgreSQL 3. PostgreSQL to AlloyDB for PostgreSQL.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:demoteDestination", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.demoteDestination", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to demote its destination.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:demoteDestination", +"request": { +"$ref": "DemoteDestinationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchSourceObjects": { +"description": "Retrieves objects from the source database that can be selected for data migration. This is applicable for the following migrations: 1. PostgreSQL to Cloud SQL for PostgreSQL 2. PostgreSQL to AlloyDB for PostgreSQL.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:fetchSourceObjects", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.fetchSourceObjects", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name for the migration job for which source objects should be returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:fetchSourceObjects", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateSshScript": { +"description": "Generate a SSH configuration script to configure the reverse SSH connectivity.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:generateSshScript", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.generateSshScript", +"parameterOrder": [ +"migrationJob" +], +"parameters": { +"migrationJob": { +"description": "Name of the migration job resource to generate the SSH script.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+migrationJob}:generateSshScript", +"request": { +"$ref": "GenerateSshScriptRequest" +}, +"response": { +"$ref": "SshScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateTcpProxyScript": { +"description": "Generate a TCP Proxy configuration script to configure a cloud-hosted VM running a TCP Proxy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:generateTcpProxyScript", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.generateTcpProxyScript", +"parameterOrder": [ +"migrationJob" +], +"parameters": { +"migrationJob": { +"description": "Name of the migration job resource to generate the TCP Proxy script.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+migrationJob}:generateTcpProxyScript", +"request": { +"$ref": "GenerateTcpProxyScriptRequest" +}, +"response": { +"$ref": "TcpProxyScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single migration job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the migration job resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "MigrationJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists migration jobs in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters migration jobs listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list migration jobs created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z.** You can also filter nested fields. For example, you could specify **reverseSshConnectivity.vmIp = \"1.2.3.4\"** to select all migration jobs connecting through the specific SSH tunnel bastion.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort the results based on the migration job name. Valid values are: \"name\", \"name asc\", and \"name desc\".", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of migration jobs to return. The service may return fewer than this value. If unspecified, at most 50 migration jobs will be returned. The maximum value is 1000; values above 1000 are coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The nextPageToken value received in the previous call to migrationJobs.list, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to migrationJobs.list must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent which owns this collection of migrationJobs.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/migrationJobs", +"response": { +"$ref": "ListMigrationJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single migration job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", +"httpMethod": "PATCH", +"id": "datamigration.projects.locations.migrationJobs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (URI) of this migration job resource, in the form of: projects/{project}/locations/{location}/migrationJobs/{migrationJob}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten by the update in the conversion workspace resource.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "MigrationJob" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"promote": { +"description": "Promote a migration job, stopping replication to the destination and promoting the destination to be a standalone database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:promote", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.promote", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to promote.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:promote", +"request": { +"$ref": "PromoteMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restart": { +"description": "Restart a stopped or failed migration job, resetting the destination instance to its original state and starting the migration process from scratch.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:restart", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to restart.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:restart", +"request": { +"$ref": "RestartMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resume a migration job that is currently stopped and is resumable (was stopped during CDC phase).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:resume", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to resume.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:resume", +"request": { +"$ref": "ResumeMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"start": { +"description": "Start an already created migration job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:start", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to start.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:start", +"request": { +"$ref": "StartMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stop": { +"description": "Stops a running migration job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:stop", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to stop.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:stop", +"request": { +"$ref": "StopMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verify": { +"description": "Verify a migration job, making sure the destination can reach the source and that all configuration and prerequisites are met.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:verify", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.verify", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to verify.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:verify", +"request": { +"$ref": "VerifyMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"objects": { +"methods": { +"get": { +"description": "Use this method to get details about a migration job object.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}/objects/{objectsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.objects.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the migration job object resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "MigrationJobObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}/objects/{objectsId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.objects.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Use this method to list the objects of a specific migration job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}/objects", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.objects.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of objects to return. Default is 50. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListMigrationJObObjectsRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMigrationJobObjectsRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent migration job that owns the collection of objects.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/objects", +"response": { +"$ref": "ListMigrationJobObjectsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookup": { +"description": "Use this method to look up a migration job object by its source object identifier.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}/objects:lookup", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.objects.lookup", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent migration job that owns the collection of objects.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/objects:lookup", +"request": { +"$ref": "LookupMigrationJobObjectRequest" +}, +"response": { +"$ref": "MigrationJobObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}/objects/{objectsId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.objects.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}/objects/{objectsId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.objects.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "datamigration.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "datamigration.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"privateConnections": { +"methods": { +"create": { +"description": "Creates a new private connection in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections", +"httpMethod": "POST", +"id": "datamigration.projects.locations.privateConnections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent that owns the collection of PrivateConnections.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"privateConnectionId": { +"description": "Required. The private connection identifier.", +"location": "query", +"type": "string" +}, +"requestId": { +"description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"skipValidation": { +"description": "Optional. If set to true, will skip validations.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/privateConnections", +"request": { +"$ref": "PrivateConnection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Database Migration Service private connection.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.privateConnections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the private connection to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single private connection.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.privateConnections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the private connection to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PrivateConnection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.privateConnections.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Retrieves a list of private connections in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections", +"httpMethod": "GET", +"id": "datamigration.projects.locations.privateConnections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters private connections listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list private connections created this year by specifying **createTime %gt; 2021-01-01T00:00:00.000000000Z**.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of private connections to return. If unspecified, at most 50 private connections that are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListPrivateConnections` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateConnections` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent that owns the collection of private connections.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/privateConnections", +"response": { +"$ref": "ListPrivateConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.privateConnections.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.privateConnections.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241231", +"rootUrl": "https://datamigration.googleapis.com/", +"schemas": { +"AlloyDbConnectionProfile": { +"description": "Specifies required connection parameters, and the parameters required to create an AlloyDB destination cluster.", +"id": "AlloyDbConnectionProfile", +"properties": { +"clusterId": { +"description": "Required. The AlloyDB cluster ID that this connection profile is associated with.", +"type": "string" +}, +"settings": { +"$ref": "AlloyDbSettings", +"description": "Immutable. Metadata used to create the destination AlloyDB cluster." +} +}, +"type": "object" +}, +"AlloyDbSettings": { +"description": "Settings for creating an AlloyDB cluster.", +"id": "AlloyDbSettings", +"properties": { +"databaseVersion": { +"description": "Optional. The database engine major version. This is an optional field. If a database version is not supplied at cluster creation time, then a default database version will be used.", +"enum": [ +"DATABASE_VERSION_UNSPECIFIED", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDescriptions": [ +"This is an unknown database version.", +"The database version is Postgres 14.", +"The database version is Postgres 15.", +"The database version is Postgres 16." +], +"type": "string" +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption config can be specified to encrypt the data disks and other persistent data resources of a cluster with a customer-managed encryption key (CMEK). When this field is not specified, the cluster will then use default encryption scheme to protect the user data." +}, +"initialUser": { +"$ref": "UserPassword", +"description": "Required. Input only. Initial user to setup during cluster creation. Required." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels for the AlloyDB cluster created by DMS. An object containing a list of 'key', 'value' pairs.", +"type": "object" +}, +"primaryInstanceSettings": { +"$ref": "PrimaryInstanceSettings" +}, +"vpcNetwork": { +"description": "Required. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: \"projects/{project_number}/global/networks/{network_id}\". This is required to create a cluster.", +"type": "string" +} +}, +"type": "object" +}, +"ApplyConversionWorkspaceRequest": { +"description": "Request message for 'ApplyConversionWorkspace' request.", +"id": "ApplyConversionWorkspaceRequest", +"properties": { +"autoCommit": { +"description": "Optional. Specifies whether the conversion workspace is to be committed automatically after the apply.", +"type": "boolean" +}, +"connectionProfile": { +"description": "Optional. Fully qualified (Uri) name of the destination connection profile.", +"type": "string" +}, +"dryRun": { +"description": "Optional. Only validates the apply process, but doesn't change the destination database. Only works for PostgreSQL destination connection profile.", +"type": "boolean" +}, +"filter": { +"description": "Filter which entities to apply. Leaving this field empty will apply all of the entities. Supports Google AIP 160 based filtering.", +"type": "string" +} +}, +"type": "object" +}, +"ApplyHash": { +"description": "Apply a hash function on the value.", +"id": "ApplyHash", +"properties": { +"uuidFromBytes": { +"$ref": "Empty", +"description": "Optional. Generate UUID from the data's byte array" +} +}, +"type": "object" +}, +"ApplyJobDetails": { +"description": "Details regarding an Apply background job.", +"id": "ApplyJobDetails", +"properties": { +"connectionProfile": { +"description": "Output only. The connection profile which was used for the apply job.", +"readOnly": true, +"type": "string" +}, +"filter": { +"description": "Output only. AIP-160 based filter used to specify the entities to apply", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AssignSpecificValue": { +"description": "Set to a specific value (value is converted to fit the target data type)", +"id": "AssignSpecificValue", +"properties": { +"value": { +"description": "Required. Specific value to be assigned", +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedNetwork": { +"description": "AuthorizedNetwork contains metadata for an authorized network.", +"id": "AuthorizedNetwork", +"properties": { +"cidrRange": { +"description": "Optional. CIDR range for one authorzied network of the instance.", +"type": "string" +} +}, +"type": "object" +}, +"BackgroundJobLogEntry": { +"description": "Execution log of a background job.", +"id": "BackgroundJobLogEntry", +"properties": { +"applyJobDetails": { +"$ref": "ApplyJobDetails", +"description": "Output only. Apply job details.", +"readOnly": true +}, +"completionComment": { +"description": "Output only. Job completion comment, such as how many entities were seeded, how many warnings were found during conversion, and similar information.", +"readOnly": true, +"type": "string" +}, +"completionState": { +"description": "Output only. Job completion state, i.e. the final state after the job completed.", +"enum": [ +"JOB_COMPLETION_STATE_UNSPECIFIED", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"The status is not specified. This state is used when job is not yet finished.", +"Success.", +"Error." +], +"readOnly": true, +"type": "string" +}, +"convertJobDetails": { +"$ref": "ConvertJobDetails", +"description": "Output only. Convert job details.", +"readOnly": true +}, +"finishTime": { +"description": "The timestamp when the background job was finished.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The background job log entry ID.", +"type": "string" +}, +"importRulesJobDetails": { +"$ref": "ImportRulesJobDetails", +"description": "Output only. Import rules job details.", +"readOnly": true +}, +"jobType": { +"description": "The type of job that was executed.", +"enum": [ +"BACKGROUND_JOB_TYPE_UNSPECIFIED", +"BACKGROUND_JOB_TYPE_SOURCE_SEED", +"BACKGROUND_JOB_TYPE_CONVERT", +"BACKGROUND_JOB_TYPE_APPLY_DESTINATION", +"BACKGROUND_JOB_TYPE_IMPORT_RULES_FILE" +], +"enumDescriptions": [ +"Unspecified background job type.", +"Job to seed from the source database.", +"Job to convert the source database into a draft of the destination database.", +"Job to apply the draft tree onto the destination.", +"Job to import and convert mapping rules from an external source such as an ora2pg config file." +], +"type": "string" +}, +"requestAutocommit": { +"description": "Output only. Whether the client requested the conversion workspace to be committed after a successful completion of the job.", +"readOnly": true, +"type": "boolean" +}, +"seedJobDetails": { +"$ref": "SeedJobDetails", +"description": "Output only. Seed job details.", +"readOnly": true +}, +"startTime": { +"description": "The timestamp when the background job was started.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"BinaryLogParser": { +"description": "Configuration to use Binary Log Parser CDC technique.", +"id": "BinaryLogParser", +"properties": { +"logFileDirectories": { +"$ref": "LogFileDirectories", +"description": "Use Oracle directories." +}, +"oracleAsmLogFileAccess": { +"$ref": "OracleAsmLogFileAccess", +"description": "Use Oracle ASM." +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloudSqlConnectionProfile": { +"description": "Specifies required connection parameters, and, optionally, the parameters required to create a Cloud SQL destination database instance.", +"id": "CloudSqlConnectionProfile", +"properties": { +"additionalPublicIp": { +"description": "Output only. The Cloud SQL database instance's additional (outgoing) public IP. Used when the Cloud SQL database availability type is REGIONAL (i.e. multiple zones / highly available).", +"readOnly": true, +"type": "string" +}, +"cloudSqlId": { +"description": "Output only. The Cloud SQL instance ID that this connection profile is associated with.", +"readOnly": true, +"type": "string" +}, +"privateIp": { +"description": "Output only. The Cloud SQL database instance's private IP.", +"readOnly": true, +"type": "string" +}, +"publicIp": { +"description": "Output only. The Cloud SQL database instance's public IP.", +"readOnly": true, +"type": "string" +}, +"settings": { +"$ref": "CloudSqlSettings", +"description": "Immutable. Metadata used to create the destination Cloud SQL database." +} +}, +"type": "object" +}, +"CloudSqlSettings": { +"description": "Settings for creating a Cloud SQL database instance.", +"id": "CloudSqlSettings", +"properties": { +"activationPolicy": { +"description": "The activation policy specifies when the instance is activated; it is applicable only when the instance state is 'RUNNABLE'. Valid values: 'ALWAYS': The instance is on, and remains so even in the absence of connection requests. `NEVER`: The instance is off; it is not activated, even if a connection request arrives.", +"enum": [ +"SQL_ACTIVATION_POLICY_UNSPECIFIED", +"ALWAYS", +"NEVER" +], +"enumDescriptions": [ +"unspecified policy.", +"The instance is always up and running.", +"The instance should never spin up." +], +"type": "string" +}, +"autoStorageIncrease": { +"description": "[default: ON] If you enable this setting, Cloud SQL checks your available storage every 30 seconds. If the available storage falls below a threshold size, Cloud SQL automatically adds additional storage capacity. If the available storage repeatedly falls below the threshold size, Cloud SQL continues to add storage until it reaches the maximum of 30 TB.", +"type": "boolean" +}, +"availabilityType": { +"description": "Optional. Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data availability. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", +"enum": [ +"SQL_AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL" +], +"enumDescriptions": [ +"This is an unknown Availability type.", +"Zonal availablility instance.", +"Regional availability instance." +], +"type": "string" +}, +"cmekKeyName": { +"description": "The KMS key name used for the csql instance.", +"type": "string" +}, +"collation": { +"description": "The Cloud SQL default instance level collation.", +"type": "string" +}, +"dataCacheConfig": { +"$ref": "DataCacheConfig", +"description": "Optional. Data cache is an optional feature available for Cloud SQL for MySQL Enterprise Plus edition only. For more information on data cache, see [Data cache overview](https://cloud.google.com/sql/help/mysql-data-cache) in Cloud SQL documentation." +}, +"dataDiskSizeGb": { +"description": "The storage capacity available to the database, in GB. The minimum (and default) size is 10GB.", +"format": "int64", +"type": "string" +}, +"dataDiskType": { +"description": "The type of storage: `PD_SSD` (default) or `PD_HDD`.", +"enum": [ +"SQL_DATA_DISK_TYPE_UNSPECIFIED", +"PD_SSD", +"PD_HDD" +], +"enumDescriptions": [ +"Unspecified.", +"SSD disk.", +"HDD disk." +], +"type": "string" +}, +"databaseFlags": { +"additionalProperties": { +"type": "string" +}, +"description": "The database flags passed to the Cloud SQL instance at startup. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.", +"type": "object" +}, +"databaseVersion": { +"description": "The database engine type and version. Deprecated. Use database_version_name instead.", +"enum": [ +"SQL_DATABASE_VERSION_UNSPECIFIED", +"MYSQL_5_6", +"MYSQL_5_7", +"MYSQL_8_0", +"MYSQL_8_0_18", +"MYSQL_8_0_26", +"MYSQL_8_0_27", +"MYSQL_8_0_28", +"MYSQL_8_0_30", +"MYSQL_8_0_31", +"MYSQL_8_0_32", +"MYSQL_8_0_33", +"MYSQL_8_0_34", +"MYSQL_8_0_35", +"MYSQL_8_0_36", +"MYSQL_8_0_37", +"MYSQL_8_4", +"POSTGRES_9_6", +"POSTGRES_11", +"POSTGRES_10", +"POSTGRES_12", +"POSTGRES_13", +"POSTGRES_14", +"POSTGRES_15", +"POSTGRES_16" +], +"enumDescriptions": [ +"Unspecified version.", +"MySQL 5.6.", +"MySQL 5.7.", +"MySQL 8.0.", +"The database major version is MySQL 8.0 and the minor version is 18.", +"The database major version is MySQL 8.0 and the minor version is 26.", +"The database major version is MySQL 8.0 and the minor version is 27.", +"The database major version is MySQL 8.0 and the minor version is 28.", +"The database major version is MySQL 8.0 and the minor version is 30.", +"The database major version is MySQL 8.0 and the minor version is 31.", +"The database major version is MySQL 8.0 and the minor version is 32.", +"The database major version is MySQL 8.0 and the minor version is 33.", +"The database major version is MySQL 8.0 and the minor version is 34.", +"The database major version is MySQL 8.0 and the minor version is 35.", +"The database major version is MySQL 8.0 and the minor version is 36.", +"The database major version is MySQL 8.0 and the minor version is 37.", +"MySQL 8.4.", +"PostgreSQL 9.6.", +"PostgreSQL 11.", +"PostgreSQL 10.", +"PostgreSQL 12.", +"PostgreSQL 13.", +"PostgreSQL 14.", +"PostgreSQL 15.", +"PostgreSQL 16." +], +"type": "string" +}, +"databaseVersionName": { +"description": "Optional. The database engine type and version name.", +"type": "string" +}, +"edition": { +"description": "Optional. The edition of the given Cloud SQL instance.", +"enum": [ +"EDITION_UNSPECIFIED", +"ENTERPRISE", +"ENTERPRISE_PLUS" +], +"enumDescriptions": [ +"The instance did not specify the edition.", +"The instance is an enterprise edition.", +"The instance is an enterprise plus edition." +], +"type": "string" +}, +"ipConfig": { +"$ref": "SqlIpConfig", +"description": "The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled." +}, +"rootPassword": { +"description": "Input only. Initial root password.", +"type": "string" +}, +"rootPasswordSet": { +"description": "Output only. Indicates If this connection profile root password is stored.", +"readOnly": true, +"type": "boolean" +}, +"secondaryZone": { +"description": "Optional. The Google Cloud Platform zone where the failover Cloud SQL database instance is located. Used when the Cloud SQL database availability type is REGIONAL (i.e. multiple zones / highly available).", +"type": "string" +}, +"sourceId": { +"description": "The Database Migration Service source connection profile ID, in the format: `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID`", +"type": "string" +}, +"storageAutoResizeLimit": { +"description": "The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.", +"format": "int64", +"type": "string" +}, +"tier": { +"description": "The tier (or machine type) for this instance, for example: `db-n1-standard-1` (MySQL instances) or `db-custom-1-3840` (PostgreSQL instances). For more information, see [Cloud SQL Instance Settings](https://cloud.google.com/sql/docs/mysql/instance-settings).", +"type": "string" +}, +"userLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for a Cloud SQL instance to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"18kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"zone": { +"description": "The Google Cloud Platform zone where your Cloud SQL database instance is located.", +"type": "string" +} +}, +"type": "object" +}, +"ColumnEntity": { +"description": "Column is not used as an independent entity, it is retrieved as part of a Table entity.", +"id": "ColumnEntity", +"properties": { +"array": { +"description": "Is the column of array type.", +"type": "boolean" +}, +"arrayLength": { +"description": "If the column is array, of which length.", +"format": "int32", +"type": "integer" +}, +"autoGenerated": { +"description": "Is the column auto-generated/identity.", +"type": "boolean" +}, +"charset": { +"description": "Charset override - instead of table level charset.", +"type": "string" +}, +"collation": { +"description": "Collation override - instead of table level collation.", +"type": "string" +}, +"comment": { +"description": "Comment associated with the column.", +"type": "string" +}, +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"dataType": { +"description": "Column data type.", +"type": "string" +}, +"defaultValue": { +"description": "Default value of the column.", +"type": "string" +}, +"fractionalSecondsPrecision": { +"description": "Column fractional second precision - used for timestamp based datatypes.", +"format": "int32", +"type": "integer" +}, +"length": { +"description": "Column length - e.g. varchar (50).", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Column name.", +"type": "string" +}, +"nullable": { +"description": "Is the column nullable.", +"type": "boolean" +}, +"ordinalPosition": { +"description": "Column order in the table.", +"format": "int32", +"type": "integer" +}, +"precision": { +"description": "Column precision - when relevant.", +"format": "int32", +"type": "integer" +}, +"scale": { +"description": "Column scale - when relevant.", +"format": "int32", +"type": "integer" +}, +"setValues": { +"description": "Specifies the list of values allowed in the column. Only used for set data type.", +"items": { +"type": "string" +}, +"type": "array" +}, +"udt": { +"description": "Is the column a UDT.", +"type": "boolean" +} +}, +"type": "object" +}, +"CommitConversionWorkspaceRequest": { +"description": "Request message for 'CommitConversionWorkspace' request.", +"id": "CommitConversionWorkspaceRequest", +"properties": { +"commitName": { +"description": "Optional. Optional name of the commit.", +"type": "string" +} +}, +"type": "object" +}, +"ConditionalColumnSetValue": { +"description": "Options to configure rule type ConditionalColumnSetValue. The rule is used to transform the data which is being replicated/migrated. The rule filter field can refer to one or more entities. The rule scope can be one of: Column.", +"id": "ConditionalColumnSetValue", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Custom engine specific features.", +"type": "object" +}, +"sourceNumericFilter": { +"$ref": "SourceNumericFilter", +"description": "Optional. Optional filter on source column precision and scale. Used for fixed point numbers such as NUMERIC/NUMBER data types." +}, +"sourceTextFilter": { +"$ref": "SourceTextFilter", +"description": "Optional. Optional filter on source column length. Used for text based data types like varchar." +}, +"valueTransformation": { +"$ref": "ValueTransformation", +"description": "Required. Description of data transformation during migration." +} +}, +"type": "object" +}, +"ConnectionProfile": { +"description": "A connection profile definition.", +"id": "ConnectionProfile", +"properties": { +"alloydb": { +"$ref": "AlloyDbConnectionProfile", +"description": "An AlloyDB cluster connection profile." +}, +"cloudsql": { +"$ref": "CloudSqlConnectionProfile", +"description": "A CloudSQL database connection profile." +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The connection profile display name.", +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. The error details in case of state FAILED.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for connection profile to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"mysql": { +"$ref": "MySqlConnectionProfile", +"description": "A MySQL database connection profile." +}, +"name": { +"description": "The name of this connection profile resource in the form of projects/{project}/locations/{location}/connectionProfiles/{connectionProfile}.", +"type": "string" +}, +"oracle": { +"$ref": "OracleConnectionProfile", +"description": "An Oracle database connection profile." +}, +"postgresql": { +"$ref": "PostgreSqlConnectionProfile", +"description": "A PostgreSQL database connection profile." +}, +"provider": { +"description": "The database provider.", +"enum": [ +"DATABASE_PROVIDER_UNSPECIFIED", +"CLOUDSQL", +"RDS", +"AURORA", +"ALLOYDB", +"AZURE_DATABASE" +], +"enumDescriptions": [ +"Use this value for on-premise source database instances and ORACLE.", +"Cloud SQL is the source instance provider.", +"Amazon RDS is the source instance provider.", +"Amazon Aurora is the source instance provider.", +"AlloyDB for PostgreSQL is the source instance provider.", +"Microsoft Azure Database for MySQL/PostgreSQL." +], +"type": "string" +}, +"role": { +"description": "Optional. The connection profile role.", +"enum": [ +"ROLE_UNSPECIFIED", +"SOURCE", +"DESTINATION" +], +"enumDescriptions": [ +"The role is unspecified.", +"The role is source.", +"The role is destination." +], +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Zone Isolation compliance state of the resource.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Zone Separation compliance state of the resource.", +"readOnly": true, +"type": "boolean" +}, +"sqlserver": { +"$ref": "SqlServerConnectionProfile", +"description": "Connection profile for a SQL Server data source." +}, +"state": { +"description": "The current connection profile state (e.g. DRAFT, READY, or FAILED).", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"DELETED", +"FAILED" +], +"enumDescriptions": [ +"The state of the connection profile is unknown.", +"The connection profile is in draft mode and fully editable.", +"The connection profile is being created.", +"The connection profile is ready.", +"The connection profile is being updated.", +"The connection profile is being deleted.", +"The connection profile has been deleted.", +"The last action on the connection profile failed." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was last updated. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConstraintEntity": { +"description": "Constraint is not used as an independent entity, it is retrieved as part of another entity such as Table or View.", +"id": "ConstraintEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"name": { +"description": "The name of the table constraint.", +"type": "string" +}, +"referenceColumns": { +"description": "Reference columns which may be associated with the constraint. For example, if the constraint is a FOREIGN_KEY, this represents the list of full names of referenced columns by the foreign key.", +"items": { +"type": "string" +}, +"type": "array" +}, +"referenceTable": { +"description": "Reference table which may be associated with the constraint. For example, if the constraint is a FOREIGN_KEY, this represents the list of full name of the referenced table by the foreign key.", +"type": "string" +}, +"tableColumns": { +"description": "Table columns used as part of the Constraint, for example primary key constraint should list the columns which constitutes the key.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tableName": { +"description": "Table which is associated with the constraint. In case the constraint is defined on a table, this field is left empty as this information is stored in parent_name. However, if constraint is defined on a view, this field stores the table name on which the view is defined.", +"type": "string" +}, +"type": { +"description": "Type of constraint, for example unique, primary key, foreign key (currently only primary key is supported).", +"type": "string" +} +}, +"type": "object" +}, +"ConversionWorkspace": { +"description": "The main conversion workspace resource entity.", +"id": "ConversionWorkspace", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the workspace resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destination": { +"$ref": "DatabaseEngineInfo", +"description": "Required. The destination engine details." +}, +"displayName": { +"description": "Optional. The display name for the workspace.", +"type": "string" +}, +"globalSettings": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A generic list of settings for the workspace. The settings are database pair dependant and can indicate default behavior for the mapping rules engine or turn on or off specific features. Such examples can be: convert_foreign_key_to_interleave=true, skip_triggers=false, ignore_non_table_synonyms=true", +"type": "object" +}, +"hasUncommittedChanges": { +"description": "Output only. Whether the workspace has uncommitted changes (changes which were made after the workspace was committed).", +"readOnly": true, +"type": "boolean" +}, +"latestCommitId": { +"description": "Output only. The latest commit ID.", +"readOnly": true, +"type": "string" +}, +"latestCommitTime": { +"description": "Output only. The timestamp when the workspace was committed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Full name of the workspace resource, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", +"type": "string" +}, +"source": { +"$ref": "DatabaseEngineInfo", +"description": "Required. The source engine details." +}, +"updateTime": { +"description": "Output only. The timestamp when the workspace resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConversionWorkspaceInfo": { +"description": "A conversion workspace's version.", +"id": "ConversionWorkspaceInfo", +"properties": { +"commitId": { +"description": "The commit ID of the conversion workspace.", +"type": "string" +}, +"name": { +"description": "The resource name (URI) of the conversion workspace.", +"type": "string" +} +}, +"type": "object" +}, +"ConvertConversionWorkspaceRequest": { +"description": "Request message for 'ConvertConversionWorkspace' request.", +"id": "ConvertConversionWorkspaceRequest", +"properties": { +"autoCommit": { +"description": "Optional. Specifies whether the conversion workspace is to be committed automatically after the conversion.", +"type": "boolean" +}, +"convertFullPath": { +"description": "Optional. Automatically convert the full entity path for each entity specified by the filter. For example, if the filter specifies a table, that table schema (and database if there is one) will also be converted.", +"type": "boolean" +}, +"filter": { +"description": "Optional. Filter the entities to convert. Leaving this field empty will convert all of the entities. Supports Google AIP-160 style filtering.", +"type": "string" +} +}, +"type": "object" +}, +"ConvertJobDetails": { +"description": "Details regarding a Convert background job.", +"id": "ConvertJobDetails", +"properties": { +"filter": { +"description": "Output only. AIP-160 based filter used to specify the entities to convert", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConvertRowIdToColumn": { +"description": "Options to configure rule type ConvertROWIDToColumn. The rule is used to add column rowid to destination tables based on an Oracle rowid function/property. The rule filter field can refer to one or more entities. The rule scope can be one of: Table. This rule requires additional filter to be specified beyond the basic rule filter field, which is whether or not to work on tables which already have a primary key defined.", +"id": "ConvertRowIdToColumn", +"properties": { +"onlyIfNoPrimaryKey": { +"description": "Required. Only work on tables without primary key defined", +"type": "boolean" +} +}, +"type": "object" +}, +"DataCacheConfig": { +"description": "Data cache is an optional feature available for Cloud SQL for MySQL Enterprise Plus edition only. For more information on data cache, see [Data cache overview](https://cloud.google.com/sql/help/mysql-data-cache) in Cloud SQL documentation.", +"id": "DataCacheConfig", +"properties": { +"dataCacheEnabled": { +"description": "Optional. Whether data cache is enabled for the instance.", +"type": "boolean" +} +}, +"type": "object" +}, +"DatabaseEngineInfo": { +"description": "The type and version of a source or destination database.", +"id": "DatabaseEngineInfo", +"properties": { +"engine": { +"description": "Required. Engine type.", +"enum": [ +"DATABASE_ENGINE_UNSPECIFIED", +"MYSQL", +"POSTGRESQL", +"SQLSERVER", +"ORACLE" +], +"enumDescriptions": [ +"The source database engine of the migration job is unknown.", +"The source engine is MySQL.", +"The source engine is PostgreSQL.", +"The source engine is SQL Server.", +"The source engine is Oracle." +], +"type": "string" +}, +"version": { +"description": "Required. Engine version, for example \"12.c.1\".", +"type": "string" +} +}, +"type": "object" +}, +"DatabaseEntity": { +"description": "The base entity type for all the database related entities. The message contains the entity name, the name of its parent, the entity type, and the specific details per entity type.", +"id": "DatabaseEntity", +"properties": { +"database": { +"$ref": "DatabaseInstanceEntity", +"description": "Database." +}, +"databaseFunction": { +"$ref": "FunctionEntity", +"description": "Function." +}, +"databasePackage": { +"$ref": "PackageEntity", +"description": "Package." +}, +"entityDdl": { +"description": "Details about the entity DDL script. Multiple DDL scripts are provided for child entities such as a table entity will have one DDL for the table with additional DDLs for each index, constraint and such.", +"items": { +"$ref": "EntityDdl" +}, +"type": "array" +}, +"entityType": { +"description": "The type of the database entity (table, view, index, ...).", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +}, +"issues": { +"description": "Details about the various issues found for the entity.", +"items": { +"$ref": "EntityIssue" +}, +"type": "array" +}, +"mappings": { +"description": "Details about entity mappings. For source tree entities, this holds the draft entities which were generated by the mapping rules. For draft tree entities, this holds the source entities which were converted to form the draft entity. Destination entities will have no mapping details.", +"items": { +"$ref": "EntityMapping" +}, +"type": "array" +}, +"materializedView": { +"$ref": "MaterializedViewEntity", +"description": "Materialized view." +}, +"parentEntity": { +"description": "The full name of the parent entity (e.g. schema name).", +"type": "string" +}, +"schema": { +"$ref": "SchemaEntity", +"description": "Schema." +}, +"sequence": { +"$ref": "SequenceEntity", +"description": "Sequence." +}, +"shortName": { +"description": "The short name (e.g. table name) of the entity.", +"type": "string" +}, +"storedProcedure": { +"$ref": "StoredProcedureEntity", +"description": "Stored procedure." +}, +"synonym": { +"$ref": "SynonymEntity", +"description": "Synonym." +}, +"table": { +"$ref": "TableEntity", +"description": "Table." +}, +"tree": { +"description": "The type of tree the entity belongs to.", +"enum": [ +"TREE_TYPE_UNSPECIFIED", +"SOURCE", +"DRAFT", +"DESTINATION" +], +"enumDescriptions": [ +"Tree type unspecified.", +"Tree of entities loaded from a source database.", +"Tree of entities converted from the source tree using the mapping rules.", +"Tree of entities observed on the destination database." +], +"type": "string" +}, +"udt": { +"$ref": "UDTEntity", +"description": "UDT." +}, +"view": { +"$ref": "ViewEntity", +"description": "View." +} +}, +"type": "object" +}, +"DatabaseInstanceEntity": { +"description": "DatabaseInstance acts as a parent entity to other database entities.", +"id": "DatabaseInstanceEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +} +}, +"type": "object" +}, +"DatabaseType": { +"description": "A message defining the database engine and provider.", +"id": "DatabaseType", +"properties": { +"engine": { +"description": "The database engine.", +"enum": [ +"DATABASE_ENGINE_UNSPECIFIED", +"MYSQL", +"POSTGRESQL", +"SQLSERVER", +"ORACLE" +], +"enumDescriptions": [ +"The source database engine of the migration job is unknown.", +"The source engine is MySQL.", +"The source engine is PostgreSQL.", +"The source engine is SQL Server.", +"The source engine is Oracle." +], +"type": "string" +}, +"provider": { +"description": "The database provider.", +"enum": [ +"DATABASE_PROVIDER_UNSPECIFIED", +"CLOUDSQL", +"RDS", +"AURORA", +"ALLOYDB", +"AZURE_DATABASE" +], +"enumDescriptions": [ +"Use this value for on-premise source database instances and ORACLE.", +"Cloud SQL is the source instance provider.", +"Amazon RDS is the source instance provider.", +"Amazon Aurora is the source instance provider.", +"AlloyDB for PostgreSQL is the source instance provider.", +"Microsoft Azure Database for MySQL/PostgreSQL." +], +"type": "string" +} +}, +"type": "object" +}, +"DemoteDestinationRequest": { +"description": "Request message for 'DemoteDestination' request.", +"id": "DemoteDestinationRequest", +"properties": {}, +"type": "object" +}, +"DescribeConversionWorkspaceRevisionsResponse": { +"description": "Response message for 'DescribeConversionWorkspaceRevisions' request.", +"id": "DescribeConversionWorkspaceRevisionsResponse", +"properties": { +"revisions": { +"description": "The list of conversion workspace revisions.", +"items": { +"$ref": "ConversionWorkspace" +}, +"type": "array" +} +}, +"type": "object" +}, +"DescribeDatabaseEntitiesResponse": { +"description": "Response message for 'DescribeDatabaseEntities' request.", +"id": "DescribeDatabaseEntitiesResponse", +"properties": { +"databaseEntities": { +"description": "The list of database entities for the conversion workspace.", +"items": { +"$ref": "DatabaseEntity" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"DoubleComparisonFilter": { +"description": "Filter based on relation between source value and compare value of type double in ConditionalColumnSetValue", +"id": "DoubleComparisonFilter", +"properties": { +"value": { +"description": "Required. Double compare value to be used", +"format": "double", +"type": "number" +}, +"valueComparison": { +"description": "Required. Relation between source value and compare value", +"enum": [ +"VALUE_COMPARISON_UNSPECIFIED", +"VALUE_COMPARISON_IF_VALUE_SMALLER_THAN", +"VALUE_COMPARISON_IF_VALUE_SMALLER_EQUAL_THAN", +"VALUE_COMPARISON_IF_VALUE_LARGER_THAN", +"VALUE_COMPARISON_IF_VALUE_LARGER_EQUAL_THAN" +], +"enumDescriptions": [ +"Value comparison unspecified.", +"Value is smaller than the Compare value.", +"Value is smaller or equal than the Compare value.", +"Value is larger than the Compare value.", +"Value is larger or equal than the Compare value." +], +"type": "string" +} +}, +"type": "object" +}, +"DumpFlag": { +"description": "Dump flag definition.", +"id": "DumpFlag", +"properties": { +"name": { +"description": "The name of the flag", +"type": "string" +}, +"value": { +"description": "The value of the flag.", +"type": "string" +} +}, +"type": "object" +}, +"DumpFlags": { +"description": "Dump flags definition.", +"id": "DumpFlags", +"properties": { +"dumpFlags": { +"description": "The flags for the initial dump.", +"items": { +"$ref": "DumpFlag" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionConfig": { +"description": "EncryptionConfig describes the encryption config of a cluster that is encrypted with a CMEK (customer-managed encryption key).", +"id": "EncryptionConfig", +"properties": { +"kmsKeyName": { +"description": "The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]", +"type": "string" +} +}, +"type": "object" +}, +"EntityDdl": { +"description": "A single DDL statement for a specific entity", +"id": "EntityDdl", +"properties": { +"ddl": { +"description": "The actual ddl code.", +"type": "string" +}, +"ddlType": { +"description": "Type of DDL (Create, Alter).", +"type": "string" +}, +"entity": { +"description": "The name of the database entity the ddl refers to.", +"type": "string" +}, +"entityType": { +"description": "The entity type (if the DDL is for a sub entity).", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +}, +"issueId": { +"description": "EntityIssues found for this ddl.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EntityIssue": { +"description": "Issue related to the entity.", +"id": "EntityIssue", +"properties": { +"code": { +"description": "Error/Warning code", +"type": "string" +}, +"ddl": { +"description": "The ddl which caused the issue, if relevant.", +"type": "string" +}, +"entityType": { +"description": "The entity type (if the DDL is for a sub entity).", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +}, +"id": { +"description": "Unique Issue ID.", +"type": "string" +}, +"message": { +"description": "Issue detailed message", +"type": "string" +}, +"position": { +"$ref": "Position", +"description": "The position of the issue found, if relevant." +}, +"severity": { +"description": "Severity of the issue", +"enum": [ +"ISSUE_SEVERITY_UNSPECIFIED", +"ISSUE_SEVERITY_INFO", +"ISSUE_SEVERITY_WARNING", +"ISSUE_SEVERITY_ERROR" +], +"enumDescriptions": [ +"Unspecified issue severity", +"Info", +"Warning", +"Error" +], +"type": "string" +}, +"type": { +"description": "The type of the issue.", +"enum": [ +"ISSUE_TYPE_UNSPECIFIED", +"ISSUE_TYPE_DDL", +"ISSUE_TYPE_APPLY", +"ISSUE_TYPE_CONVERT" +], +"enumDescriptions": [ +"Unspecified issue type.", +"Issue originated from the DDL", +"Issue originated during the apply process", +"Issue originated during the convert process" +], +"type": "string" +} +}, +"type": "object" +}, +"EntityMapping": { +"description": "Details of the mappings of a database entity.", +"id": "EntityMapping", +"properties": { +"draftEntity": { +"description": "Target entity full name. The draft entity can also include a column, index or constraint using the same naming notation schema.table.column.", +"type": "string" +}, +"draftType": { +"description": "Type of draft entity.", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +}, +"mappingLog": { +"description": "Entity mapping log entries. Multiple rules can be effective and contribute changes to a converted entity, such as a rule can handle the entity name, another rule can handle an entity type. In addition, rules which did not change the entity are also logged along with the reason preventing them to do so.", +"items": { +"$ref": "EntityMappingLogEntry" +}, +"type": "array" +}, +"sourceEntity": { +"description": "Source entity full name. The source entity can also be a column, index or constraint using the same naming notation schema.table.column.", +"type": "string" +}, +"sourceType": { +"description": "Type of source entity.", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +} +}, +"type": "object" +}, +"EntityMappingLogEntry": { +"description": "A single record of a rule which was used for a mapping.", +"id": "EntityMappingLogEntry", +"properties": { +"mappingComment": { +"description": "Comment.", +"type": "string" +}, +"ruleId": { +"description": "Which rule caused this log entry.", +"type": "string" +}, +"ruleRevisionId": { +"description": "Rule revision ID.", +"type": "string" +} +}, +"type": "object" +}, +"EntityMove": { +"description": "Options to configure rule type EntityMove. The rule is used to move an entity to a new schema. The rule filter field can refer to one or more entities. The rule scope can be one of: Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT", +"id": "EntityMove", +"properties": { +"newSchema": { +"description": "Required. The new schema", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"FetchStaticIpsResponse": { +"description": "Response message for a 'FetchStaticIps' request.", +"id": "FetchStaticIpsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"staticIps": { +"description": "List of static IPs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FilterTableColumns": { +"description": "Options to configure rule type FilterTableColumns. The rule is used to filter the list of columns to include or exclude from a table. The rule filter field can refer to one entity. The rule scope can be: Table Only one of the two lists can be specified for the rule.", +"id": "FilterTableColumns", +"properties": { +"excludeColumns": { +"description": "Optional. List of columns to be excluded for a particular table.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includeColumns": { +"description": "Optional. List of columns to be included for a particular table.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ForwardSshTunnelConnectivity": { +"description": "Forward SSH Tunnel connectivity.", +"id": "ForwardSshTunnelConnectivity", +"properties": { +"hostname": { +"description": "Required. Hostname for the SSH tunnel.", +"type": "string" +}, +"password": { +"description": "Input only. SSH password.", +"type": "string" +}, +"port": { +"description": "Port for the SSH tunnel, default value is 22.", +"format": "int32", +"type": "integer" +}, +"privateKey": { +"description": "Input only. SSH private key.", +"type": "string" +}, +"username": { +"description": "Required. Username for the SSH tunnel.", +"type": "string" +} +}, +"type": "object" +}, +"FunctionEntity": { +"description": "Function's parent is a schema.", +"id": "FunctionEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"sqlCode": { +"description": "The SQL code which creates the function.", +"type": "string" +} +}, +"type": "object" +}, +"GenerateSshScriptRequest": { +"description": "Request message for 'GenerateSshScript' request.", +"id": "GenerateSshScriptRequest", +"properties": { +"vm": { +"description": "Required. Bastion VM Instance name to use or to create.", +"type": "string" +}, +"vmCreationConfig": { +"$ref": "VmCreationConfig", +"description": "The VM creation configuration" +}, +"vmPort": { +"description": "The port that will be open on the bastion host.", +"format": "int32", +"type": "integer" +}, +"vmSelectionConfig": { +"$ref": "VmSelectionConfig", +"description": "The VM selection configuration" +} +}, +"type": "object" +}, +"GenerateTcpProxyScriptRequest": { +"description": "Request message for 'GenerateTcpProxyScript' request.", +"id": "GenerateTcpProxyScriptRequest", +"properties": { +"vmMachineType": { +"description": "Required. The type of the Compute instance that will host the proxy.", +"type": "string" +}, +"vmName": { +"description": "Required. The name of the Compute instance that will host the proxy.", +"type": "string" +}, +"vmSubnet": { +"description": "Required. The name of the subnet the Compute instance will use for private connectivity. Must be supplied in the form of projects/{project}/regions/{region}/subnetworks/{subnetwork}. Note: the region for the subnet must match the Compute instance region.", +"type": "string" +}, +"vmZone": { +"description": "Optional. The Google Cloud Platform zone to create the VM in. The fully qualified name of the zone must be specified, including the region name, for example \"us-central1-b\". If not specified, uses the \"-b\" zone of the destination Connection Profile's region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudClouddmsV1OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudClouddmsV1OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ImportMappingRulesRequest": { +"description": "Request message for 'ImportMappingRules' request.", +"id": "ImportMappingRulesRequest", +"properties": { +"autoCommit": { +"description": "Required. Should the conversion workspace be committed automatically after the import operation.", +"type": "boolean" +}, +"rulesFiles": { +"description": "Required. One or more rules files.", +"items": { +"$ref": "RulesFile" +}, +"type": "array" +}, +"rulesFormat": { +"description": "Required. The format of the rules content file.", +"enum": [ +"IMPORT_RULES_FILE_FORMAT_UNSPECIFIED", +"IMPORT_RULES_FILE_FORMAT_HARBOUR_BRIDGE_SESSION_FILE", +"IMPORT_RULES_FILE_FORMAT_ORATOPG_CONFIG_FILE" +], +"enumDescriptions": [ +"Unspecified rules format.", +"HarbourBridge session file.", +"Ora2Pg configuration file." +], +"type": "string" +} +}, +"type": "object" +}, +"ImportRulesJobDetails": { +"description": "Details regarding an Import Rules background job.", +"id": "ImportRulesJobDetails", +"properties": { +"fileFormat": { +"description": "Output only. The requested file format.", +"enum": [ +"IMPORT_RULES_FILE_FORMAT_UNSPECIFIED", +"IMPORT_RULES_FILE_FORMAT_HARBOUR_BRIDGE_SESSION_FILE", +"IMPORT_RULES_FILE_FORMAT_ORATOPG_CONFIG_FILE" +], +"enumDescriptions": [ +"Unspecified rules format.", +"HarbourBridge session file.", +"Ora2Pg configuration file." +], +"readOnly": true, +"type": "string" +}, +"files": { +"description": "Output only. File names used for the import rules job.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"IndexEntity": { +"description": "Index is not used as an independent entity, it is retrieved as part of a Table entity.", +"id": "IndexEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"name": { +"description": "The name of the index.", +"type": "string" +}, +"tableColumns": { +"description": "Table columns used as part of the Index, for example B-TREE index should list the columns which constitutes the index.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tableColumnsDescending": { +"description": "For each table_column, mark whether it's sorting order is ascending (false) or descending (true). If no value is defined, assume all columns are sorted in ascending order. Otherwise, the number of items must match that of table_columns with each value specifying the direction of the matched column by its index.", +"items": { +"type": "boolean" +}, +"type": "array" +}, +"type": { +"description": "Type of index, for example B-TREE.", +"type": "string" +}, +"unique": { +"description": "Boolean value indicating whether the index is unique.", +"type": "boolean" +} +}, +"type": "object" +}, +"InstanceNetworkConfig": { +"description": "Metadata related to instance level network configuration.", +"id": "InstanceNetworkConfig", +"properties": { +"authorizedExternalNetworks": { +"description": "Optional. A list of external network authorized to access this instance.", +"items": { +"$ref": "AuthorizedNetwork" +}, +"type": "array" +}, +"enableOutboundPublicIp": { +"description": "Optional. Enabling an outbound public IP address to support a database server sending requests out into the internet.", +"type": "boolean" +}, +"enablePublicIp": { +"description": "Optional. Enabling public ip for the instance.", +"type": "boolean" +} +}, +"type": "object" +}, +"IntComparisonFilter": { +"description": "Filter based on relation between source value and compare value of type integer in ConditionalColumnSetValue", +"id": "IntComparisonFilter", +"properties": { +"value": { +"description": "Required. Integer compare value to be used", +"format": "int64", +"type": "string" +}, +"valueComparison": { +"description": "Required. Relation between source value and compare value", +"enum": [ +"VALUE_COMPARISON_UNSPECIFIED", +"VALUE_COMPARISON_IF_VALUE_SMALLER_THAN", +"VALUE_COMPARISON_IF_VALUE_SMALLER_EQUAL_THAN", +"VALUE_COMPARISON_IF_VALUE_LARGER_THAN", +"VALUE_COMPARISON_IF_VALUE_LARGER_EQUAL_THAN" +], +"enumDescriptions": [ +"Value comparison unspecified.", +"Value is smaller than the Compare value.", +"Value is smaller or equal than the Compare value.", +"Value is larger than the Compare value.", +"Value is larger or equal than the Compare value." +], +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionProfilesResponse": { +"description": "Response message for 'ListConnectionProfiles' request.", +"id": "ListConnectionProfilesResponse", +"properties": { +"connectionProfiles": { +"description": "The response list of connection profiles.", +"items": { +"$ref": "ConnectionProfile" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListConversionWorkspacesResponse": { +"description": "Response message for 'ListConversionWorkspaces' request.", +"id": "ListConversionWorkspacesResponse", +"properties": { +"conversionWorkspaces": { +"description": "The list of conversion workspace objects.", +"items": { +"$ref": "ConversionWorkspace" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListMappingRulesResponse": { +"description": "Response message for 'ListMappingRulesRequest' request.", +"id": "ListMappingRulesResponse", +"properties": { +"mappingRules": { +"description": "The list of conversion workspace mapping rules.", +"items": { +"$ref": "MappingRule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListMigrationJobObjectsResponse": { +"description": "Response containing the objects for a migration job.", +"id": "ListMigrationJobObjectsResponse", +"properties": { +"migrationJobObjects": { +"description": "List of migration job objects.", +"items": { +"$ref": "MigrationJobObject" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page.", +"type": "string" +} +}, +"type": "object" +}, +"ListMigrationJobsResponse": { +"description": "Response message for 'ListMigrationJobs' request.", +"id": "ListMigrationJobsResponse", +"properties": { +"migrationJobs": { +"description": "The list of migration jobs objects.", +"items": { +"$ref": "MigrationJob" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPrivateConnectionsResponse": { +"description": "Response message for 'ListPrivateConnections' request.", +"id": "ListPrivateConnectionsResponse", +"properties": { +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"privateConnections": { +"description": "List of private connections.", +"items": { +"$ref": "PrivateConnection" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"LogFileDirectories": { +"description": "Configuration to specify the Oracle directories to access the log files.", +"id": "LogFileDirectories", +"properties": { +"archivedLogDirectory": { +"description": "Required. Oracle directory for archived logs.", +"type": "string" +}, +"onlineLogDirectory": { +"description": "Required. Oracle directory for online logs.", +"type": "string" +} +}, +"type": "object" +}, +"LogMiner": { +"description": "Configuration to use LogMiner CDC method.", +"id": "LogMiner", +"properties": {}, +"type": "object" +}, +"LookupMigrationJobObjectRequest": { +"description": "Request for looking up a specific migration job object by its source object identifier.", +"id": "LookupMigrationJobObjectRequest", +"properties": { +"sourceObjectIdentifier": { +"$ref": "SourceObjectIdentifier", +"description": "Required. The source object identifier which maps to the migration job object." +} +}, +"type": "object" +}, +"MachineConfig": { +"description": "MachineConfig describes the configuration of a machine.", +"id": "MachineConfig", +"properties": { +"cpuCount": { +"description": "The number of CPU's in the VM instance.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"MappingRule": { +"description": "Definition of a transformation that is to be applied to a group of entities in the source schema. Several such transformations can be applied to an entity sequentially to define the corresponding entity in the target schema.", +"id": "MappingRule", +"properties": { +"conditionalColumnSetValue": { +"$ref": "ConditionalColumnSetValue", +"description": "Optional. Rule to specify how the data contained in a column should be transformed (such as trimmed, rounded, etc) provided that the data meets certain criteria." +}, +"convertRowidColumn": { +"$ref": "ConvertRowIdToColumn", +"description": "Optional. Rule to specify how multiple tables should be converted with an additional rowid column." +}, +"displayName": { +"description": "Optional. A human readable name", +"type": "string" +}, +"entityMove": { +"$ref": "EntityMove", +"description": "Optional. Rule to specify how multiple entities should be relocated into a different schema." +}, +"filter": { +"$ref": "MappingRuleFilter", +"description": "Required. The rule filter" +}, +"filterTableColumns": { +"$ref": "FilterTableColumns", +"description": "Optional. Rule to specify the list of columns to include or exclude from a table." +}, +"multiColumnDataTypeChange": { +"$ref": "MultiColumnDatatypeChange", +"description": "Optional. Rule to specify how multiple columns should be converted to a different data type." +}, +"multiEntityRename": { +"$ref": "MultiEntityRename", +"description": "Optional. Rule to specify how multiple entities should be renamed." +}, +"name": { +"description": "Full name of the mapping rule resource, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{set}/mappingRule/{rule}.", +"type": "string" +}, +"revisionCreateTime": { +"description": "Output only. The timestamp that the revision was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. The revision ID of the mapping rule. A new revision is committed whenever the mapping rule is changed in any way. The format is an 8-character hexadecimal string.", +"readOnly": true, +"type": "string" +}, +"ruleOrder": { +"description": "Required. The order in which the rule is applied. Lower order rules are applied before higher value rules so they may end up being overridden.", +"format": "int64", +"type": "string" +}, +"ruleScope": { +"description": "Required. The rule scope", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +}, +"setTablePrimaryKey": { +"$ref": "SetTablePrimaryKey", +"description": "Optional. Rule to specify the primary key for a table" +}, +"singleColumnChange": { +"$ref": "SingleColumnChange", +"description": "Optional. Rule to specify how a single column is converted." +}, +"singleEntityRename": { +"$ref": "SingleEntityRename", +"description": "Optional. Rule to specify how a single entity should be renamed." +}, +"singlePackageChange": { +"$ref": "SinglePackageChange", +"description": "Optional. Rule to specify how a single package is converted." +}, +"sourceSqlChange": { +"$ref": "SourceSqlChange", +"description": "Optional. Rule to change the sql code for an entity, for example, function, procedure." +}, +"state": { +"description": "Optional. The mapping rule state", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"DELETED" +], +"enumDescriptions": [ +"The state of the mapping rule is unknown.", +"The rule is enabled.", +"The rule is disabled.", +"The rule is logically deleted." +], +"type": "string" +} +}, +"type": "object" +}, +"MappingRuleFilter": { +"description": "A filter defining the entities that a mapping rule should be applied to. When more than one field is specified, the rule is applied only to entities which match all the fields.", +"id": "MappingRuleFilter", +"properties": { +"entities": { +"description": "Optional. The rule should be applied to specific entities defined by their fully qualified names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entityNameContains": { +"description": "Optional. The rule should be applied to entities whose non-qualified name contains the given string.", +"type": "string" +}, +"entityNamePrefix": { +"description": "Optional. The rule should be applied to entities whose non-qualified name starts with the given prefix.", +"type": "string" +}, +"entityNameSuffix": { +"description": "Optional. The rule should be applied to entities whose non-qualified name ends with the given suffix.", +"type": "string" +}, +"parentEntity": { +"description": "Optional. The rule should be applied to entities whose parent entity (fully qualified name) matches the given value. For example, if the rule applies to a table entity, the expected value should be a schema (schema). If the rule applies to a column or index entity, the expected value can be either a schema (schema) or a table (schema.table)", +"type": "string" +} +}, +"type": "object" +}, +"MaterializedViewEntity": { +"description": "MaterializedView's parent is a schema.", +"id": "MaterializedViewEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"indices": { +"description": "View indices.", +"items": { +"$ref": "IndexEntity" +}, +"type": "array" +}, +"sqlCode": { +"description": "The SQL code which creates the view.", +"type": "string" +} +}, +"type": "object" +}, +"MigrationJob": { +"description": "Represents a Database Migration Service migration job object.", +"id": "MigrationJob", +"properties": { +"cmekKeyName": { +"description": "The CMEK (customer-managed encryption key) fully qualified key name used for the migration job. This field supports all migration jobs types except for: * Mysql to Mysql (use the cmek field in the cloudsql connection profile instead). * PostrgeSQL to PostgreSQL (use the cmek field in the cloudsql connection profile instead). * PostgreSQL to AlloyDB (use the kms_key_name field in the alloydb connection profile instead). Each Cloud CMEK key has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]", +"type": "string" +}, +"conversionWorkspace": { +"$ref": "ConversionWorkspaceInfo", +"description": "The conversion workspace used by the migration." +}, +"createTime": { +"description": "Output only. The timestamp when the migration job resource was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destination": { +"description": "Required. The resource name (URI) of the destination connection profile.", +"type": "string" +}, +"destinationDatabase": { +"$ref": "DatabaseType", +"description": "The database engine type and provider of the destination." +}, +"displayName": { +"description": "The migration job display name.", +"type": "string" +}, +"dumpFlags": { +"$ref": "DumpFlags", +"description": "The initial dump flags. This field and the \"dump_path\" field are mutually exclusive." +}, +"dumpPath": { +"description": "The path to the dump file in Google Cloud Storage, in the format: (gs://[BUCKET_NAME]/[OBJECT_NAME]). This field and the \"dump_flags\" field are mutually exclusive.", +"type": "string" +}, +"dumpType": { +"description": "Optional. The type of the data dump. Supported for MySQL to CloudSQL for MySQL migrations only.", +"enum": [ +"DUMP_TYPE_UNSPECIFIED", +"LOGICAL", +"PHYSICAL" +], +"enumDescriptions": [ +"If not specified, defaults to LOGICAL", +"Logical dump.", +"Physical file-based dump. Supported for MySQL to CloudSQL for MySQL migrations only." +], +"type": "string" +}, +"duration": { +"description": "Output only. The duration of the migration job (in seconds). A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. If the migration job is completed, the time when it was completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. The error details in case of state FAILED.", +"readOnly": true +}, +"filter": { +"description": "This field can be used to select the entities to migrate as part of the migration job. It uses AIP-160 notation to select a subset of the entities configured on the associated conversion-workspace. This field should not be set on migration-jobs that are not associated with a conversion workspace.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for migration job to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"name": { +"description": "The name (URI) of this migration job resource, in the form of: projects/{project}/locations/{location}/migrationJobs/{migrationJob}.", +"type": "string" +}, +"objectsConfig": { +"$ref": "MigrationJobObjectsConfig", +"description": "Optional. The objects that need to be migrated." +}, +"oracleToPostgresConfig": { +"$ref": "OracleToPostgresConfig", +"description": "Configuration for heterogeneous **Oracle to Cloud SQL for PostgreSQL** and **Oracle to AlloyDB for PostgreSQL** migrations." +}, +"performanceConfig": { +"$ref": "PerformanceConfig", +"description": "Optional. Data dump parallelism settings used by the migration." +}, +"phase": { +"description": "Output only. The current migration job phase.", +"enum": [ +"PHASE_UNSPECIFIED", +"FULL_DUMP", +"CDC", +"PROMOTE_IN_PROGRESS", +"WAITING_FOR_SOURCE_WRITES_TO_STOP", +"PREPARING_THE_DUMP", +"READY_FOR_PROMOTE" +], +"enumDescriptions": [ +"The phase of the migration job is unknown.", +"The migration job is in the full dump phase.", +"The migration job is CDC phase.", +"The migration job is running the promote phase.", +"Only RDS flow - waiting for source writes to stop", +"Only RDS flow - the sources writes stopped, waiting for dump to begin", +"The migration job is ready to be promoted." +], +"readOnly": true, +"type": "string" +}, +"reverseSshConnectivity": { +"$ref": "ReverseSshConnectivity", +"description": "The details needed to communicate to the source over Reverse SSH tunnel connectivity." +}, +"satisfiesPzi": { +"description": "Output only. Zone Isolation compliance state of the resource.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Zone Separation compliance state of the resource.", +"readOnly": true, +"type": "boolean" +}, +"source": { +"description": "Required. The resource name (URI) of the source connection profile.", +"type": "string" +}, +"sourceDatabase": { +"$ref": "DatabaseType", +"description": "The database engine type and provider of the source." +}, +"sqlserverHomogeneousMigrationJobConfig": { +"$ref": "SqlServerHomogeneousMigrationJobConfig", +"description": "Optional. Configuration for SQL Server homogeneous migration." +}, +"state": { +"description": "The current migration job state.", +"enum": [ +"STATE_UNSPECIFIED", +"MAINTENANCE", +"DRAFT", +"CREATING", +"NOT_STARTED", +"RUNNING", +"FAILED", +"COMPLETED", +"DELETING", +"STOPPING", +"STOPPED", +"DELETED", +"UPDATING", +"STARTING", +"RESTARTING", +"RESUMING" +], +"enumDescriptions": [ +"The state of the migration job is unknown.", +"The migration job is down for maintenance.", +"The migration job is in draft mode and no resources are created.", +"The migration job is being created.", +"The migration job is created and not started.", +"The migration job is running.", +"The migration job failed.", +"The migration job has been completed.", +"The migration job is being deleted.", +"The migration job is being stopped.", +"The migration job is currently stopped.", +"The migration job has been deleted.", +"The migration job is being updated.", +"The migration job is starting.", +"The migration job is restarting.", +"The migration job is resuming." +], +"type": "string" +}, +"staticIpConnectivity": { +"$ref": "StaticIpConnectivity", +"description": "static ip connectivity data (default, no additional details needed)." +}, +"type": { +"description": "Required. The migration job type.", +"enum": [ +"TYPE_UNSPECIFIED", +"ONE_TIME", +"CONTINUOUS" +], +"enumDescriptions": [ +"The type of the migration job is unknown.", +"The migration job is a one time migration.", +"The migration job is a continuous migration." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the migration job resource was last updated. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vpcPeeringConnectivity": { +"$ref": "VpcPeeringConnectivity", +"description": "The details of the VPC network that the source database is located in." +} +}, +"type": "object" +}, +"MigrationJobObject": { +"description": "A specific Migration Job Object (e.g. a specifc DB Table)", +"id": "MigrationJobObject", +"properties": { +"createTime": { +"description": "Output only. The creation time of the migration job object.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. The error details in case of failure.", +"readOnly": true +}, +"name": { +"description": "The object's name.", +"type": "string" +}, +"phase": { +"description": "Output only. The phase of the migration job object.", +"enum": [ +"PHASE_UNSPECIFIED", +"FULL_DUMP", +"CDC", +"READY_FOR_PROMOTE", +"PROMOTE_IN_PROGRESS", +"PROMOTED", +"DIFF_BACKUP" +], +"enumDescriptions": [ +"The phase of the migration job is unknown.", +"The migration job object is in the full dump phase.", +"The migration job object is in CDC phase.", +"The migration job object is ready to be promoted.", +"The migration job object is in running the promote phase.", +"The migration job is promoted.", +"The migration job object is in the differential backup phase." +], +"readOnly": true, +"type": "string" +}, +"sourceObject": { +"$ref": "SourceObjectIdentifier", +"description": "The object identifier in the data source." +}, +"state": { +"description": "The state of the migration job object.", +"enum": [ +"STATE_UNSPECIFIED", +"NOT_STARTED", +"RUNNING", +"STOPPING", +"STOPPED", +"RESTARTING", +"FAILED", +"REMOVING", +"NOT_SELECTED", +"COMPLETED" +], +"enumDescriptions": [ +"The state of the migration job object is unknown.", +"The migration job object is not started.", +"The migration job object is running.", +"The migration job object is being stopped.", +"The migration job object is currently stopped.", +"The migration job object is restarting.", +"The migration job object failed.", +"The migration job object is deleting.", +"The migration job object is not selected for migration.", +"The migration job object is completed." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update time of the migration job object.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MigrationJobObjectsConfig": { +"description": "Configuration for the objects to be migrated.", +"id": "MigrationJobObjectsConfig", +"properties": { +"sourceObjectsConfig": { +"$ref": "SourceObjectsConfig", +"description": "The list of the migration job objects." +} +}, +"type": "object" +}, +"MigrationJobVerificationError": { +"description": "Error message of a verification Migration job.", +"id": "MigrationJobVerificationError", +"properties": { +"errorCode": { +"description": "Output only. An instance of ErrorCode specifying the error that occurred.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"CONNECTION_FAILURE", +"AUTHENTICATION_FAILURE", +"INVALID_CONNECTION_PROFILE_CONFIG", +"VERSION_INCOMPATIBILITY", +"CONNECTION_PROFILE_TYPES_INCOMPATIBILITY", +"NO_PGLOGICAL_INSTALLED", +"PGLOGICAL_NODE_ALREADY_EXISTS", +"INVALID_WAL_LEVEL", +"INVALID_SHARED_PRELOAD_LIBRARY", +"INSUFFICIENT_MAX_REPLICATION_SLOTS", +"INSUFFICIENT_MAX_WAL_SENDERS", +"INSUFFICIENT_MAX_WORKER_PROCESSES", +"UNSUPPORTED_EXTENSIONS", +"UNSUPPORTED_MIGRATION_TYPE", +"INVALID_RDS_LOGICAL_REPLICATION", +"UNSUPPORTED_GTID_MODE", +"UNSUPPORTED_TABLE_DEFINITION", +"UNSUPPORTED_DEFINER", +"CANT_RESTART_RUNNING_MIGRATION", +"SOURCE_ALREADY_SETUP", +"TABLES_WITH_LIMITED_SUPPORT", +"UNSUPPORTED_DATABASE_LOCALE", +"UNSUPPORTED_DATABASE_FDW_CONFIG", +"ERROR_RDBMS", +"SOURCE_SIZE_EXCEEDS_THRESHOLD", +"EXISTING_CONFLICTING_DATABASES", +"PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", +"EXISTING_DATA", +"SOURCE_MAX_SUBSCRIPTIONS" +], +"enumDescriptions": [ +"An unknown error occurred", +"We failed to connect to one of the connection profile.", +"We failed to authenticate to one of the connection profile.", +"One of the involved connection profiles has an invalid configuration.", +"The versions of the source and the destination are incompatible.", +"The types of the source and the destination are incompatible.", +"No pglogical extension installed on databases, applicable for postgres.", +"pglogical node already exists on databases, applicable for postgres.", +"The value of parameter wal_level is not set to logical.", +"The value of parameter shared_preload_libraries does not include pglogical.", +"The value of parameter max_replication_slots is not sufficient.", +"The value of parameter max_wal_senders is not sufficient.", +"The value of parameter max_worker_processes is not sufficient.", +"Extensions installed are either not supported or having unsupported versions.", +"Unsupported migration type.", +"Invalid RDS logical replication.", +"The gtid_mode is not supported, applicable for MySQL.", +"The table definition is not support due to missing primary key or replica identity.", +"The definer is not supported.", +"Migration is already running at the time of restart request.", +"The source already has a replication setup.", +"The source has tables with limited support. E.g. PostgreSQL tables without primary keys.", +"The source uses an unsupported locale.", +"The source uses an unsupported Foreign Data Wrapper configuration.", +"There was an underlying RDBMS error.", +"The source DB size in Bytes exceeds a certain threshold. The migration might require an increase of quota, or might not be supported.", +"The destination DB contains existing databases that are conflicting with those in the source DB.", +"Insufficient privilege to enable the parallelism configuration.", +"The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job.", +"The migration job is configured to use max number of subscriptions to migrate data from the source to the destination." +], +"readOnly": true, +"type": "string" +}, +"errorDetailMessage": { +"description": "Output only. A specific detailed error message, if supplied by the engine.", +"readOnly": true, +"type": "string" +}, +"errorMessage": { +"description": "Output only. A formatted message with further details about the error and a CTA.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MultiColumnDatatypeChange": { +"description": "Options to configure rule type MultiColumnDatatypeChange. The rule is used to change the data type and associated properties of multiple columns at once. The rule filter field can refer to one or more entities. The rule scope can be one of:Column. This rule requires additional filters to be specified beyond the basic rule filter field, which is the source data type, but the rule supports additional filtering capabilities such as the minimum and maximum field length. All additional filters which are specified are required to be met in order for the rule to be applied (logical AND between the fields).", +"id": "MultiColumnDatatypeChange", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Custom engine specific features.", +"type": "object" +}, +"newDataType": { +"description": "Required. New data type.", +"type": "string" +}, +"overrideFractionalSecondsPrecision": { +"description": "Optional. Column fractional seconds precision - used only for timestamp based datatypes - if not specified and relevant uses the source column fractional seconds precision.", +"format": "int32", +"type": "integer" +}, +"overrideLength": { +"description": "Optional. Column length - e.g. varchar (50) - if not specified and relevant uses the source column length.", +"format": "int64", +"type": "string" +}, +"overridePrecision": { +"description": "Optional. Column precision - when relevant - if not specified and relevant uses the source column precision.", +"format": "int32", +"type": "integer" +}, +"overrideScale": { +"description": "Optional. Column scale - when relevant - if not specified and relevant uses the source column scale.", +"format": "int32", +"type": "integer" +}, +"sourceDataTypeFilter": { +"description": "Required. Filter on source data type.", +"type": "string" +}, +"sourceNumericFilter": { +"$ref": "SourceNumericFilter", +"description": "Optional. Filter for fixed point number data types such as NUMERIC/NUMBER." +}, +"sourceTextFilter": { +"$ref": "SourceTextFilter", +"description": "Optional. Filter for text-based data types like varchar." +} +}, +"type": "object" +}, +"MultiEntityRename": { +"description": "Options to configure rule type MultiEntityRename. The rule is used to rename multiple entities. The rule filter field can refer to one or more entities. The rule scope can be one of: Database, Schema, Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT", +"id": "MultiEntityRename", +"properties": { +"newNamePattern": { +"description": "Optional. The pattern used to generate the new entity's name. This pattern must include the characters '{name}', which will be replaced with the name of the original entity. For example, the pattern 't_{name}' for an entity name jobs would be converted to 't_jobs'. If unspecified, the default value for this field is '{name}'", +"type": "string" +}, +"sourceNameTransformation": { +"description": "Optional. Additional transformation that can be done on the source entity name before it is being used by the new_name_pattern, for example lower case. If no transformation is desired, use NO_TRANSFORMATION", +"enum": [ +"ENTITY_NAME_TRANSFORMATION_UNSPECIFIED", +"ENTITY_NAME_TRANSFORMATION_NO_TRANSFORMATION", +"ENTITY_NAME_TRANSFORMATION_LOWER_CASE", +"ENTITY_NAME_TRANSFORMATION_UPPER_CASE", +"ENTITY_NAME_TRANSFORMATION_CAPITALIZED_CASE" +], +"enumDescriptions": [ +"Entity name transformation unspecified.", +"No transformation.", +"Transform to lower case.", +"Transform to upper case.", +"Transform to capitalized case." +], +"type": "string" +} +}, +"type": "object" +}, +"MySqlConnectionProfile": { +"description": "Specifies connection parameters required specifically for MySQL databases.", +"id": "MySqlConnectionProfile", +"properties": { +"cloudSqlId": { +"description": "If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.", +"type": "string" +}, +"host": { +"description": "Required. The IP or hostname of the source MySQL database.", +"type": "string" +}, +"password": { +"description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates If this connection profile password is stored.", +"readOnly": true, +"type": "boolean" +}, +"port": { +"description": "Required. The network port of the source MySQL database.", +"format": "int32", +"type": "integer" +}, +"ssl": { +"$ref": "SslConfig", +"description": "SSL configuration for the destination to connect to the source database." +}, +"username": { +"description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OracleAsmConfig": { +"description": "Configuration for Oracle Automatic Storage Management (ASM) connection.", +"id": "OracleAsmConfig", +"properties": { +"asmService": { +"description": "Required. ASM service name for the Oracle ASM connection.", +"type": "string" +}, +"hostname": { +"description": "Required. Hostname for the Oracle ASM connection.", +"type": "string" +}, +"password": { +"description": "Required. Input only. Password for the Oracle ASM connection.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates whether a new password is included in the request.", +"readOnly": true, +"type": "boolean" +}, +"port": { +"description": "Required. Port for the Oracle ASM connection.", +"format": "int32", +"type": "integer" +}, +"ssl": { +"$ref": "SslConfig", +"description": "Optional. SSL configuration for the Oracle connection." +}, +"username": { +"description": "Required. Username for the Oracle ASM connection.", +"type": "string" +} +}, +"type": "object" +}, +"OracleAsmLogFileAccess": { +"description": "Configuration to use Oracle ASM to access the log files.", +"id": "OracleAsmLogFileAccess", +"properties": {}, +"type": "object" +}, +"OracleConnectionProfile": { +"description": "Specifies connection parameters required specifically for Oracle databases.", +"id": "OracleConnectionProfile", +"properties": { +"databaseService": { +"description": "Required. Database service for the Oracle connection.", +"type": "string" +}, +"forwardSshConnectivity": { +"$ref": "ForwardSshTunnelConnectivity", +"description": "Forward SSH tunnel connectivity." +}, +"host": { +"description": "Required. The IP or hostname of the source Oracle database.", +"type": "string" +}, +"oracleAsmConfig": { +"$ref": "OracleAsmConfig", +"description": "Optional. Configuration for Oracle ASM connection." +}, +"password": { +"description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates whether a new password is included in the request.", +"readOnly": true, +"type": "boolean" +}, +"port": { +"description": "Required. The network port of the source Oracle database.", +"format": "int32", +"type": "integer" +}, +"privateConnectivity": { +"$ref": "PrivateConnectivity", +"description": "Private connectivity." +}, +"ssl": { +"$ref": "SslConfig", +"description": "SSL configuration for the connection to the source Oracle database. * Only `SERVER_ONLY` configuration is supported for Oracle SSL. * SSL is supported for Oracle versions 12 and above." +}, +"staticServiceIpConnectivity": { +"$ref": "StaticServiceIpConnectivity", +"description": "Static Service IP connectivity." +}, +"username": { +"description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", +"type": "string" +} +}, +"type": "object" +}, +"OracleSourceConfig": { +"description": "Configuration for Oracle as a source in a migration.", +"id": "OracleSourceConfig", +"properties": { +"binaryLogParser": { +"$ref": "BinaryLogParser", +"description": "Use Binary Log Parser." +}, +"cdcStartPosition": { +"description": "Optional. The schema change number (SCN) to start CDC data migration from.", +"format": "int64", +"type": "string" +}, +"logMiner": { +"$ref": "LogMiner", +"description": "Use LogMiner." +}, +"maxConcurrentCdcConnections": { +"description": "Optional. Maximum number of connections Database Migration Service will open to the source for CDC phase.", +"format": "int32", +"type": "integer" +}, +"maxConcurrentFullDumpConnections": { +"description": "Optional. Maximum number of connections Database Migration Service will open to the source for full dump phase.", +"format": "int32", +"type": "integer" +}, +"skipFullDump": { +"description": "Optional. Whether to skip full dump or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"OracleToPostgresConfig": { +"description": "Configuration for heterogeneous **Oracle to Cloud SQL for PostgreSQL** and **Oracle to AlloyDB for PostgreSQL** migrations.", +"id": "OracleToPostgresConfig", +"properties": { +"oracleSourceConfig": { +"$ref": "OracleSourceConfig", +"description": "Optional. Configuration for Oracle source." +}, +"postgresDestinationConfig": { +"$ref": "PostgresDestinationConfig", +"description": "Optional. Configuration for Postgres destination." +} +}, +"type": "object" +}, +"PackageEntity": { +"description": "Package's parent is a schema.", +"id": "PackageEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"packageBody": { +"description": "The SQL code which creates the package body. If the package specification has cursors or subprograms, then the package body is mandatory.", +"type": "string" +}, +"packageSqlCode": { +"description": "The SQL code which creates the package.", +"type": "string" +} +}, +"type": "object" +}, +"PerformanceConfig": { +"description": "Performance configuration definition.", +"id": "PerformanceConfig", +"properties": { +"dumpParallelLevel": { +"description": "Initial dump parallelism level.", +"enum": [ +"DUMP_PARALLEL_LEVEL_UNSPECIFIED", +"MIN", +"OPTIMAL", +"MAX" +], +"enumDescriptions": [ +"Unknown dump parallel level. Will be defaulted to OPTIMAL.", +"Minimal parallel level.", +"Optimal parallel level.", +"Maximum parallel level." +], +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Position": { +"description": "Issue position.", +"id": "Position", +"properties": { +"column": { +"description": "Issue column number", +"format": "int32", +"type": "integer" +}, +"length": { +"description": "Issue length", +"format": "int32", +"type": "integer" +}, +"line": { +"description": "Issue line number", +"format": "int32", +"type": "integer" +}, +"offset": { +"description": "Issue offset", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PostgreSqlConnectionProfile": { +"description": "Specifies connection parameters required specifically for PostgreSQL databases.", +"id": "PostgreSqlConnectionProfile", +"properties": { +"alloydbClusterId": { +"description": "Optional. If the destination is an AlloyDB database, use this field to provide the AlloyDB cluster ID.", +"type": "string" +}, +"cloudSqlId": { +"description": "If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.", +"type": "string" +}, +"database": { +"description": "Optional. The name of the specific database within the host.", +"type": "string" +}, +"host": { +"description": "Required. The IP or hostname of the source PostgreSQL database.", +"type": "string" +}, +"networkArchitecture": { +"description": "Output only. If the source is a Cloud SQL database, this field indicates the network architecture it's associated with.", +"enum": [ +"NETWORK_ARCHITECTURE_UNSPECIFIED", +"NETWORK_ARCHITECTURE_OLD_CSQL_PRODUCER", +"NETWORK_ARCHITECTURE_NEW_CSQL_PRODUCER" +], +"enumDescriptions": [ +"", +"Instance is in Cloud SQL's old producer network architecture.", +"Instance is in Cloud SQL's new producer network architecture." +], +"readOnly": true, +"type": "string" +}, +"password": { +"description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates If this connection profile password is stored.", +"readOnly": true, +"type": "boolean" +}, +"port": { +"description": "Required. The network port of the source PostgreSQL database.", +"format": "int32", +"type": "integer" +}, +"privateServiceConnectConnectivity": { +"$ref": "PrivateServiceConnectConnectivity", +"description": "Private service connect connectivity." +}, +"ssl": { +"$ref": "SslConfig", +"description": "SSL configuration for the destination to connect to the source database." +}, +"staticIpConnectivity": { +"$ref": "StaticIpConnectivity", +"description": "Static ip connectivity data (default, no additional details needed)." +}, +"username": { +"description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", +"type": "string" +} +}, +"type": "object" +}, +"PostgresDestinationConfig": { +"description": "Configuration for Postgres as a destination in a migration.", +"id": "PostgresDestinationConfig", +"properties": { +"maxConcurrentConnections": { +"description": "Optional. Maximum number of connections Database Migration Service will open to the destination for data migration.", +"format": "int32", +"type": "integer" +}, +"transactionTimeout": { +"description": "Optional. Timeout for data migration transactions.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"PrimaryInstanceSettings": { +"description": "Settings for the cluster's primary instance", +"id": "PrimaryInstanceSettings", +"properties": { +"databaseFlags": { +"additionalProperties": { +"type": "string" +}, +"description": "Database flags to pass to AlloyDB when DMS is creating the AlloyDB cluster and instances. See the AlloyDB documentation for how these can be used.", +"type": "object" +}, +"id": { +"description": "Required. The ID of the AlloyDB primary instance. The ID must satisfy the regex expression \"[a-z0-9-]+\".", +"type": "string" +}, +"instanceNetworkConfig": { +"$ref": "InstanceNetworkConfig", +"description": "Optional. Metadata related to instance level network configuration." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels for the AlloyDB primary instance created by DMS. An object containing a list of 'key', 'value' pairs.", +"type": "object" +}, +"machineConfig": { +"$ref": "MachineConfig", +"description": "Configuration for the machines that host the underlying database engine." +}, +"outboundPublicIpAddresses": { +"description": "Output only. All outbound public IP addresses configured for the instance.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"privateIp": { +"description": "Output only. The private IP address for the Instance. This is the connection endpoint for an end-user application.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrivateConnection": { +"description": "The PrivateConnection resource is used to establish private connectivity with the customer's network.", +"id": "PrivateConnection", +"properties": { +"createTime": { +"description": "Output only. The create time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The private connection display name.", +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. The error details in case of state FAILED.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for private connections to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"name": { +"description": "The name of the resource.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Zone Isolation compliance state of the resource.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Zone Separation compliance state of the resource.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the private connection.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"FAILED", +"DELETING", +"FAILED_TO_DELETE", +"DELETED" +], +"enumDescriptions": [ +"", +"The private connection is in creation state - creating resources.", +"The private connection has been created with all of its resources.", +"The private connection creation has failed.", +"The private connection is being deleted.", +"Delete request has failed, resource is in invalid state.", +"The private connection has been deleted." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vpcPeeringConfig": { +"$ref": "VpcPeeringConfig", +"description": "VPC peering configuration." +} +}, +"type": "object" +}, +"PrivateConnectivity": { +"description": "Private Connectivity.", +"id": "PrivateConnectivity", +"properties": { +"privateConnection": { +"description": "Required. The resource name (URI) of the private connection.", +"type": "string" +} +}, +"type": "object" +}, +"PrivateServiceConnectConnectivity": { +"description": "[Private Service Connect connectivity](https://cloud.google.com/vpc/docs/private-service-connect#service-attachments)", +"id": "PrivateServiceConnectConnectivity", +"properties": { +"serviceAttachment": { +"description": "Required. A service attachment that exposes a database, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name}", +"type": "string" +} +}, +"type": "object" +}, +"PromoteMigrationJobRequest": { +"description": "Request message for 'PromoteMigrationJob' request.", +"id": "PromoteMigrationJobRequest", +"properties": { +"objectsFilter": { +"$ref": "MigrationJobObjectsConfig", +"description": "Optional. The object filter to apply to the migration job." +} +}, +"type": "object" +}, +"RestartMigrationJobRequest": { +"description": "Request message for 'RestartMigrationJob' request.", +"id": "RestartMigrationJobRequest", +"properties": { +"objectsFilter": { +"$ref": "MigrationJobObjectsConfig", +"description": "Optional. The object filter to apply to the migration job." +}, +"restartFailedObjects": { +"description": "Optional. If true, only failed objects will be restarted.", +"type": "boolean" +}, +"skipValidation": { +"description": "Optional. Restart the migration job without running prior configuration verification. Defaults to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"ResumeMigrationJobRequest": { +"description": "Request message for 'ResumeMigrationJob' request.", +"id": "ResumeMigrationJobRequest", +"properties": { +"skipValidation": { +"description": "Optional. Resume the migration job without running prior configuration verification. Defaults to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"ReverseSshConnectivity": { +"description": "The details needed to configure a reverse SSH tunnel between the source and destination databases. These details will be used when calling the generateSshScript method (see https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.migrationJobs/generateSshScript) to produce the script that will help set up the reverse SSH tunnel, and to set up the VPC peering between the Cloud SQL private network and the VPC.", +"id": "ReverseSshConnectivity", +"properties": { +"vm": { +"description": "The name of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.", +"type": "string" +}, +"vmIp": { +"description": "Required. The IP of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.", +"type": "string" +}, +"vmPort": { +"description": "Required. The forwarding port of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.", +"format": "int32", +"type": "integer" +}, +"vpc": { +"description": "The name of the VPC to peer with the Cloud SQL private network.", +"type": "string" +} +}, +"type": "object" +}, +"RollbackConversionWorkspaceRequest": { +"description": "Request message for 'RollbackConversionWorkspace' request.", +"id": "RollbackConversionWorkspaceRequest", +"properties": {}, +"type": "object" +}, +"RoundToScale": { +"description": "This allows the data to change scale, for example if the source is 2 digits after the decimal point, specify round to scale value = 2. If for example the value needs to be converted to an integer, use round to scale value = 0.", +"id": "RoundToScale", +"properties": { +"scale": { +"description": "Required. Scale value to be used", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"RulesFile": { +"description": "Details of a single rules file.", +"id": "RulesFile", +"properties": { +"rulesContent": { +"description": "Required. The text content of the rules that needs to be converted.", +"type": "string" +}, +"rulesSourceFilename": { +"description": "Required. The filename of the rules that needs to be converted. The filename is used mainly so that future logs of the import rules job contain it, and can therefore be searched by it.", +"type": "string" +} +}, +"type": "object" +}, +"SchemaEntity": { +"description": "Schema typically has no parent entity, but can have a parent entity DatabaseInstance (for database engines which support it). For some database engines, the terms schema and user can be used interchangeably when they refer to a namespace or a collection of other database entities. Can store additional information which is schema specific.", +"id": "SchemaEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +} +}, +"type": "object" +}, +"SearchBackgroundJobsResponse": { +"description": "Response message for 'SearchBackgroundJobs' request.", +"id": "SearchBackgroundJobsResponse", +"properties": { +"jobs": { +"description": "The list of conversion workspace mapping rules.", +"items": { +"$ref": "BackgroundJobLogEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"SeedConversionWorkspaceRequest": { +"description": "Request message for 'SeedConversionWorkspace' request.", +"id": "SeedConversionWorkspaceRequest", +"properties": { +"autoCommit": { +"description": "Should the conversion workspace be committed automatically after the seed operation.", +"type": "boolean" +}, +"destinationConnectionProfile": { +"description": "Optional. Fully qualified (Uri) name of the destination connection profile.", +"type": "string" +}, +"sourceConnectionProfile": { +"description": "Optional. Fully qualified (Uri) name of the source connection profile.", +"type": "string" +} +}, +"type": "object" +}, +"SeedJobDetails": { +"description": "Details regarding a Seed background job.", +"id": "SeedJobDetails", +"properties": { +"connectionProfile": { +"description": "Output only. The connection profile which was used for the seed job.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SequenceEntity": { +"description": "Sequence's parent is a schema.", +"id": "SequenceEntity", +"properties": { +"cache": { +"description": "Indicates number of entries to cache / precreate.", +"format": "int64", +"type": "string" +}, +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"cycle": { +"description": "Indicates whether the sequence value should cycle through.", +"type": "boolean" +}, +"increment": { +"description": "Increment value for the sequence.", +"format": "int64", +"type": "string" +}, +"maxValue": { +"description": "Maximum number for the sequence represented as bytes to accommodate large. numbers", +"format": "byte", +"type": "string" +}, +"minValue": { +"description": "Minimum number for the sequence represented as bytes to accommodate large. numbers", +"format": "byte", +"type": "string" +}, +"startValue": { +"description": "Start number for the sequence represented as bytes to accommodate large. numbers", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SetTablePrimaryKey": { +"description": "Options to configure rule type SetTablePrimaryKey. The rule is used to specify the columns and name to configure/alter the primary key of a table. The rule filter field can refer to one entity. The rule scope can be one of: Table.", +"id": "SetTablePrimaryKey", +"properties": { +"primaryKey": { +"description": "Optional. Name for the primary key", +"type": "string" +}, +"primaryKeyColumns": { +"description": "Required. List of column names for the primary key", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SingleColumnChange": { +"description": "Options to configure rule type SingleColumnChange. The rule is used to change the properties of a column. The rule filter field can refer to one entity. The rule scope can be one of: Column. When using this rule, if a field is not specified than the destination column's configuration will be the same as the one in the source column..", +"id": "SingleColumnChange", +"properties": { +"array": { +"description": "Optional. Is the column of array type.", +"type": "boolean" +}, +"arrayLength": { +"description": "Optional. The length of the array, only relevant if the column type is an array.", +"format": "int32", +"type": "integer" +}, +"autoGenerated": { +"description": "Optional. Is the column auto-generated/identity.", +"type": "boolean" +}, +"charset": { +"description": "Optional. Charset override - instead of table level charset.", +"type": "string" +}, +"collation": { +"description": "Optional. Collation override - instead of table level collation.", +"type": "string" +}, +"comment": { +"description": "Optional. Comment associated with the column.", +"type": "string" +}, +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Custom engine specific features.", +"type": "object" +}, +"dataType": { +"description": "Optional. Column data type name.", +"type": "string" +}, +"fractionalSecondsPrecision": { +"description": "Optional. Column fractional seconds precision - e.g. 2 as in timestamp (2) - when relevant.", +"format": "int32", +"type": "integer" +}, +"length": { +"description": "Optional. Column length - e.g. 50 as in varchar (50) - when relevant.", +"format": "int64", +"type": "string" +}, +"nullable": { +"description": "Optional. Is the column nullable.", +"type": "boolean" +}, +"precision": { +"description": "Optional. Column precision - e.g. 8 as in double (8,2) - when relevant.", +"format": "int32", +"type": "integer" +}, +"scale": { +"description": "Optional. Column scale - e.g. 2 as in double (8,2) - when relevant.", +"format": "int32", +"type": "integer" +}, +"setValues": { +"description": "Optional. Specifies the list of values allowed in the column.", +"items": { +"type": "string" +}, +"type": "array" +}, +"udt": { +"description": "Optional. Is the column a UDT (User-defined Type).", +"type": "boolean" +} +}, +"type": "object" +}, +"SingleEntityRename": { +"description": "Options to configure rule type SingleEntityRename. The rule is used to rename an entity. The rule filter field can refer to only one entity. The rule scope can be one of: Database, Schema, Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT, Synonym", +"id": "SingleEntityRename", +"properties": { +"newName": { +"description": "Required. The new name of the destination entity", +"type": "string" +} +}, +"type": "object" +}, +"SinglePackageChange": { +"description": "Options to configure rule type SinglePackageChange. The rule is used to alter the sql code for a package entities. The rule filter field can refer to one entity. The rule scope can be: Package", +"id": "SinglePackageChange", +"properties": { +"packageBody": { +"description": "Optional. Sql code for package body", +"type": "string" +}, +"packageDescription": { +"description": "Optional. Sql code for package description", +"type": "string" +} +}, +"type": "object" +}, +"SourceNumericFilter": { +"description": "Filter for fixed point number data types such as NUMERIC/NUMBER", +"id": "SourceNumericFilter", +"properties": { +"numericFilterOption": { +"description": "Required. Enum to set the option defining the datatypes numeric filter has to be applied to", +"enum": [ +"NUMERIC_FILTER_OPTION_UNSPECIFIED", +"NUMERIC_FILTER_OPTION_ALL", +"NUMERIC_FILTER_OPTION_LIMIT", +"NUMERIC_FILTER_OPTION_LIMITLESS" +], +"enumDescriptions": [ +"Numeric filter option unspecified", +"Numeric filter option that matches all numeric columns.", +"Numeric filter option that matches columns having numeric datatypes with specified precision and scale within the limited range of filter.", +"Numeric filter option that matches only the numeric columns with no precision and scale specified." +], +"type": "string" +}, +"sourceMaxPrecisionFilter": { +"description": "Optional. The filter will match columns with precision smaller than or equal to this number.", +"format": "int32", +"type": "integer" +}, +"sourceMaxScaleFilter": { +"description": "Optional. The filter will match columns with scale smaller than or equal to this number.", +"format": "int32", +"type": "integer" +}, +"sourceMinPrecisionFilter": { +"description": "Optional. The filter will match columns with precision greater than or equal to this number.", +"format": "int32", +"type": "integer" +}, +"sourceMinScaleFilter": { +"description": "Optional. The filter will match columns with scale greater than or equal to this number.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SourceObjectConfig": { +"description": "Config for a single migration job object.", +"id": "SourceObjectConfig", +"properties": { +"objectIdentifier": { +"$ref": "SourceObjectIdentifier", +"description": "Optional. The object identifier." +} +}, +"type": "object" +}, +"SourceObjectIdentifier": { +"description": "An identifier for the Migration Job Object.", +"id": "SourceObjectIdentifier", +"properties": { +"database": { +"description": "Optional. The database name. This will be required only if the object uses a database name as part of its unique identifier.", +"type": "string" +}, +"type": { +"description": "Required. The type of the migration job object.", +"enum": [ +"MIGRATION_JOB_OBJECT_TYPE_UNSPECIFIED", +"DATABASE" +], +"enumDescriptions": [ +"The type of the migration job object is unknown.", +"The migration job object is a database." +], +"type": "string" +} +}, +"type": "object" +}, +"SourceObjectsConfig": { +"description": "List of configurations for the source objects to be migrated.", +"id": "SourceObjectsConfig", +"properties": { +"objectConfigs": { +"description": "Optional. The list of the objects to be migrated.", +"items": { +"$ref": "SourceObjectConfig" +}, +"type": "array" +}, +"objectsSelectionType": { +"description": "Optional. The objects selection type of the migration job.", +"enum": [ +"OBJECTS_SELECTION_TYPE_UNSPECIFIED", +"ALL_OBJECTS", +"SPECIFIED_OBJECTS" +], +"enumDescriptions": [ +"The type of the objects selection is unknown, indicating that the migration job is at instance level.", +"Migrate all of the objects.", +"Migrate specific objects." +], +"type": "string" +} +}, +"type": "object" +}, +"SourceSqlChange": { +"description": "Options to configure rule type SourceSqlChange. The rule is used to alter the sql code for database entities. The rule filter field can refer to one entity. The rule scope can be: StoredProcedure, Function, Trigger, View", +"id": "SourceSqlChange", +"properties": { +"sqlCode": { +"description": "Required. Sql code for source (stored procedure, function, trigger or view)", +"type": "string" +} +}, +"type": "object" +}, +"SourceTextFilter": { +"description": "Filter for text-based data types like varchar.", +"id": "SourceTextFilter", +"properties": { +"sourceMaxLengthFilter": { +"description": "Optional. The filter will match columns with length smaller than or equal to this number.", +"format": "int64", +"type": "string" +}, +"sourceMinLengthFilter": { +"description": "Optional. The filter will match columns with length greater than or equal to this number.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SqlAclEntry": { +"description": "An entry for an Access Control list.", +"id": "SqlAclEntry", +"properties": { +"expireTime": { +"description": "The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example: `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +}, +"label": { +"description": "A label to identify this entry.", +"type": "string" +}, +"ttl": { +"description": "Input only. The time-to-leave of this access control entry.", +"format": "google-duration", +"type": "string" +}, +"value": { +"description": "The allowlisted value for the access control list.", +"type": "string" +} +}, +"type": "object" +}, +"SqlIpConfig": { +"description": "IP Management configuration.", +"id": "SqlIpConfig", +"properties": { +"allocatedIpRange": { +"description": "Optional. The name of the allocated IP address range for the private IP Cloud SQL instance. This name refers to an already allocated IP range address. If set, the instance IP address will be created in the allocated range. Note that this IP address range can't be modified after the instance is created. If you change the VPC when configuring connectivity settings for the migration job, this field is not relevant.", +"type": "string" +}, +"authorizedNetworks": { +"description": "The list of external networks that are allowed to connect to the instance using the IP. See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as 'slash' notation (e.g. `192.168.100.0/24`).", +"items": { +"$ref": "SqlAclEntry" +}, +"type": "array" +}, +"enableIpv4": { +"description": "Whether the instance should be assigned an IPv4 address or not.", +"type": "boolean" +}, +"privateNetwork": { +"description": "The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.", +"type": "string" +}, +"requireSsl": { +"description": "Whether SSL connections over IP should be enforced or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"SqlServerBackups": { +"description": "Specifies the backup details in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server.", +"id": "SqlServerBackups", +"properties": { +"gcsBucket": { +"description": "Required. The Cloud Storage bucket that stores backups for all replicated databases.", +"type": "string" +}, +"gcsPrefix": { +"description": "Optional. Cloud Storage path inside the bucket that stores backups.", +"type": "string" +} +}, +"type": "object" +}, +"SqlServerConnectionProfile": { +"description": "Specifies connection parameters required specifically for SQL Server databases.", +"id": "SqlServerConnectionProfile", +"properties": { +"backups": { +"$ref": "SqlServerBackups", +"description": "The backup details in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server." +}, +"cloudSqlId": { +"description": "If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.", +"type": "string" +}, +"forwardSshConnectivity": { +"$ref": "ForwardSshTunnelConnectivity", +"description": "Forward SSH tunnel connectivity." +}, +"host": { +"description": "Required. The IP or hostname of the source SQL Server database.", +"type": "string" +}, +"password": { +"description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates whether a new password is included in the request.", +"readOnly": true, +"type": "boolean" +}, +"port": { +"description": "Required. The network port of the source SQL Server database.", +"format": "int32", +"type": "integer" +}, +"privateConnectivity": { +"$ref": "PrivateConnectivity", +"description": "Private connectivity." +}, +"privateServiceConnectConnectivity": { +"$ref": "PrivateServiceConnectConnectivity", +"description": "Private Service Connect connectivity." +}, +"ssl": { +"$ref": "SslConfig", +"description": "SSL configuration for the destination to connect to the source database." +}, +"staticIpConnectivity": { +"$ref": "StaticIpConnectivity", +"description": "Static IP connectivity data (default, no additional details needed)." +}, +"username": { +"description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", +"type": "string" +} +}, +"type": "object" +}, +"SqlServerDatabaseBackup": { +"description": "Specifies the backup details for a single database in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server.", +"id": "SqlServerDatabaseBackup", +"properties": { +"database": { +"description": "Required. Name of a SQL Server database for which to define backup configuration.", +"type": "string" +}, +"encryptionOptions": { +"$ref": "SqlServerEncryptionOptions", +"description": "Optional. Encryption settings for the database. Required if provided database backups are encrypted. Encryption settings include path to certificate, path to certificate private key, and key password." +} +}, +"type": "object" +}, +"SqlServerEncryptionOptions": { +"description": "Encryption settings for the SQL Server database.", +"id": "SqlServerEncryptionOptions", +"properties": { +"certPath": { +"description": "Required. Path to the Certificate (.cer) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.", +"type": "string" +}, +"pvkPassword": { +"description": "Required. Input only. Password that encrypts the private key.", +"type": "string" +}, +"pvkPath": { +"description": "Required. Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.", +"type": "string" +} +}, +"type": "object" +}, +"SqlServerHomogeneousMigrationJobConfig": { +"description": "Configuration for homogeneous migration to Cloud SQL for SQL Server.", +"id": "SqlServerHomogeneousMigrationJobConfig", +"properties": { +"backupFilePattern": { +"description": "Required. Pattern that describes the default backup naming strategy. The specified pattern should ensure lexicographical order of backups. The pattern must define one of the following capture group sets: Capture group set #1 yy/yyyy - year, 2 or 4 digits mm - month number, 1-12 dd - day of month, 1-31 hh - hour of day, 00-23 mi - minutes, 00-59 ss - seconds, 00-59 Example: For backup file TestDB_20230802_155400.trn, use pattern: (?.*)_backup_(?\\d{4})(?\\d{2})(?\\d{2})_(?\\d{2})(?\\d{2})(?\\d{2}).trn Capture group set #2 timestamp - unix timestamp Example: For backup file TestDB.1691448254.trn, use pattern: (?.*)\\.(?\\d*).trn or (?.*)\\.(?\\d*).trn", +"type": "string" +}, +"databaseBackups": { +"description": "Required. Backup details per database in Cloud Storage.", +"items": { +"$ref": "SqlServerDatabaseBackup" +}, +"type": "array" +}, +"promoteWhenReady": { +"description": "Optional. Promote databases when ready.", +"type": "boolean" +}, +"useDiffBackup": { +"description": "Optional. Enable differential backups.", +"type": "boolean" +} +}, +"type": "object" +}, +"SshScript": { +"description": "Response message for 'GenerateSshScript' request.", +"id": "SshScript", +"properties": { +"script": { +"description": "The ssh configuration script.", +"type": "string" +} +}, +"type": "object" +}, +"SslConfig": { +"description": "SSL configuration information.", +"id": "SslConfig", +"properties": { +"caCertificate": { +"description": "Required. Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate. The replica will use this certificate to verify it's connecting to the right host.", +"type": "string" +}, +"clientCertificate": { +"description": "Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.If this field is used then the 'client_key' field is mandatory.", +"type": "string" +}, +"clientKey": { +"description": "Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' field is mandatory.", +"type": "string" +}, +"type": { +"description": "Optional. The ssl config type according to 'client_key', 'client_certificate' and 'ca_certificate'.", +"enum": [ +"SSL_TYPE_UNSPECIFIED", +"SERVER_ONLY", +"SERVER_CLIENT", +"REQUIRED", +"NONE" +], +"enumDescriptions": [ +"Unspecified.", +"Only 'ca_certificate' specified.", +"Both server ('ca_certificate'), and client ('client_key', 'client_certificate') specified.", +"Mandates SSL encryption for all connections. This doesn\u2019t require certificate verification.", +"Connection is not encrypted." +], +"type": "string" +} +}, +"type": "object" +}, +"StartMigrationJobRequest": { +"description": "Request message for 'StartMigrationJob' request.", +"id": "StartMigrationJobRequest", +"properties": { +"skipValidation": { +"description": "Optional. Start the migration job without running prior configuration verification. Defaults to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"StaticIpConnectivity": { +"description": "The source database will allow incoming connections from the public IP of the destination database. You can retrieve the public IP of the Cloud SQL instance from the Cloud SQL console or using Cloud SQL APIs. No additional configuration is required.", +"id": "StaticIpConnectivity", +"properties": {}, +"type": "object" +}, +"StaticServiceIpConnectivity": { +"description": "Static IP address connectivity configured on service project.", +"id": "StaticServiceIpConnectivity", +"properties": {}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopMigrationJobRequest": { +"description": "Request message for 'StopMigrationJob' request.", +"id": "StopMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"StoredProcedureEntity": { +"description": "Stored procedure's parent is a schema.", +"id": "StoredProcedureEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"sqlCode": { +"description": "The SQL code which creates the stored procedure.", +"type": "string" +} +}, +"type": "object" +}, +"SynonymEntity": { +"description": "Synonym's parent is a schema.", +"id": "SynonymEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"sourceEntity": { +"description": "The name of the entity for which the synonym is being created (the source).", +"type": "string" +}, +"sourceType": { +"description": "The type of the entity for which the synonym is being created (usually a table or a sequence).", +"enum": [ +"DATABASE_ENTITY_TYPE_UNSPECIFIED", +"DATABASE_ENTITY_TYPE_SCHEMA", +"DATABASE_ENTITY_TYPE_TABLE", +"DATABASE_ENTITY_TYPE_COLUMN", +"DATABASE_ENTITY_TYPE_CONSTRAINT", +"DATABASE_ENTITY_TYPE_INDEX", +"DATABASE_ENTITY_TYPE_TRIGGER", +"DATABASE_ENTITY_TYPE_VIEW", +"DATABASE_ENTITY_TYPE_SEQUENCE", +"DATABASE_ENTITY_TYPE_STORED_PROCEDURE", +"DATABASE_ENTITY_TYPE_FUNCTION", +"DATABASE_ENTITY_TYPE_SYNONYM", +"DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", +"DATABASE_ENTITY_TYPE_UDT", +"DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", +"DATABASE_ENTITY_TYPE_DATABASE" +], +"enumDescriptions": [ +"Unspecified database entity type.", +"Schema.", +"Table.", +"Column.", +"Constraint.", +"Index.", +"Trigger.", +"View.", +"Sequence.", +"Stored Procedure.", +"Function.", +"Synonym.", +"Package.", +"UDT.", +"Materialized View.", +"Database." +], +"type": "string" +} +}, +"type": "object" +}, +"TableEntity": { +"description": "Table's parent is a schema.", +"id": "TableEntity", +"properties": { +"columns": { +"description": "Table columns.", +"items": { +"$ref": "ColumnEntity" +}, +"type": "array" +}, +"comment": { +"description": "Comment associated with the table.", +"type": "string" +}, +"constraints": { +"description": "Table constraints.", +"items": { +"$ref": "ConstraintEntity" +}, +"type": "array" +}, +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"indices": { +"description": "Table indices.", +"items": { +"$ref": "IndexEntity" +}, +"type": "array" +}, +"triggers": { +"description": "Table triggers.", +"items": { +"$ref": "TriggerEntity" +}, +"type": "array" +} +}, +"type": "object" +}, +"TcpProxyScript": { +"description": "Response message for 'GenerateTcpProxyScript' request.", +"id": "TcpProxyScript", +"properties": { +"script": { +"description": "The TCP Proxy configuration script.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TriggerEntity": { +"description": "Trigger is not used as an independent entity, it is retrieved as part of a Table entity.", +"id": "TriggerEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"name": { +"description": "The name of the trigger.", +"type": "string" +}, +"sqlCode": { +"description": "The SQL code which creates the trigger.", +"type": "string" +}, +"triggerType": { +"description": "Indicates when the trigger fires, for example BEFORE STATEMENT, AFTER EACH ROW.", +"type": "string" +}, +"triggeringEvents": { +"description": "The DML, DDL, or database events that fire the trigger, for example INSERT, UPDATE.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UDTEntity": { +"description": "UDT's parent is a schema.", +"id": "UDTEntity", +"properties": { +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"udtBody": { +"description": "The SQL code which creates the udt body.", +"type": "string" +}, +"udtSqlCode": { +"description": "The SQL code which creates the udt.", +"type": "string" +} +}, +"type": "object" +}, +"UserPassword": { +"description": "The username/password for a database user. Used for specifying initial users at cluster creation time.", +"id": "UserPassword", +"properties": { +"password": { +"description": "The initial password for the user.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates if the initial_user.password field has been set.", +"readOnly": true, +"type": "boolean" +}, +"user": { +"description": "The database username.", +"type": "string" +} +}, +"type": "object" +}, +"ValueListFilter": { +"description": "A list of values to filter by in ConditionalColumnSetValue", +"id": "ValueListFilter", +"properties": { +"ignoreCase": { +"description": "Required. Whether to ignore case when filtering by values. Defaults to false", +"type": "boolean" +}, +"valuePresentList": { +"description": "Required. Indicates whether the filter matches rows with values that are present in the list or those with values not present in it.", +"enum": [ +"VALUE_PRESENT_IN_LIST_UNSPECIFIED", +"VALUE_PRESENT_IN_LIST_IF_VALUE_LIST", +"VALUE_PRESENT_IN_LIST_IF_VALUE_NOT_LIST" +], +"enumDescriptions": [ +"Value present in list unspecified", +"If the source value is in the supplied list at value_list", +"If the source value is not in the supplied list at value_list" +], +"type": "string" +}, +"values": { +"description": "Required. The list to be used to filter by", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ValueTransformation": { +"description": "Description of data transformation during migration as part of the ConditionalColumnSetValue.", +"id": "ValueTransformation", +"properties": { +"applyHash": { +"$ref": "ApplyHash", +"description": "Optional. Applies a hash function on the data" +}, +"assignMaxValue": { +"$ref": "Empty", +"description": "Optional. Set to max_value - if integer or numeric, will use int.maxvalue, etc" +}, +"assignMinValue": { +"$ref": "Empty", +"description": "Optional. Set to min_value - if integer or numeric, will use int.minvalue, etc" +}, +"assignNull": { +"$ref": "Empty", +"description": "Optional. Set to null" +}, +"assignSpecificValue": { +"$ref": "AssignSpecificValue", +"description": "Optional. Set to a specific value (value is converted to fit the target data type)" +}, +"doubleComparison": { +"$ref": "DoubleComparisonFilter", +"description": "Optional. Filter on relation between source value and compare value of type double." +}, +"intComparison": { +"$ref": "IntComparisonFilter", +"description": "Optional. Filter on relation between source value and compare value of type integer." +}, +"isNull": { +"$ref": "Empty", +"description": "Optional. Value is null" +}, +"roundScale": { +"$ref": "RoundToScale", +"description": "Optional. Allows the data to change scale" +}, +"valueList": { +"$ref": "ValueListFilter", +"description": "Optional. Value is found in the specified list." +} +}, +"type": "object" +}, +"VerifyMigrationJobRequest": { +"description": "Request message for 'VerifyMigrationJob' request.", +"id": "VerifyMigrationJobRequest", +"properties": { +"migrationJob": { +"$ref": "MigrationJob", +"description": "Optional. The changed migration job parameters to verify. It will not update the migration job." +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the changed fields to be verified. It will not update the migration job.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"ViewEntity": { +"description": "View's parent is a schema.", +"id": "ViewEntity", +"properties": { +"constraints": { +"description": "View constraints.", +"items": { +"$ref": "ConstraintEntity" +}, +"type": "array" +}, +"customFeatures": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom engine specific features.", +"type": "object" +}, +"sqlCode": { +"description": "The SQL code which creates the view.", +"type": "string" +} +}, +"type": "object" +}, +"VmCreationConfig": { +"description": "VM creation configuration message", +"id": "VmCreationConfig", +"properties": { +"subnet": { +"description": "The subnet name the vm needs to be created in.", +"type": "string" +}, +"vmMachineType": { +"description": "Required. VM instance machine type to create.", +"type": "string" +}, +"vmZone": { +"description": "The Google Cloud Platform zone to create the VM in.", +"type": "string" +} +}, +"type": "object" +}, +"VmSelectionConfig": { +"description": "VM selection configuration message", +"id": "VmSelectionConfig", +"properties": { +"vmZone": { +"description": "Required. The Google Cloud Platform zone the VM is located.", +"type": "string" +} +}, +"type": "object" +}, +"VpcPeeringConfig": { +"description": "The VPC peering configuration is used to create VPC peering with the consumer's VPC.", +"id": "VpcPeeringConfig", +"properties": { +"subnet": { +"description": "Required. A free subnet for peering. (CIDR of /29)", +"type": "string" +}, +"vpcName": { +"description": "Required. Fully qualified name of the VPC that Database Migration Service will peer to.", +"type": "string" +} +}, +"type": "object" +}, +"VpcPeeringConnectivity": { +"description": "The details of the VPC where the source database is located in Google Cloud. We will use this information to set up the VPC peering connection between Cloud SQL and this VPC.", +"id": "VpcPeeringConnectivity", +"properties": { +"vpc": { +"description": "The name of the VPC network to peer with the Cloud SQL private network.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Database Migration API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..69516d9dabc0f6ef3f3fcc345757376f1526e4ba --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json @@ -0,0 +1,2198 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://datamigration.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Database Migration Service", +"description": "Manage Cloud Database Migration Service resources on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/database-migration/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datamigration:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datamigration.mtls.googleapis.com/", +"name": "datamigration", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "datamigration.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"connectionProfiles": { +"methods": { +"create": { +"description": "Creates a new connection profile in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", +"httpMethod": "POST", +"id": "datamigration.projects.locations.connectionProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectionProfileId": { +"description": "Required. The connection profile identifier.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of connection profiles.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connectionProfiles", +"request": { +"$ref": "ConnectionProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Database Migration Service connection profile. A connection profile can only be deleted if it is not in use by any active migration jobs.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.connectionProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "In case of force delete, the CloudSQL replica database is also deleted (only for CloudSQL connection profile).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the connection profile resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single connection profile.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.connectionProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the connection profile resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ConnectionProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.connectionProfiles.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Retrieve a list of all connection profiles in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", +"httpMethod": "GET", +"id": "datamigration.projects.locations.connectionProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters connection profiles listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list connection profiles created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z**. You can also filter nested fields. For example, you could specify **mySql.username = %lt;my_username%gt;** to list all connection profiles configured to connect with a specific username.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "the order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of connection profiles to return. The service may return fewer than this value. If unspecified, at most 50 connection profiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListConnectionProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConnectionProfiles` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of connection profiles.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connectionProfiles", +"response": { +"$ref": "ListConnectionProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update the configuration of a single connection profile.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "PATCH", +"id": "datamigration.projects.locations.connectionProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of this connection profile resource in the form of projects/{project}/locations/{location}/connectionProfiles/{connectionProfile}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the connection profile resource by the update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ConnectionProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.connectionProfiles.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.connectionProfiles.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"migrationJobs": { +"methods": { +"create": { +"description": "Creates a new migration job in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"migrationJobId": { +"description": "Required. The ID of the instance to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of migration jobs.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/migrationJobs", +"request": { +"$ref": "MigrationJob" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single migration job.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.migrationJobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "The destination CloudSQL connection profile is always deleted with the migration job. In case of force delete, the destination CloudSQL replica database is also deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the migration job resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateSshScript": { +"description": "Generate a SSH configuration script to configure the reverse SSH connectivity.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:generateSshScript", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.generateSshScript", +"parameterOrder": [ +"migrationJob" +], +"parameters": { +"migrationJob": { +"description": "Name of the migration job resource to generate the SSH script.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+migrationJob}:generateSshScript", +"request": { +"$ref": "GenerateSshScriptRequest" +}, +"response": { +"$ref": "SshScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single migration job.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the migration job resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "MigrationJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:getIamPolicy", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists migration jobs in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs", +"httpMethod": "GET", +"id": "datamigration.projects.locations.migrationJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters migration jobs listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list migration jobs created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z.** You can also filter nested fields. For example, you could specify **reverseSshConnectivity.vmIp = \"1.2.3.4\"** to select all migration jobs connecting through the specific SSH tunnel bastion.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort the results based on the migration job name. Valid values are: \"name\", \"name asc\", and \"name desc\".", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of migration jobs to return. The service may return fewer than this value. If unspecified, at most 50 migration jobs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The nextPageToken value received in the previous call to migrationJobs.list, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to migrationJobs.list must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of migrationJobs.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/migrationJobs", +"response": { +"$ref": "ListMigrationJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single migration job.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", +"httpMethod": "PATCH", +"id": "datamigration.projects.locations.migrationJobs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (URI) of this migration job resource, in the form of: projects/{project}/locations/{location}/migrationJobs/{migrationJob}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the migration job resource by the update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "MigrationJob" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"promote": { +"description": "Promote a migration job, stopping replication to the destination and promoting the destination to be a standalone database.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:promote", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.promote", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to promote.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:promote", +"request": { +"$ref": "PromoteMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restart": { +"description": "Restart a stopped or failed migration job, resetting the destination instance to its original state and starting the migration process from scratch.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:restart", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to restart.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:restart", +"request": { +"$ref": "RestartMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resume a migration job that is currently stopped and is resumable (was stopped during CDC phase).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:resume", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to resume.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:resume", +"request": { +"$ref": "ResumeMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:setIamPolicy", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"start": { +"description": "Start an already created migration job.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:start", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to start.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:start", +"request": { +"$ref": "StartMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stop": { +"description": "Stops a running migration job.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:stop", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to stop.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:stop", +"request": { +"$ref": "StopMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:testIamPermissions", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verify": { +"description": "Verify a migration job, making sure the destination can reach the source and that all configuration and prerequisites are met.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:verify", +"httpMethod": "POST", +"id": "datamigration.projects.locations.migrationJobs.verify", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the migration job resource to verify.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:verify", +"request": { +"$ref": "VerifyMigrationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "datamigration.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "datamigration.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "datamigration.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "datamigration.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241202", +"rootUrl": "https://datamigration.googleapis.com/", +"schemas": { +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloudSqlConnectionProfile": { +"description": "Specifies required connection parameters, and, optionally, the parameters required to create a Cloud SQL destination database instance.", +"id": "CloudSqlConnectionProfile", +"properties": { +"cloudSqlId": { +"description": "Output only. The Cloud SQL instance ID that this connection profile is associated with.", +"readOnly": true, +"type": "string" +}, +"privateIp": { +"description": "Output only. The Cloud SQL database instance's private IP.", +"readOnly": true, +"type": "string" +}, +"publicIp": { +"description": "Output only. The Cloud SQL database instance's public IP.", +"readOnly": true, +"type": "string" +}, +"settings": { +"$ref": "CloudSqlSettings", +"description": "Immutable. Metadata used to create the destination Cloud SQL database." +} +}, +"type": "object" +}, +"CloudSqlSettings": { +"description": "Settings for creating a Cloud SQL database instance.", +"id": "CloudSqlSettings", +"properties": { +"activationPolicy": { +"description": "The activation policy specifies when the instance is activated; it is applicable only when the instance state is 'RUNNABLE'. Valid values: 'ALWAYS': The instance is on, and remains so even in the absence of connection requests. `NEVER`: The instance is off; it is not activated, even if a connection request arrives.", +"enum": [ +"SQL_ACTIVATION_POLICY_UNSPECIFIED", +"ALWAYS", +"NEVER" +], +"enumDescriptions": [ +"unspecified policy.", +"The instance is always up and running.", +"The instance should never spin up." +], +"type": "string" +}, +"autoStorageIncrease": { +"description": "[default: ON] If you enable this setting, Cloud SQL checks your available storage every 30 seconds. If the available storage falls below a threshold size, Cloud SQL automatically adds additional storage capacity. If the available storage repeatedly falls below the threshold size, Cloud SQL continues to add storage until it reaches the maximum of 30 TB.", +"type": "boolean" +}, +"dataDiskSizeGb": { +"description": "The storage capacity available to the database, in GB. The minimum (and default) size is 10GB.", +"format": "int64", +"type": "string" +}, +"dataDiskType": { +"description": "The type of storage: `PD_SSD` (default) or `PD_HDD`.", +"enum": [ +"SQL_DATA_DISK_TYPE_UNSPECIFIED", +"PD_SSD", +"PD_HDD" +], +"enumDescriptions": [ +"Unspecified.", +"SSD disk.", +"HDD disk." +], +"type": "string" +}, +"databaseFlags": { +"additionalProperties": { +"type": "string" +}, +"description": "The database flags passed to the Cloud SQL instance at startup. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.", +"type": "object" +}, +"databaseVersion": { +"description": "The database engine type and version.", +"enum": [ +"SQL_DATABASE_VERSION_UNSPECIFIED", +"MYSQL_5_6", +"MYSQL_5_7", +"MYSQL_8_0" +], +"enumDescriptions": [ +"Unspecified version.", +"MySQL 5.6.", +"MySQL 5.7.", +"MySQL 8.0." +], +"type": "string" +}, +"ipConfig": { +"$ref": "SqlIpConfig", +"description": "The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled." +}, +"rootPassword": { +"description": "Input only. Initial root password.", +"type": "string" +}, +"rootPasswordSet": { +"description": "Output only. Indicates If this connection profile root password is stored.", +"readOnly": true, +"type": "boolean" +}, +"sourceId": { +"description": "The Database Migration Service source connection profile ID, in the format: `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID`", +"type": "string" +}, +"storageAutoResizeLimit": { +"description": "The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.", +"format": "int64", +"type": "string" +}, +"tier": { +"description": "The tier (or machine type) for this instance, for example: `db-n1-standard-1` (MySQL instances). For more information, see [Cloud SQL Instance Settings](https://cloud.google.com/sql/docs/mysql/instance-settings).", +"type": "string" +}, +"userLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for a Cloud SQL instance to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"18kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"zone": { +"description": "The Google Cloud Platform zone where your Cloud SQL database instance is located.", +"type": "string" +} +}, +"type": "object" +}, +"ConnectionProfile": { +"description": "A connection profile definition.", +"id": "ConnectionProfile", +"properties": { +"cloudsql": { +"$ref": "CloudSqlConnectionProfile", +"description": "A CloudSQL database connection profile." +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The connection profile display name.", +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. The error details in case of state FAILED.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for connection profile to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"mysql": { +"$ref": "MySqlConnectionProfile", +"description": "A MySQL database connection profile." +}, +"name": { +"description": "The name of this connection profile resource in the form of projects/{project}/locations/{location}/connectionProfiles/{connectionProfile}.", +"type": "string" +}, +"provider": { +"description": "The database provider.", +"enum": [ +"DATABASE_PROVIDER_UNSPECIFIED", +"CLOUDSQL", +"RDS" +], +"enumDescriptions": [ +"The database provider is unknown.", +"CloudSQL runs the database.", +"RDS runs the database." +], +"type": "string" +}, +"state": { +"description": "The current connection profile state (e.g. DRAFT, READY, or FAILED).", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"DELETED", +"FAILED" +], +"enumDescriptions": [ +"The state of the connection profile is unknown.", +"The connection profile is in draft mode and fully editable.", +"The connection profile is being created.", +"The connection profile is ready.", +"The connection profile is being updated.", +"The connection profile is being deleted.", +"The connection profile has been deleted.", +"The last action on the connection profile failed." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was last updated. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DatabaseType": { +"description": "A message defining the database engine and provider.", +"id": "DatabaseType", +"properties": { +"engine": { +"description": "The database engine.", +"enum": [ +"DATABASE_ENGINE_UNSPECIFIED", +"MYSQL" +], +"enumDescriptions": [ +"The source database engine of the migration job is unknown.", +"The source engine is MySQL." +], +"type": "string" +}, +"provider": { +"description": "The database provider.", +"enum": [ +"DATABASE_PROVIDER_UNSPECIFIED", +"CLOUDSQL", +"RDS" +], +"enumDescriptions": [ +"The database provider is unknown.", +"CloudSQL runs the database.", +"RDS runs the database." +], +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GenerateSshScriptRequest": { +"description": "Request message for 'GenerateSshScript' request.", +"id": "GenerateSshScriptRequest", +"properties": { +"vm": { +"description": "Required. Bastion VM Instance name to use or to create.", +"type": "string" +}, +"vmCreationConfig": { +"$ref": "VmCreationConfig", +"description": "The VM creation configuration" +}, +"vmPort": { +"description": "The port that will be open on the bastion host", +"format": "int32", +"type": "integer" +}, +"vmSelectionConfig": { +"$ref": "VmSelectionConfig", +"description": "The VM selection configuration" +} +}, +"type": "object" +}, +"GoogleCloudClouddmsV1beta1OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudClouddmsV1beta1OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionProfilesResponse": { +"description": "Response message for 'ListConnectionProfiles' request.", +"id": "ListConnectionProfilesResponse", +"properties": { +"connectionProfiles": { +"description": "The response list of connection profiles.", +"items": { +"$ref": "ConnectionProfile" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListMigrationJobsResponse": { +"description": "Response message for 'ListMigrationJobs' request.", +"id": "ListMigrationJobsResponse", +"properties": { +"migrationJobs": { +"description": "The list of migration jobs objects.", +"items": { +"$ref": "MigrationJob" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MigrationJob": { +"description": "Represents a Database Migration Service migration job object.", +"id": "MigrationJob", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the migration job resource was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destination": { +"description": "Required. The resource name (URI) of the destination connection profile.", +"type": "string" +}, +"destinationDatabase": { +"$ref": "DatabaseType", +"description": "The database engine type and provider of the destination." +}, +"displayName": { +"description": "The migration job display name.", +"type": "string" +}, +"dumpPath": { +"description": "The path to the dump file in Google Cloud Storage, in the format: (gs://[BUCKET_NAME]/[OBJECT_NAME]).", +"type": "string" +}, +"duration": { +"description": "Output only. The duration of the migration job (in seconds). A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. If the migration job is completed, the time when it was completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. The error details in case of state FAILED.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for migration job to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.", +"type": "object" +}, +"name": { +"description": "The name (URI) of this migration job resource, in the form of: projects/{project}/locations/{location}/migrationJobs/{migrationJob}.", +"type": "string" +}, +"phase": { +"description": "Output only. The current migration job phase.", +"enum": [ +"PHASE_UNSPECIFIED", +"FULL_DUMP", +"CDC", +"PROMOTE_IN_PROGRESS", +"WAITING_FOR_SOURCE_WRITES_TO_STOP", +"PREPARING_THE_DUMP" +], +"enumDescriptions": [ +"The phase of the migration job is unknown.", +"The migration job is in the full dump phase.", +"The migration job is CDC phase.", +"The migration job is running the promote phase.", +"Only RDS flow - waiting for source writes to stop", +"Only RDS flow - the sources writes stopped, waiting for dump to begin" +], +"readOnly": true, +"type": "string" +}, +"reverseSshConnectivity": { +"$ref": "ReverseSshConnectivity", +"description": "The details needed to communicate to the source over Reverse SSH tunnel connectivity." +}, +"source": { +"description": "Required. The resource name (URI) of the source connection profile.", +"type": "string" +}, +"sourceDatabase": { +"$ref": "DatabaseType", +"description": "The database engine type and provider of the source." +}, +"state": { +"description": "The current migration job state.", +"enum": [ +"STATE_UNSPECIFIED", +"MAINTENANCE", +"DRAFT", +"CREATING", +"NOT_STARTED", +"RUNNING", +"FAILED", +"COMPLETED", +"DELETING", +"STOPPING", +"STOPPED", +"DELETED", +"UPDATING", +"STARTING", +"RESTARTING", +"RESUMING" +], +"enumDescriptions": [ +"The state of the migration job is unknown.", +"The migration job is down for maintenance.", +"The migration job is in draft mode and no resources are created.", +"The migration job is being created.", +"The migration job is created and not started.", +"The migration job is running.", +"The migration job failed.", +"The migration job has been completed.", +"The migration job is being deleted.", +"The migration job is being stopped.", +"The migration job is currently stopped.", +"The migration job has been deleted.", +"The migration job is being updated.", +"The migration job is starting.", +"The migration job is restarting.", +"The migration job is resuming." +], +"type": "string" +}, +"staticIpConnectivity": { +"$ref": "StaticIpConnectivity", +"description": "static ip connectivity data (default, no additional details needed)." +}, +"type": { +"description": "Required. The migration job type.", +"enum": [ +"TYPE_UNSPECIFIED", +"ONE_TIME", +"CONTINUOUS" +], +"enumDescriptions": [ +"The type of the migration job is unknown.", +"The migration job is a one time migration.", +"The migration job is a continuous migration." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the migration job resource was last updated. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vpcPeeringConnectivity": { +"$ref": "VpcPeeringConnectivity", +"description": "The details of the VPC network that the source database is located in." +} +}, +"type": "object" +}, +"MigrationJobVerificationError": { +"description": "Error message of a verification Migration job.", +"id": "MigrationJobVerificationError", +"properties": { +"errorCode": { +"description": "Output only. An instance of ErrorCode specifying the error that occurred.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"CONNECTION_FAILURE", +"AUTHENTICATION_FAILURE", +"INVALID_CONNECTION_PROFILE_CONFIG", +"VERSION_INCOMPATIBILITY", +"CONNECTION_PROFILE_TYPES_INCOMPATIBILITY", +"UNSUPPORTED_GTID_MODE", +"UNSUPPORTED_DEFINER", +"CANT_RESTART_RUNNING_MIGRATION", +"TABLES_WITH_LIMITED_SUPPORT", +"UNSUPPORTED_DATABASE_LOCALE", +"UNSUPPORTED_DATABASE_FDW_CONFIG", +"ERROR_RDBMS", +"SOURCE_SIZE_EXCEEDS_THRESHOLD", +"EXISTING_CONFLICTING_DATABASES", +"PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", +"EXISTING_DATA", +"SOURCE_MAX_SUBSCRIPTIONS" +], +"enumDescriptions": [ +"An unknown error occurred", +"We failed to connect to one of the connection profile.", +"We failed to authenticate to one of the connection profile.", +"One of the involved connection profiles has an invalid configuration.", +"The versions of the source and the destination are incompatible.", +"The types of the source and the destination are incompatible.", +"The gtid_mode is not supported, applicable for MySQL.", +"The definer is not supported.", +"Migration is already running at the time of restart request.", +"The source has tables with limited support. E.g. PostgreSQL tables without primary keys.", +"The source uses an unsupported locale.", +"The source uses an unsupported Foreign Data Wrapper configuration.", +"There was an underlying RDBMS error.", +"The source DB size in Bytes exceeds a certain threshold. The migration might require an increase of quota, or might not be supported.", +"The destination DB contains existing databases that are conflicting with those in the source DB.", +"Insufficient privilege to enable the parallelism configuration.", +"The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job.", +"The migration job is configured to use max number of subscriptions to migrate data from the source to the destination." +], +"readOnly": true, +"type": "string" +}, +"errorDetailMessage": { +"description": "Output only. A specific detailed error message, if supplied by the engine.", +"readOnly": true, +"type": "string" +}, +"errorMessage": { +"description": "Output only. A formatted message with further details about the error and a CTA.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MySqlConnectionProfile": { +"description": "Specifies connection parameters required specifically for MySQL databases.", +"id": "MySqlConnectionProfile", +"properties": { +"cloudSqlId": { +"description": "If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.", +"type": "string" +}, +"host": { +"description": "Required. The IP or hostname of the source MySQL database.", +"type": "string" +}, +"password": { +"description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", +"type": "string" +}, +"passwordSet": { +"description": "Output only. Indicates If this connection profile password is stored.", +"readOnly": true, +"type": "boolean" +}, +"port": { +"description": "Required. The network port of the source MySQL database.", +"format": "int32", +"type": "integer" +}, +"ssl": { +"$ref": "SslConfig", +"description": "SSL configuration for the destination to connect to the source database." +}, +"username": { +"description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PromoteMigrationJobRequest": { +"description": "Request message for 'PromoteMigrationJob' request.", +"id": "PromoteMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"RestartMigrationJobRequest": { +"description": "Request message for 'RestartMigrationJob' request.", +"id": "RestartMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"ResumeMigrationJobRequest": { +"description": "Request message for 'ResumeMigrationJob' request.", +"id": "ResumeMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"ReverseSshConnectivity": { +"description": "The details needed to configure a reverse SSH tunnel between the source and destination databases. These details will be used when calling the generateSshScript method (see https://cloud.google.com/database-migration/docs/reference/rest/v1beta1/projects.locations.migrationJobs/generateSshScript) to produce the script that will help set up the reverse SSH tunnel, and to set up the VPC peering between the Cloud SQL private network and the VPC.", +"id": "ReverseSshConnectivity", +"properties": { +"vm": { +"description": "The name of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.", +"type": "string" +}, +"vmIp": { +"description": "Required. The IP of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.", +"type": "string" +}, +"vmPort": { +"description": "Required. The forwarding port of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.", +"format": "int32", +"type": "integer" +}, +"vpc": { +"description": "The name of the VPC to peer with the Cloud SQL private network.", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SqlAclEntry": { +"description": "An entry for an Access Control list.", +"id": "SqlAclEntry", +"properties": { +"expireTime": { +"description": "The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example: `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +}, +"label": { +"description": "A label to identify this entry.", +"type": "string" +}, +"ttl": { +"description": "Input only. The time-to-leave of this access control entry.", +"format": "google-duration", +"type": "string" +}, +"value": { +"description": "The allowlisted value for the access control list.", +"type": "string" +} +}, +"type": "object" +}, +"SqlIpConfig": { +"description": "IP Management configuration.", +"id": "SqlIpConfig", +"properties": { +"authorizedNetworks": { +"description": "The list of external networks that are allowed to connect to the instance using the IP. See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as 'slash' notation (e.g. `192.168.100.0/24`).", +"items": { +"$ref": "SqlAclEntry" +}, +"type": "array" +}, +"enableIpv4": { +"description": "Whether the instance is assigned a public IP address or not.", +"type": "boolean" +}, +"privateNetwork": { +"description": "The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.", +"type": "string" +}, +"requireSsl": { +"description": "Whether SSL connections over IP should be enforced or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"SshScript": { +"description": "Response message for 'GenerateSshScript' request.", +"id": "SshScript", +"properties": { +"script": { +"description": "The ssh configuration script.", +"type": "string" +} +}, +"type": "object" +}, +"SslConfig": { +"description": "SSL configuration information.", +"id": "SslConfig", +"properties": { +"caCertificate": { +"description": "Required. Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate. The replica will use this certificate to verify it's connecting to the right host.", +"type": "string" +}, +"clientCertificate": { +"description": "Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.If this field is used then the 'client_key' field is mandatory.", +"type": "string" +}, +"clientKey": { +"description": "Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' field is mandatory.", +"type": "string" +}, +"type": { +"description": "Output only. The ssl config type according to 'client_key', 'client_certificate' and 'ca_certificate'.", +"enum": [ +"SSL_TYPE_UNSPECIFIED", +"SERVER_ONLY", +"SERVER_CLIENT" +], +"enumDescriptions": [ +"Unspecified.", +"Only 'ca_certificate' specified.", +"Both server ('ca_certificate'), and client ('client_key', 'client_certificate') specified." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"StartMigrationJobRequest": { +"description": "Request message for 'StartMigrationJob' request.", +"id": "StartMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"StaticIpConnectivity": { +"description": "The source database will allow incoming connections from the destination database's public IP. You can retrieve the Cloud SQL instance's public IP from the Cloud SQL console or using Cloud SQL APIs. No additional configuration is required.", +"id": "StaticIpConnectivity", +"properties": {}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopMigrationJobRequest": { +"description": "Request message for 'StopMigrationJob' request.", +"id": "StopMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VerifyMigrationJobRequest": { +"description": "Request message for 'VerifyMigrationJob' request.", +"id": "VerifyMigrationJobRequest", +"properties": {}, +"type": "object" +}, +"VmCreationConfig": { +"description": "VM creation configuration message", +"id": "VmCreationConfig", +"properties": { +"subnet": { +"description": "The subnet name the vm needs to be created in.", +"type": "string" +}, +"vmMachineType": { +"description": "Required. VM instance machine type to create.", +"type": "string" +}, +"vmZone": { +"description": "The Google Cloud Platform zone to create the VM in.", +"type": "string" +} +}, +"type": "object" +}, +"VmSelectionConfig": { +"description": "VM selection configuration message", +"id": "VmSelectionConfig", +"properties": { +"vmZone": { +"description": "Required. The Google Cloud Platform zone the VM is located.", +"type": "string" +} +}, +"type": "object" +}, +"VpcPeeringConnectivity": { +"description": "The details of the VPC where the source database is located in Google Cloud. We will use this information to set up the VPC peering connection between Cloud SQL and this VPC.", +"id": "VpcPeeringConnectivity", +"properties": { +"vpc": { +"description": "The name of the VPC network to peer with the Cloud SQL private network.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Database Migration API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastore.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastore.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e162c8691009cb8b730ad8175e98958719f41c6b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastore.v1.json @@ -0,0 +1,2758 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/datastore": { +"description": "View and manage your Google Cloud Datastore data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://datastore.googleapis.com/", +"batchPath": "batch", +"description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/datastore/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datastore:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datastore.mtls.googleapis.com/", +"name": "datastore", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"allocateIds": { +"description": "Allocates IDs for the given keys, which is useful for referencing an entity before it is inserted.", +"flatPath": "v1/projects/{projectId}:allocateIds", +"httpMethod": "POST", +"id": "datastore.projects.allocateIds", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:allocateIds", +"request": { +"$ref": "AllocateIdsRequest" +}, +"response": { +"$ref": "AllocateIdsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"beginTransaction": { +"description": "Begins a new transaction.", +"flatPath": "v1/projects/{projectId}:beginTransaction", +"httpMethod": "POST", +"id": "datastore.projects.beginTransaction", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:beginTransaction", +"request": { +"$ref": "BeginTransactionRequest" +}, +"response": { +"$ref": "BeginTransactionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"commit": { +"description": "Commits a transaction, optionally creating, deleting or modifying some entities.", +"flatPath": "v1/projects/{projectId}:commit", +"httpMethod": "POST", +"id": "datastore.projects.commit", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:commit", +"request": { +"$ref": "CommitRequest" +}, +"response": { +"$ref": "CommitResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"export": { +"description": "Exports a copy of all or a subset of entities from Google Cloud Datastore to another storage system, such as Google Cloud Storage. Recent updates to entities may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.", +"flatPath": "v1/projects/{projectId}:export", +"httpMethod": "POST", +"id": "datastore.projects.export", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:export", +"request": { +"$ref": "GoogleDatastoreAdminV1ExportEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"import": { +"description": "Imports entities into Google Cloud Datastore. Existing entities with the same key are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportEntities operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Datastore.", +"flatPath": "v1/projects/{projectId}:import", +"httpMethod": "POST", +"id": "datastore.projects.import", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:import", +"request": { +"$ref": "GoogleDatastoreAdminV1ImportEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"lookup": { +"description": "Looks up entities by key.", +"flatPath": "v1/projects/{projectId}:lookup", +"httpMethod": "POST", +"id": "datastore.projects.lookup", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:lookup", +"request": { +"$ref": "LookupRequest" +}, +"response": { +"$ref": "LookupResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"reserveIds": { +"description": "Prevents the supplied keys' IDs from being auto-allocated by Cloud Datastore.", +"flatPath": "v1/projects/{projectId}:reserveIds", +"httpMethod": "POST", +"id": "datastore.projects.reserveIds", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:reserveIds", +"request": { +"$ref": "ReserveIdsRequest" +}, +"response": { +"$ref": "ReserveIdsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"rollback": { +"description": "Rolls back a transaction.", +"flatPath": "v1/projects/{projectId}:rollback", +"httpMethod": "POST", +"id": "datastore.projects.rollback", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:rollback", +"request": { +"$ref": "RollbackRequest" +}, +"response": { +"$ref": "RollbackResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"runAggregationQuery": { +"description": "Runs an aggregation query.", +"flatPath": "v1/projects/{projectId}:runAggregationQuery", +"httpMethod": "POST", +"id": "datastore.projects.runAggregationQuery", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:runAggregationQuery", +"request": { +"$ref": "RunAggregationQueryRequest" +}, +"response": { +"$ref": "RunAggregationQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"runQuery": { +"description": "Queries for entities.", +"flatPath": "v1/projects/{projectId}:runQuery", +"httpMethod": "POST", +"id": "datastore.projects.runQuery", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the project against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}:runQuery", +"request": { +"$ref": "RunQueryRequest" +}, +"response": { +"$ref": "RunQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +}, +"resources": { +"indexes": { +"methods": { +"create": { +"description": "Creates the specified index. A newly created index's initial state is `CREATING`. On completion of the returned google.longrunning.Operation, the state will be `READY`. If the index already exists, the call will return an `ALREADY_EXISTS` status. During index creation, the process could result in an error, in which case the index will move to the `ERROR` state. The process can be recovered by fixing the data that caused the error, removing the index with delete, then re-creating the index with create. Indexes with a single property cannot be created.", +"flatPath": "v1/projects/{projectId}/indexes", +"httpMethod": "POST", +"id": "datastore.projects.indexes.create", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/indexes", +"request": { +"$ref": "GoogleDatastoreAdminV1Index" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes an existing index. An index can only be deleted if it is in a `READY` or `ERROR` state. On successful execution of the request, the index will be in a `DELETING` state. And on completion of the returned google.longrunning.Operation, the index will be removed. During index deletion, the process could result in an error, in which case the index will move to the `ERROR` state. The process can be recovered by fixing the data that caused the error, followed by calling delete again.", +"flatPath": "v1/projects/{projectId}/indexes/{indexId}", +"httpMethod": "DELETE", +"id": "datastore.projects.indexes.delete", +"parameterOrder": [ +"projectId", +"indexId" +], +"parameters": { +"indexId": { +"description": "The resource ID of the index to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/indexes/{indexId}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets an index.", +"flatPath": "v1/projects/{projectId}/indexes/{indexId}", +"httpMethod": "GET", +"id": "datastore.projects.indexes.get", +"parameterOrder": [ +"projectId", +"indexId" +], +"parameters": { +"indexId": { +"description": "The resource ID of the index to get.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/indexes/{indexId}", +"response": { +"$ref": "GoogleDatastoreAdminV1Index" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists the indexes that match the specified filters. Datastore uses an eventually consistent query to fetch the list of indexes and may occasionally return stale results.", +"flatPath": "v1/projects/{projectId}/indexes", +"httpMethod": "GET", +"id": "datastore.projects.indexes.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"filter": { +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return. If zero, then all results will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/indexes", +"response": { +"$ref": "GoogleDatastoreAdminV1ListIndexesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "datastore.projects.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "datastore.projects.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "datastore.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/operations", +"httpMethod": "GET", +"id": "datastore.projects.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://datastore.googleapis.com/", +"schemas": { +"Aggregation": { +"description": "Defines an aggregation that produces a single result.", +"id": "Aggregation", +"properties": { +"alias": { +"description": "Optional. Optional name of the property to store the result of the aggregation. If not provided, Datastore will pick a default name following the format `property_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS property_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) AS property_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to entity property name limitations.", +"type": "string" +}, +"avg": { +"$ref": "Avg", +"description": "Average aggregator." +}, +"count": { +"$ref": "Count", +"description": "Count aggregator." +}, +"sum": { +"$ref": "Sum", +"description": "Sum aggregator." +} +}, +"type": "object" +}, +"AggregationQuery": { +"description": "Datastore query for running an aggregation over a Query.", +"id": "AggregationQuery", +"properties": { +"aggregations": { +"description": "Optional. Series of aggregations to apply over the results of the `nested_query`. Requires: * A minimum of one and maximum of five aggregations per query.", +"items": { +"$ref": "Aggregation" +}, +"type": "array" +}, +"nestedQuery": { +"$ref": "Query", +"description": "Nested query for aggregation" +} +}, +"type": "object" +}, +"AggregationResult": { +"description": "The result of a single bucket from a Datastore aggregation query. The keys of `aggregate_properties` are the same for all results in an aggregation query, unlike entity queries which can have different fields present for each result.", +"id": "AggregationResult", +"properties": { +"aggregateProperties": { +"additionalProperties": { +"$ref": "Value" +}, +"description": "The result of the aggregation functions, ex: `COUNT(*) AS total_entities`. The key is the alias assigned to the aggregation function on input and the size of this map equals the number of aggregation functions in the query.", +"type": "object" +} +}, +"type": "object" +}, +"AggregationResultBatch": { +"description": "A batch of aggregation results produced by an aggregation query.", +"id": "AggregationResultBatch", +"properties": { +"aggregationResults": { +"description": "The aggregation results for this batch.", +"items": { +"$ref": "AggregationResult" +}, +"type": "array" +}, +"moreResults": { +"description": "The state of the query after the current batch. Only COUNT(*) aggregations are supported in the initial launch. Therefore, expected result type is limited to `NO_MORE_RESULTS`.", +"enum": [ +"MORE_RESULTS_TYPE_UNSPECIFIED", +"NOT_FINISHED", +"MORE_RESULTS_AFTER_LIMIT", +"MORE_RESULTS_AFTER_CURSOR", +"NO_MORE_RESULTS" +], +"enumDescriptions": [ +"Unspecified. This value is never used.", +"There may be additional batches to fetch from this query.", +"The query is finished, but there may be more results after the limit.", +"The query is finished, but there may be more results after the end cursor.", +"The query is finished, and there are no more results." +], +"type": "string" +}, +"readTime": { +"description": "Read timestamp this batch was returned from. In a single transaction, subsequent query result batches for the same query can have a greater timestamp. Each batch's read timestamp is valid for all preceding batches.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"AllocateIdsRequest": { +"description": "The request for Datastore.AllocateIds.", +"id": "AllocateIdsRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"keys": { +"description": "Required. A list of keys with incomplete key paths for which to allocate IDs. No key may be reserved/read-only.", +"items": { +"$ref": "Key" +}, +"type": "array" +} +}, +"type": "object" +}, +"AllocateIdsResponse": { +"description": "The response for Datastore.AllocateIds.", +"id": "AllocateIdsResponse", +"properties": { +"keys": { +"description": "The keys specified in the request (in the same order), each with its key path completed with a newly allocated ID.", +"items": { +"$ref": "Key" +}, +"type": "array" +} +}, +"type": "object" +}, +"ArrayValue": { +"description": "An array value.", +"id": "ArrayValue", +"properties": { +"values": { +"description": "Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'.", +"items": { +"$ref": "Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"Avg": { +"description": "Average of the values of the requested property. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns `NULL`. * Always returns the result as a double.", +"id": "Avg", +"properties": { +"property": { +"$ref": "PropertyReference", +"description": "The property to aggregate on." +} +}, +"type": "object" +}, +"BeginTransactionRequest": { +"description": "The request for Datastore.BeginTransaction.", +"id": "BeginTransactionRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"transactionOptions": { +"$ref": "TransactionOptions", +"description": "Options for a new transaction." +} +}, +"type": "object" +}, +"BeginTransactionResponse": { +"description": "The response for Datastore.BeginTransaction.", +"id": "BeginTransactionResponse", +"properties": { +"transaction": { +"description": "The transaction identifier (always present).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"CommitRequest": { +"description": "The request for Datastore.Commit.", +"id": "CommitRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"mode": { +"description": "The type of commit to perform. Defaults to `TRANSACTIONAL`.", +"enum": [ +"MODE_UNSPECIFIED", +"TRANSACTIONAL", +"NON_TRANSACTIONAL" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"Transactional: The mutations are either all applied, or none are applied. Learn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).", +"Non-transactional: The mutations may not apply as all or none." +], +"type": "string" +}, +"mutations": { +"description": "The mutations to perform. When mode is `TRANSACTIONAL`, mutations affecting a single entity are applied in order. The following sequences of mutations affecting a single entity are not permitted in a single `Commit` request: - `insert` followed by `insert` - `update` followed by `insert` - `upsert` followed by `insert` - `delete` followed by `update` When mode is `NON_TRANSACTIONAL`, no two mutations may affect a single entity.", +"items": { +"$ref": "Mutation" +}, +"type": "array" +}, +"singleUseTransaction": { +"$ref": "TransactionOptions", +"description": "Options for beginning a new transaction for this request. The transaction is committed when the request completes. If specified, TransactionOptions.mode must be TransactionOptions.ReadWrite." +}, +"transaction": { +"description": "The identifier of the transaction associated with the commit. A transaction identifier is returned by a call to Datastore.BeginTransaction.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"CommitResponse": { +"description": "The response for Datastore.Commit.", +"id": "CommitResponse", +"properties": { +"commitTime": { +"description": "The transaction commit timestamp. Not set for non-transactional commits.", +"format": "google-datetime", +"type": "string" +}, +"indexUpdates": { +"description": "The number of index entries updated during the commit, or zero if none were updated.", +"format": "int32", +"type": "integer" +}, +"mutationResults": { +"description": "The result of performing the mutations. The i-th mutation result corresponds to the i-th mutation in the request.", +"items": { +"$ref": "MutationResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompositeFilter": { +"description": "A filter that merges multiple other filters using the given operator.", +"id": "CompositeFilter", +"properties": { +"filters": { +"description": "The list of filters to combine. Requires: * At least one filter is present.", +"items": { +"$ref": "Filter" +}, +"type": "array" +}, +"op": { +"description": "The operator for combining multiple filters.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"AND", +"OR" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"The results are required to satisfy each of the combined filters.", +"Documents are required to satisfy at least one of the combined filters." +], +"type": "string" +} +}, +"type": "object" +}, +"Count": { +"description": "Count of entities that match the query. The `COUNT(*)` aggregation function operates on the entire entity so it does not require a field reference.", +"id": "Count", +"properties": { +"upTo": { +"description": "Optional. Optional constraint on the maximum number of entities to count. This provides a way to set an upper bound on the number of entities to scan, limiting latency, and cost. Unspecified is interpreted as no bound. If a zero value is provided, a count result of zero should always be expected. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be non-negative when present.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Entity": { +"description": "A Datastore data object. Must not exceed 1 MiB - 4 bytes.", +"id": "Entity", +"properties": { +"key": { +"$ref": "Key", +"description": "The entity's key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity's kind is its key path's last element's kind, or null if it has no key." +}, +"properties": { +"additionalProperties": { +"$ref": "Value" +}, +"description": "The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.", +"type": "object" +} +}, +"type": "object" +}, +"EntityResult": { +"description": "The result of fetching an entity from Datastore.", +"id": "EntityResult", +"properties": { +"createTime": { +"description": "The time at which the entity was created. This field is set for `FULL` entity results. If this entity is missing, this field will not be set.", +"format": "google-datetime", +"type": "string" +}, +"cursor": { +"description": "A cursor that points to the position after the result entity. Set only when the `EntityResult` is part of a `QueryResultBatch` message.", +"format": "byte", +"type": "string" +}, +"entity": { +"$ref": "Entity", +"description": "The resulting entity." +}, +"updateTime": { +"description": "The time at which the entity was last changed. This field is set for `FULL` entity results. If this entity is missing, this field will not be set.", +"format": "google-datetime", +"type": "string" +}, +"version": { +"description": "The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ExecutionStats": { +"description": "Execution statistics for the query.", +"id": "ExecutionStats", +"properties": { +"debugStats": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Debugging statistics from the execution of the query. Note that the debugging stats are subject to change as Firestore evolves. It could include: { \"indexes_entries_scanned\": \"1000\", \"documents_scanned\": \"20\", \"billing_details\" : { \"documents_billable\": \"20\", \"index_entries_billable\": \"1000\", \"min_query_cost\": \"0\" } }", +"type": "object" +}, +"executionDuration": { +"description": "Total time to execute the query in the backend.", +"format": "google-duration", +"type": "string" +}, +"readOperations": { +"description": "Total billable read operations.", +"format": "int64", +"type": "string" +}, +"resultsReturned": { +"description": "Total number of results returned, including documents, projections, aggregation results, keys.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ExplainMetrics": { +"description": "Explain metrics for the query.", +"id": "ExplainMetrics", +"properties": { +"executionStats": { +"$ref": "ExecutionStats", +"description": "Aggregated stats from the execution of the query. Only present when ExplainOptions.analyze is set to true." +}, +"planSummary": { +"$ref": "PlanSummary", +"description": "Planning phase information for the query." +} +}, +"type": "object" +}, +"ExplainOptions": { +"description": "Explain options for the query.", +"id": "ExplainOptions", +"properties": { +"analyze": { +"description": "Optional. Whether to execute this query. When false (the default), the query will be planned, returning only metrics from the planning stages. When true, the query will be planned and executed, returning the full query results along with both planning and execution stage metrics.", +"type": "boolean" +} +}, +"type": "object" +}, +"Filter": { +"description": "A holder for any type of filter.", +"id": "Filter", +"properties": { +"compositeFilter": { +"$ref": "CompositeFilter", +"description": "A composite filter." +}, +"propertyFilter": { +"$ref": "PropertyFilter", +"description": "A filter on a property." +} +}, +"type": "object" +}, +"FindNearest": { +"description": "Nearest Neighbors search config. The ordering provided by FindNearest supersedes the order_by stage. If multiple documents have the same vector distance, the returned document order is not guaranteed to be stable between queries.", +"id": "FindNearest", +"properties": { +"distanceMeasure": { +"description": "Required. The Distance Measure to use, required.", +"enum": [ +"DISTANCE_MEASURE_UNSPECIFIED", +"EUCLIDEAN", +"COSINE", +"DOT_PRODUCT" +], +"enumDescriptions": [ +"Should not be set.", +"Measures the EUCLIDEAN distance between the vectors. See [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn more. The resulting distance decreases the more similar two vectors are.", +"COSINE distance compares vectors based on the angle between them, which allows you to measure similarity that isn't based on the vectors magnitude. We recommend using DOT_PRODUCT with unit normalized vectors instead of COSINE distance, which is mathematically equivalent with better performance. See [Cosine Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn more about COSINE similarity and COSINE distance. The resulting COSINE distance decreases the more similar two vectors are.", +"Similar to cosine but is affected by the magnitude of the vectors. See [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more. The resulting distance increases the more similar two vectors are." +], +"type": "string" +}, +"distanceResultProperty": { +"description": "Optional. Optional name of the field to output the result of the vector distance calculation. Must conform to entity property limitations.", +"type": "string" +}, +"distanceThreshold": { +"description": "Optional. Option to specify a threshold for which no less similar documents will be returned. The behavior of the specified `distance_measure` will affect the meaning of the distance threshold. Since DOT_PRODUCT distances increase when the vectors are more similar, the comparison is inverted. * For EUCLIDEAN, COSINE: WHERE distance <= distance_threshold * For DOT_PRODUCT: WHERE distance >= distance_threshold", +"format": "double", +"type": "number" +}, +"limit": { +"description": "Required. The number of nearest neighbors to return. Must be a positive integer of no more than 100.", +"format": "int32", +"type": "integer" +}, +"queryVector": { +"$ref": "Value", +"description": "Required. The query vector that we are searching on. Must be a vector of no more than 2048 dimensions." +}, +"vectorProperty": { +"$ref": "PropertyReference", +"description": "Required. An indexed vector property to search upon. Only documents which contain vectors whose dimensionality match the query_vector can be returned." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1CommonMetadata": { +"description": "Metadata common to all Datastore Admin operations.", +"id": "GoogleDatastoreAdminV1CommonMetadata", +"properties": { +"endTime": { +"description": "The time the operation ended, either successfully or otherwise.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The client-assigned labels which were provided when the operation was created. May also include additional labels.", +"type": "object" +}, +"operationType": { +"description": "The type of the operation. Can be used as a filter in ListOperationsRequest.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"EXPORT_ENTITIES", +"IMPORT_ENTITIES", +"CREATE_INDEX", +"DELETE_INDEX" +], +"enumDescriptions": [ +"Unspecified.", +"ExportEntities.", +"ImportEntities.", +"CreateIndex.", +"DeleteIndex." +], +"type": "string" +}, +"startTime": { +"description": "The time that work began on the operation.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the Operation.", +"enum": [ +"STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1DatastoreFirestoreMigrationMetadata": { +"description": "Metadata for Datastore to Firestore migration operations. The DatastoreFirestoreMigration operation is not started by the end-user via an explicit \"creation\" method. This is an intentional deviation from the LRO design pattern. This singleton resource can be accessed at: \"projects/{project_id}/operations/datastore-firestore-migration\"", +"id": "GoogleDatastoreAdminV1DatastoreFirestoreMigrationMetadata", +"properties": { +"migrationState": { +"description": "The current state of migration from Cloud Datastore to Cloud Firestore in Datastore mode.", +"enum": [ +"MIGRATION_STATE_UNSPECIFIED", +"RUNNING", +"PAUSED", +"COMPLETE" +], +"enumDescriptions": [ +"Unspecified.", +"The migration is running.", +"The migration is paused.", +"The migration is complete." +], +"type": "string" +}, +"migrationStep": { +"description": "The current step of migration from Cloud Datastore to Cloud Firestore in Datastore mode.", +"enum": [ +"MIGRATION_STEP_UNSPECIFIED", +"PREPARE", +"START", +"APPLY_WRITES_SYNCHRONOUSLY", +"COPY_AND_VERIFY", +"REDIRECT_EVENTUALLY_CONSISTENT_READS", +"REDIRECT_STRONGLY_CONSISTENT_READS", +"REDIRECT_WRITES" +], +"enumDescriptions": [ +"Unspecified.", +"Pre-migration: the database is prepared for migration.", +"Start of migration.", +"Writes are applied synchronously to at least one replica.", +"Data is copied to Cloud Firestore and then verified to match the data in Cloud Datastore.", +"Eventually-consistent reads are redirected to Cloud Firestore.", +"Strongly-consistent reads are redirected to Cloud Firestore.", +"Writes are redirected to Cloud Firestore." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1EntityFilter": { +"description": "Identifies a subset of entities in a project. This is specified as combinations of kinds and namespaces (either or both of which may be all, as described in the following examples). Example usage: Entire project: kinds=[], namespace_ids=[] Kinds Foo and Bar in all namespaces: kinds=['Foo', 'Bar'], namespace_ids=[] Kinds Foo and Bar only in the default namespace: kinds=['Foo', 'Bar'], namespace_ids=[''] Kinds Foo and Bar in both the default and Baz namespaces: kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz'] The entire Baz namespace: kinds=[], namespace_ids=['Baz']", +"id": "GoogleDatastoreAdminV1EntityFilter", +"properties": { +"kinds": { +"description": "If empty, then this represents all kinds.", +"items": { +"type": "string" +}, +"type": "array" +}, +"namespaceIds": { +"description": "An empty list represents all namespaces. This is the preferred usage for projects that don't use namespaces. An empty string element represents the default namespace. This should be used if the project has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ExportEntitiesMetadata": { +"description": "Metadata for ExportEntities operations.", +"id": "GoogleDatastoreAdminV1ExportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1EntityFilter", +"description": "Description of which entities are being exported." +}, +"outputUrlPrefix": { +"description": "Location for the export metadata and data files. This will be the same value as the google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix field. The final output location is provided in google.datastore.admin.v1.ExportEntitiesResponse.output_url.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ExportEntitiesRequest": { +"description": "The request for google.datastore.admin.v1.DatastoreAdmin.ExportEntities.", +"id": "GoogleDatastoreAdminV1ExportEntitiesRequest", +"properties": { +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1EntityFilter", +"description": "Description of what data from the project is included in the export." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Client-assigned labels.", +"type": "object" +}, +"outputUrlPrefix": { +"description": "Required. Location for the export metadata and data files. The full resource URL of the external storage location. Currently, only Google Cloud Storage is supported. So output_url_prefix should be of the form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud Storage namespace path (this is not a Cloud Datastore namespace). For more information about Cloud Storage namespace paths, see [Object name considerations](https://cloud.google.com/storage/docs/naming#object-considerations). The resulting files will be nested deeper than the specified URL prefix. The final output URL will be provided in the google.datastore.admin.v1.ExportEntitiesResponse.output_url field. That value should be used for subsequent ImportEntities operations. By nesting the data files deeper, the same Cloud Storage bucket can be used in multiple ExportEntities operations without conflict.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ExportEntitiesResponse": { +"description": "The response for google.datastore.admin.v1.DatastoreAdmin.ExportEntities.", +"id": "GoogleDatastoreAdminV1ExportEntitiesResponse", +"properties": { +"outputUrl": { +"description": "Location of the output metadata file. This can be used to begin an import into Cloud Datastore (this project or another project). See google.datastore.admin.v1.ImportEntitiesRequest.input_url. Only present if the operation completed successfully.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ImportEntitiesMetadata": { +"description": "Metadata for ImportEntities operations.", +"id": "GoogleDatastoreAdminV1ImportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1EntityFilter", +"description": "Description of which entities are being imported." +}, +"inputUrl": { +"description": "The location of the import metadata file. This will be the same value as the google.datastore.admin.v1.ExportEntitiesResponse.output_url field.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ImportEntitiesRequest": { +"description": "The request for google.datastore.admin.v1.DatastoreAdmin.ImportEntities.", +"id": "GoogleDatastoreAdminV1ImportEntitiesRequest", +"properties": { +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1EntityFilter", +"description": "Optionally specify which kinds/namespaces are to be imported. If provided, the list must be a subset of the EntityFilter used in creating the export, otherwise a FAILED_PRECONDITION error will be returned. If no filter is specified then all entities from the export are imported." +}, +"inputUrl": { +"description": "Required. The full resource URL of the external storage location. Currently, only Google Cloud Storage is supported. So input_url should be of the form: `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is an optional Cloud Storage namespace path (this is not a Cloud Datastore namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written by the ExportEntities operation. For more information about Cloud Storage namespace paths, see [Object name considerations](https://cloud.google.com/storage/docs/naming#object-considerations). For more information, see google.datastore.admin.v1.ExportEntitiesResponse.output_url.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Client-assigned labels.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1Index": { +"description": "Datastore composite index definition.", +"id": "GoogleDatastoreAdminV1Index", +"properties": { +"ancestor": { +"description": "Required. The index's ancestor mode. Must not be ANCESTOR_MODE_UNSPECIFIED.", +"enum": [ +"ANCESTOR_MODE_UNSPECIFIED", +"NONE", +"ALL_ANCESTORS" +], +"enumDescriptions": [ +"The ancestor mode is unspecified.", +"Do not include the entity's ancestors in the index.", +"Include all the entity's ancestors in the index." +], +"type": "string" +}, +"indexId": { +"description": "Output only. The resource ID of the index.", +"readOnly": true, +"type": "string" +}, +"kind": { +"description": "Required. The entity kind to which this index applies.", +"type": "string" +}, +"projectId": { +"description": "Output only. Project ID.", +"readOnly": true, +"type": "string" +}, +"properties": { +"description": "Required. An ordered sequence of property names and their index attributes. Requires: * A maximum of 100 properties.", +"items": { +"$ref": "GoogleDatastoreAdminV1IndexedProperty" +}, +"type": "array" +}, +"state": { +"description": "Output only. The state of the index.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"The state is unspecified.", +"The index is being created, and cannot be used by queries. There is an active long-running operation for the index. The index is updated when writing an entity. Some index data may exist.", +"The index is ready to be used. The index is updated when writing an entity. The index is fully populated from all stored entities it applies to.", +"The index is being deleted, and cannot be used by queries. There is an active long-running operation for the index. The index is not updated when writing an entity. Some index data may exist.", +"The index was being created or deleted, but something went wrong. The index cannot by used by queries. There is no active long-running operation for the index, and the most recently finished long-running operation failed. The index is not updated when writing an entity. Some index data may exist." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1IndexOperationMetadata": { +"description": "Metadata for Index operations.", +"id": "GoogleDatastoreAdminV1IndexOperationMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"indexId": { +"description": "The index resource ID that this operation is acting on.", +"type": "string" +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1IndexedProperty": { +"description": "A property of an index.", +"id": "GoogleDatastoreAdminV1IndexedProperty", +"properties": { +"direction": { +"description": "Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED.", +"enum": [ +"DIRECTION_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"The direction is unspecified.", +"The property's values are indexed so as to support sequencing in ascending order and also query by <, >, <=, >=, and =.", +"The property's values are indexed so as to support sequencing in descending order and also query by <, >, <=, >=, and =." +], +"type": "string" +}, +"name": { +"description": "Required. The property name to index.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ListIndexesResponse": { +"description": "The response for google.datastore.admin.v1.DatastoreAdmin.ListIndexes.", +"id": "GoogleDatastoreAdminV1ListIndexesResponse", +"properties": { +"indexes": { +"description": "The indexes.", +"items": { +"$ref": "GoogleDatastoreAdminV1Index" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1MigrationProgressEvent": { +"description": "An event signifying the start of a new step in a [migration from Cloud Datastore to Cloud Firestore in Datastore mode](https://cloud.google.com/datastore/docs/upgrade-to-firestore).", +"id": "GoogleDatastoreAdminV1MigrationProgressEvent", +"properties": { +"prepareStepDetails": { +"$ref": "GoogleDatastoreAdminV1PrepareStepDetails", +"description": "Details for the `PREPARE` step." +}, +"redirectWritesStepDetails": { +"$ref": "GoogleDatastoreAdminV1RedirectWritesStepDetails", +"description": "Details for the `REDIRECT_WRITES` step." +}, +"step": { +"description": "The step that is starting. An event with step set to `START` indicates that the migration has been reverted back to the initial pre-migration state.", +"enum": [ +"MIGRATION_STEP_UNSPECIFIED", +"PREPARE", +"START", +"APPLY_WRITES_SYNCHRONOUSLY", +"COPY_AND_VERIFY", +"REDIRECT_EVENTUALLY_CONSISTENT_READS", +"REDIRECT_STRONGLY_CONSISTENT_READS", +"REDIRECT_WRITES" +], +"enumDescriptions": [ +"Unspecified.", +"Pre-migration: the database is prepared for migration.", +"Start of migration.", +"Writes are applied synchronously to at least one replica.", +"Data is copied to Cloud Firestore and then verified to match the data in Cloud Datastore.", +"Eventually-consistent reads are redirected to Cloud Firestore.", +"Strongly-consistent reads are redirected to Cloud Firestore.", +"Writes are redirected to Cloud Firestore." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1MigrationStateEvent": { +"description": "An event signifying a change in state of a [migration from Cloud Datastore to Cloud Firestore in Datastore mode](https://cloud.google.com/datastore/docs/upgrade-to-firestore).", +"id": "GoogleDatastoreAdminV1MigrationStateEvent", +"properties": { +"state": { +"description": "The new state of the migration.", +"enum": [ +"MIGRATION_STATE_UNSPECIFIED", +"RUNNING", +"PAUSED", +"COMPLETE" +], +"enumDescriptions": [ +"Unspecified.", +"The migration is running.", +"The migration is paused.", +"The migration is complete." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1PrepareStepDetails": { +"description": "Details for the `PREPARE` step.", +"id": "GoogleDatastoreAdminV1PrepareStepDetails", +"properties": { +"concurrencyMode": { +"description": "The concurrency mode this database will use when it reaches the `REDIRECT_WRITES` step.", +"enum": [ +"CONCURRENCY_MODE_UNSPECIFIED", +"PESSIMISTIC", +"OPTIMISTIC", +"OPTIMISTIC_WITH_ENTITY_GROUPS" +], +"enumDescriptions": [ +"Unspecified.", +"Pessimistic concurrency.", +"Optimistic concurrency.", +"Optimistic concurrency with entity groups." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1Progress": { +"description": "Measures the progress of a particular metric.", +"id": "GoogleDatastoreAdminV1Progress", +"properties": { +"workCompleted": { +"description": "The amount of work that has been completed. Note that this may be greater than work_estimated.", +"format": "int64", +"type": "string" +}, +"workEstimated": { +"description": "An estimate of how much work needs to be performed. May be zero if the work estimate is unavailable.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1RedirectWritesStepDetails": { +"description": "Details for the `REDIRECT_WRITES` step.", +"id": "GoogleDatastoreAdminV1RedirectWritesStepDetails", +"properties": { +"concurrencyMode": { +"description": "Ths concurrency mode for this database.", +"enum": [ +"CONCURRENCY_MODE_UNSPECIFIED", +"PESSIMISTIC", +"OPTIMISTIC", +"OPTIMISTIC_WITH_ENTITY_GROUPS" +], +"enumDescriptions": [ +"Unspecified.", +"Pessimistic concurrency.", +"Optimistic concurrency.", +"Optimistic concurrency with entity groups." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1CommonMetadata": { +"description": "Metadata common to all Datastore Admin operations.", +"id": "GoogleDatastoreAdminV1beta1CommonMetadata", +"properties": { +"endTime": { +"description": "The time the operation ended, either successfully or otherwise.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The client-assigned labels which were provided when the operation was created. May also include additional labels.", +"type": "object" +}, +"operationType": { +"description": "The type of the operation. Can be used as a filter in ListOperationsRequest.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"EXPORT_ENTITIES", +"IMPORT_ENTITIES" +], +"enumDescriptions": [ +"Unspecified.", +"ExportEntities.", +"ImportEntities." +], +"type": "string" +}, +"startTime": { +"description": "The time that work began on the operation.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the Operation.", +"enum": [ +"STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1EntityFilter": { +"description": "Identifies a subset of entities in a project. This is specified as combinations of kinds and namespaces (either or both of which may be all, as described in the following examples). Example usage: Entire project: kinds=[], namespace_ids=[] Kinds Foo and Bar in all namespaces: kinds=['Foo', 'Bar'], namespace_ids=[] Kinds Foo and Bar only in the default namespace: kinds=['Foo', 'Bar'], namespace_ids=[''] Kinds Foo and Bar in both the default and Baz namespaces: kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz'] The entire Baz namespace: kinds=[], namespace_ids=['Baz']", +"id": "GoogleDatastoreAdminV1beta1EntityFilter", +"properties": { +"kinds": { +"description": "If empty, then this represents all kinds.", +"items": { +"type": "string" +}, +"type": "array" +}, +"namespaceIds": { +"description": "An empty list represents all namespaces. This is the preferred usage for projects that don't use namespaces. An empty string element represents the default namespace. This should be used if the project has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { +"description": "Metadata for ExportEntities operations.", +"id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1beta1EntityFilter", +"description": "Description of which entities are being exported." +}, +"outputUrlPrefix": { +"description": "Location for the export metadata and data files. This will be the same value as the google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix field. The final output location is provided in google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ExportEntitiesResponse": { +"description": "The response for google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", +"id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse", +"properties": { +"outputUrl": { +"description": "Location of the output metadata file. This can be used to begin an import into Cloud Datastore (this project or another project). See google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url. Only present if the operation completed successfully.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { +"description": "Metadata for ImportEntities operations.", +"id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1beta1EntityFilter", +"description": "Description of which entities are being imported." +}, +"inputUrl": { +"description": "The location of the import metadata file. This will be the same value as the google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url field.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1Progress": { +"description": "Measures the progress of a particular metric.", +"id": "GoogleDatastoreAdminV1beta1Progress", +"properties": { +"workCompleted": { +"description": "The amount of work that has been completed. Note that this may be greater than work_estimated.", +"format": "int64", +"type": "string" +}, +"workEstimated": { +"description": "An estimate of how much work needs to be performed. May be zero if the work estimate is unavailable.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GqlQuery": { +"description": "A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", +"id": "GqlQuery", +"properties": { +"allowLiterals": { +"description": "When false, the query string must not contain any literals and instead must bind all values. For example, `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while `SELECT * FROM Kind WHERE a = @value` is.", +"type": "boolean" +}, +"namedBindings": { +"additionalProperties": { +"$ref": "GqlQueryParameter" +}, +"description": "For each non-reserved named binding site in the query string, there must be a named parameter with that name, but not necessarily the inverse. Key must match regex `A-Za-z_$*`, must not match regex `__.*__`, and must not be `\"\"`.", +"type": "object" +}, +"positionalBindings": { +"description": "Numbered binding site @1 references the first numbered parameter, effectively using 1-based indexing, rather than the usual 0. For each binding site numbered i in `query_string`, there must be an i-th numbered parameter. The inverse must also be true.", +"items": { +"$ref": "GqlQueryParameter" +}, +"type": "array" +}, +"queryString": { +"description": "A string of the format described [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", +"type": "string" +} +}, +"type": "object" +}, +"GqlQueryParameter": { +"description": "A binding parameter for a GQL query.", +"id": "GqlQueryParameter", +"properties": { +"cursor": { +"description": "A query cursor. Query cursors are returned in query result batches.", +"format": "byte", +"type": "string" +}, +"value": { +"$ref": "Value", +"description": "A value parameter." +} +}, +"type": "object" +}, +"Key": { +"description": "A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts.", +"id": "Key", +"properties": { +"partitionId": { +"$ref": "PartitionId", +"description": "Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition." +}, +"path": { +"description": "The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.", +"items": { +"$ref": "PathElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"KindExpression": { +"description": "A representation of a kind.", +"id": "KindExpression", +"properties": { +"name": { +"description": "The name of the kind.", +"type": "string" +} +}, +"type": "object" +}, +"LatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "LatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LookupRequest": { +"description": "The request for Datastore.Lookup.", +"id": "LookupRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"keys": { +"description": "Required. Keys of entities to look up.", +"items": { +"$ref": "Key" +}, +"type": "array" +}, +"propertyMask": { +"$ref": "PropertyMask", +"description": "The properties to return. Defaults to returning all properties. If this field is set and an entity has a property not referenced in the mask, it will be absent from LookupResponse.found.entity.properties. The entity's key is always returned." +}, +"readOptions": { +"$ref": "ReadOptions", +"description": "The options for this lookup request." +} +}, +"type": "object" +}, +"LookupResponse": { +"description": "The response for Datastore.Lookup.", +"id": "LookupResponse", +"properties": { +"deferred": { +"description": "A list of keys that were not looked up due to resource constraints. The order of results in this field is undefined and has no relation to the order of the keys in the input.", +"items": { +"$ref": "Key" +}, +"type": "array" +}, +"found": { +"description": "Entities found as `ResultType.FULL` entities. The order of results in this field is undefined and has no relation to the order of the keys in the input.", +"items": { +"$ref": "EntityResult" +}, +"type": "array" +}, +"missing": { +"description": "Entities not found as `ResultType.KEY_ONLY` entities. The order of results in this field is undefined and has no relation to the order of the keys in the input.", +"items": { +"$ref": "EntityResult" +}, +"type": "array" +}, +"readTime": { +"description": "The time at which these entities were read or found missing.", +"format": "google-datetime", +"type": "string" +}, +"transaction": { +"description": "The identifier of the transaction that was started as part of this Lookup request. Set only when ReadOptions.new_transaction was set in LookupRequest.read_options.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Mutation": { +"description": "A mutation to apply to an entity.", +"id": "Mutation", +"properties": { +"baseVersion": { +"description": "The version of the entity that this mutation is being applied to. If this does not match the current version on the server, the mutation conflicts.", +"format": "int64", +"type": "string" +}, +"conflictResolutionStrategy": { +"description": "The strategy to use when a conflict is detected. Defaults to `SERVER_VALUE`. If this is set, then `conflict_detection_strategy` must also be set.", +"enum": [ +"STRATEGY_UNSPECIFIED", +"SERVER_VALUE", +"FAIL" +], +"enumDescriptions": [ +"Unspecified. Defaults to `SERVER_VALUE`.", +"The server entity is kept.", +"The whole commit request fails." +], +"type": "string" +}, +"delete": { +"$ref": "Key", +"description": "The key of the entity to delete. The entity may or may not already exist. Must have a complete key path and must not be reserved/read-only." +}, +"insert": { +"$ref": "Entity", +"description": "The entity to insert. The entity must not already exist. The entity key's final path element may be incomplete." +}, +"propertyMask": { +"$ref": "PropertyMask", +"description": "The properties to write in this mutation. None of the properties in the mask may have a reserved name, except for `__key__`. This field is ignored for `delete`. If the entity already exists, only properties referenced in the mask are updated, others are left untouched. Properties referenced in the mask but not in the entity are deleted." +}, +"propertyTransforms": { +"description": "Optional. The transforms to perform on the entity. This field can be set only when the operation is `insert`, `update`, or `upsert`. If present, the transforms are be applied to the entity regardless of the property mask, in order, after the operation.", +"items": { +"$ref": "PropertyTransform" +}, +"type": "array" +}, +"update": { +"$ref": "Entity", +"description": "The entity to update. The entity must already exist. Must have a complete key path." +}, +"updateTime": { +"description": "The update time of the entity that this mutation is being applied to. If this does not match the current update time on the server, the mutation conflicts.", +"format": "google-datetime", +"type": "string" +}, +"upsert": { +"$ref": "Entity", +"description": "The entity to upsert. The entity may or may not already exist. The entity key's final path element may be incomplete." +} +}, +"type": "object" +}, +"MutationResult": { +"description": "The result of applying a mutation.", +"id": "MutationResult", +"properties": { +"conflictDetected": { +"description": "Whether a conflict was detected for this mutation. Always false when a conflict detection strategy field is not set in the mutation.", +"type": "boolean" +}, +"createTime": { +"description": "The create time of the entity. This field will not be set after a 'delete'.", +"format": "google-datetime", +"type": "string" +}, +"key": { +"$ref": "Key", +"description": "The automatically allocated key. Set only when the mutation allocated a key." +}, +"transformResults": { +"description": "The results of applying each PropertyTransform, in the same order of the request.", +"items": { +"$ref": "Value" +}, +"type": "array" +}, +"updateTime": { +"description": "The update time of the entity on the server after processing the mutation. If the mutation doesn't change anything on the server, then the timestamp will be the update timestamp of the current entity. This field will not be set after a 'delete'.", +"format": "google-datetime", +"type": "string" +}, +"version": { +"description": "The version of the entity on the server after processing the mutation. If the mutation doesn't change anything on the server, then the version will be the version of the current entity or, if no entity is present, a version that is strictly greater than the version of any previous entity and less than the version of any possible future entity.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PartitionId": { +"description": "A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `\"\"`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\\d\\.\\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state.", +"id": "PartitionId", +"properties": { +"databaseId": { +"description": "If not empty, the ID of the database to which the entities belong.", +"type": "string" +}, +"namespaceId": { +"description": "If not empty, the ID of the namespace to which the entities belong.", +"type": "string" +}, +"projectId": { +"description": "The ID of the project to which the entities belong.", +"type": "string" +} +}, +"type": "object" +}, +"PathElement": { +"description": "A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.", +"id": "PathElement", +"properties": { +"id": { +"description": "The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.", +"format": "int64", +"type": "string" +}, +"kind": { +"description": "The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`. Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are encoded as `__bytes__` where `` is the base-64 encoding of the bytes.", +"type": "string" +}, +"name": { +"description": "The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`. Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are encoded as `__bytes__` where `` is the base-64 encoding of the bytes.", +"type": "string" +} +}, +"type": "object" +}, +"PlanSummary": { +"description": "Planning phase information for the query.", +"id": "PlanSummary", +"properties": { +"indexesUsed": { +"description": "The indexes selected for the query. For example: [ {\"query_scope\": \"Collection\", \"properties\": \"(foo ASC, __name__ ASC)\"}, {\"query_scope\": \"Collection\", \"properties\": \"(bar ASC, __name__ ASC)\"} ]", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"Projection": { +"description": "A representation of a property in a projection.", +"id": "Projection", +"properties": { +"property": { +"$ref": "PropertyReference", +"description": "The property to project." +} +}, +"type": "object" +}, +"PropertyFilter": { +"description": "A filter on a specific property.", +"id": "PropertyFilter", +"properties": { +"op": { +"description": "The operator to filter by.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"LESS_THAN", +"LESS_THAN_OR_EQUAL", +"GREATER_THAN", +"GREATER_THAN_OR_EQUAL", +"EQUAL", +"IN", +"NOT_EQUAL", +"HAS_ANCESTOR", +"NOT_IN" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"The given `property` is less than the given `value`. Requires: * That `property` comes first in `order_by`.", +"The given `property` is less than or equal to the given `value`. Requires: * That `property` comes first in `order_by`.", +"The given `property` is greater than the given `value`. Requires: * That `property` comes first in `order_by`.", +"The given `property` is greater than or equal to the given `value`. Requires: * That `property` comes first in `order_by`.", +"The given `property` is equal to the given `value`.", +"The given `property` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No `NOT_IN` is in the same query.", +"The given `property` is not equal to the given `value`. Requires: * No other `NOT_EQUAL` or `NOT_IN` is in the same query. * That `property` comes first in the `order_by`.", +"Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key. * All evaluated disjunctions must have the same `HAS_ANCESTOR` filter.", +"The value of the `property` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `OR`, `IN`, `NOT_IN`, `NOT_EQUAL` is in the same query. * That `field` comes first in the `order_by`." +], +"type": "string" +}, +"property": { +"$ref": "PropertyReference", +"description": "The property to filter by." +}, +"value": { +"$ref": "Value", +"description": "The value to compare the property to." +} +}, +"type": "object" +}, +"PropertyMask": { +"description": "The set of arbitrarily nested property paths used to restrict an operation to only a subset of properties in an entity.", +"id": "PropertyMask", +"properties": { +"paths": { +"description": "The paths to the properties covered by this mask. A path is a list of property names separated by dots (`.`), for example `foo.bar` means the property `bar` inside the entity property `foo` inside the entity associated with this path. If a property name contains a dot `.` or a backslash `\\`, then that name must be escaped. A path must not be empty, and may not reference a value inside an array value.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PropertyOrder": { +"description": "The desired order for a specific property.", +"id": "PropertyOrder", +"properties": { +"direction": { +"description": "The direction to order by. Defaults to `ASCENDING`.", +"enum": [ +"DIRECTION_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"Ascending.", +"Descending." +], +"type": "string" +}, +"property": { +"$ref": "PropertyReference", +"description": "The property to order by." +} +}, +"type": "object" +}, +"PropertyReference": { +"description": "A reference to a property relative to the kind expressions.", +"id": "PropertyReference", +"properties": { +"name": { +"description": "A reference to a property. Requires: * MUST be a dot-delimited (`.`) string of segments, where each segment conforms to entity property name limitations.", +"type": "string" +} +}, +"type": "object" +}, +"PropertyTransform": { +"description": "A transformation of an entity property.", +"id": "PropertyTransform", +"properties": { +"appendMissingElements": { +"$ref": "ArrayValue", +"description": "Appends the given elements in order if they are not already present in the current property value. If the property is not an array, or if the property does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and the null value is equal to the null value. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform result will be the null value." +}, +"increment": { +"$ref": "Value", +"description": "Adds the given value to the property's current value. This must be an integer or a double value. If the property is not an integer or double, or if the property does not yet exist, the transformation will set the property to the given value. If either of the given value or the current property value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follows IEEE 754 semantics. If there is positive/negative integer overflow, the property is resolved to the largest magnitude positive/negative integer." +}, +"maximum": { +"$ref": "Value", +"description": "Sets the property to the maximum of its current value and the given value. This must be an integer or a double value. If the property is not an integer or double, or if the property does not yet exist, the transformation will set the property to the given value. If a maximum operation is applied where the property and the input value are of mixed types (that is - one is an integer and one is a double) the property takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the property does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN." +}, +"minimum": { +"$ref": "Value", +"description": "Sets the property to the minimum of its current value and the given value. This must be an integer or a double value. If the property is not an integer or double, or if the property does not yet exist, the transformation will set the property to the input value. If a minimum operation is applied where the property and the input value are of mixed types (that is - one is an integer and one is a double) the property takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the property does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN." +}, +"property": { +"description": "Optional. The name of the property. Property paths (a list of property names separated by dots (`.`)) may be used to refer to properties inside entity values. For example `foo.bar` means the property `bar` inside the entity property `foo`. If a property name contains a dot `.` or a backlslash `\\`, then that name must be escaped.", +"type": "string" +}, +"removeAllFromArray": { +"$ref": "ArrayValue", +"description": "Removes all of the given elements from the array in the property. If the property is not an array, or if the property does not yet exist, it is set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and the null value is equal to the null value. This will remove all equivalent values if there are duplicates. The corresponding transform result will be the null value." +}, +"setToServerValue": { +"description": "Sets the property to the given server value.", +"enum": [ +"SERVER_VALUE_UNSPECIFIED", +"REQUEST_TIME" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"The time at which the server processed the request, with millisecond precision. If used on multiple properties (same or different entities) in a transaction, all the properties will get the same server timestamp." +], +"type": "string" +} +}, +"type": "object" +}, +"Query": { +"description": "A query for entities. The query stages are executed in the following order: 1. kind 2. filter 3. projection 4. order + start_cursor + end_cursor 5. offset 6. limit 7. find_nearest", +"id": "Query", +"properties": { +"distinctOn": { +"description": "The properties to make distinct. The query results will contain the first result for each distinct combination of values for the given properties (if empty, all results are returned). Requires: * If `order` is specified, the set of distinct on properties must appear before the non-distinct on properties in `order`.", +"items": { +"$ref": "PropertyReference" +}, +"type": "array" +}, +"endCursor": { +"description": "An ending point for the query results. Query cursors are returned in query result batches and [can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", +"format": "byte", +"type": "string" +}, +"filter": { +"$ref": "Filter", +"description": "The filter to apply." +}, +"findNearest": { +"$ref": "FindNearest", +"description": "Optional. A potential Nearest Neighbors Search. Applies after all other filters and ordering. Finds the closest vector embeddings to the given query vector." +}, +"kind": { +"description": "The kinds to query (if empty, returns entities of all kinds). Currently at most 1 kind may be specified.", +"items": { +"$ref": "KindExpression" +}, +"type": "array" +}, +"limit": { +"description": "The maximum number of results to return. Applies after all other constraints. Optional. Unspecified is interpreted as no limit. Must be >= 0 if specified.", +"format": "int32", +"type": "integer" +}, +"offset": { +"description": "The number of results to skip. Applies before limit, but after all other constraints. Optional. Must be >= 0 if specified.", +"format": "int32", +"type": "integer" +}, +"order": { +"description": "The order to apply to the query results (if empty, order is unspecified).", +"items": { +"$ref": "PropertyOrder" +}, +"type": "array" +}, +"projection": { +"description": "The projection to return. Defaults to returning all properties.", +"items": { +"$ref": "Projection" +}, +"type": "array" +}, +"startCursor": { +"description": "A starting point for the query results. Query cursors are returned in query result batches and [can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"QueryResultBatch": { +"description": "A batch of results produced by a query.", +"id": "QueryResultBatch", +"properties": { +"endCursor": { +"description": "A cursor that points to the position after the last result in the batch.", +"format": "byte", +"type": "string" +}, +"entityResultType": { +"description": "The result type for every entity in `entity_results`.", +"enum": [ +"RESULT_TYPE_UNSPECIFIED", +"FULL", +"PROJECTION", +"KEY_ONLY" +], +"enumDescriptions": [ +"Unspecified. This value is never used.", +"The key and properties.", +"A projected subset of properties. The entity may have no key.", +"Only the key." +], +"type": "string" +}, +"entityResults": { +"description": "The results for this batch.", +"items": { +"$ref": "EntityResult" +}, +"type": "array" +}, +"moreResults": { +"description": "The state of the query after the current batch.", +"enum": [ +"MORE_RESULTS_TYPE_UNSPECIFIED", +"NOT_FINISHED", +"MORE_RESULTS_AFTER_LIMIT", +"MORE_RESULTS_AFTER_CURSOR", +"NO_MORE_RESULTS" +], +"enumDescriptions": [ +"Unspecified. This value is never used.", +"There may be additional batches to fetch from this query.", +"The query is finished, but there may be more results after the limit.", +"The query is finished, but there may be more results after the end cursor.", +"The query is finished, and there are no more results." +], +"type": "string" +}, +"readTime": { +"description": "Read timestamp this batch was returned from. This applies to the range of results from the query's `start_cursor` (or the beginning of the query if no cursor was given) to this batch's `end_cursor` (not the query's `end_cursor`). In a single transaction, subsequent query result batches for the same query can have a greater timestamp. Each batch's read timestamp is valid for all preceding batches. This value will not be set for eventually consistent queries in Cloud Datastore.", +"format": "google-datetime", +"type": "string" +}, +"skippedCursor": { +"description": "A cursor that points to the position after the last skipped result. Will be set when `skipped_results` != 0.", +"format": "byte", +"type": "string" +}, +"skippedResults": { +"description": "The number of results skipped, typically because of an offset.", +"format": "int32", +"type": "integer" +}, +"snapshotVersion": { +"description": "The version number of the snapshot this batch was returned from. This applies to the range of results from the query's `start_cursor` (or the beginning of the query if no cursor was given) to this batch's `end_cursor` (not the query's `end_cursor`). In a single transaction, subsequent query result batches for the same query can have a greater snapshot version number. Each batch's snapshot version is valid for all preceding batches. The value will be zero for eventually consistent queries.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReadOnly": { +"description": "Options specific to read-only transactions.", +"id": "ReadOnly", +"properties": { +"readTime": { +"description": "Reads entities at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ReadOptions": { +"description": "The options shared by read requests.", +"id": "ReadOptions", +"properties": { +"newTransaction": { +"$ref": "TransactionOptions", +"description": "Options for beginning a new transaction for this request. The new transaction identifier will be returned in the corresponding response as either LookupResponse.transaction or RunQueryResponse.transaction." +}, +"readConsistency": { +"description": "The non-transactional read consistency to use.", +"enum": [ +"READ_CONSISTENCY_UNSPECIFIED", +"STRONG", +"EVENTUAL" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"Strong consistency.", +"Eventual consistency." +], +"type": "string" +}, +"readTime": { +"description": "Reads entities as they were at the given time. This value is only supported for Cloud Firestore in Datastore mode. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +}, +"transaction": { +"description": "The identifier of the transaction in which to read. A transaction identifier is returned by a call to Datastore.BeginTransaction.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ReadWrite": { +"description": "Options specific to read / write transactions.", +"id": "ReadWrite", +"properties": { +"previousTransaction": { +"description": "The transaction identifier of the transaction being retried.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ReserveIdsRequest": { +"description": "The request for Datastore.ReserveIds.", +"id": "ReserveIdsRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"keys": { +"description": "Required. A list of keys with complete key paths whose numeric IDs should not be auto-allocated.", +"items": { +"$ref": "Key" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReserveIdsResponse": { +"description": "The response for Datastore.ReserveIds.", +"id": "ReserveIdsResponse", +"properties": {}, +"type": "object" +}, +"RollbackRequest": { +"description": "The request for Datastore.Rollback.", +"id": "RollbackRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"transaction": { +"description": "Required. The transaction identifier, returned by a call to Datastore.BeginTransaction.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RollbackResponse": { +"description": "The response for Datastore.Rollback. (an empty message).", +"id": "RollbackResponse", +"properties": {}, +"type": "object" +}, +"RunAggregationQueryRequest": { +"description": "The request for Datastore.RunAggregationQuery.", +"id": "RunAggregationQueryRequest", +"properties": { +"aggregationQuery": { +"$ref": "AggregationQuery", +"description": "The query to run." +}, +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"explainOptions": { +"$ref": "ExplainOptions", +"description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." +}, +"gqlQuery": { +"$ref": "GqlQuery", +"description": "The GQL query to run. This query must be an aggregation query." +}, +"partitionId": { +"$ref": "PartitionId", +"description": "Entities are partitioned into subsets, identified by a partition ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID." +}, +"readOptions": { +"$ref": "ReadOptions", +"description": "The options for this query." +} +}, +"type": "object" +}, +"RunAggregationQueryResponse": { +"description": "The response for Datastore.RunAggregationQuery.", +"id": "RunAggregationQueryResponse", +"properties": { +"batch": { +"$ref": "AggregationResultBatch", +"description": "A batch of aggregation results. Always present." +}, +"explainMetrics": { +"$ref": "ExplainMetrics", +"description": "Query explain metrics. This is only present when the RunAggregationQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." +}, +"query": { +"$ref": "AggregationQuery", +"description": "The parsed form of the `GqlQuery` from the request, if it was set." +}, +"transaction": { +"description": "The identifier of the transaction that was started as part of this RunAggregationQuery request. Set only when ReadOptions.new_transaction was set in RunAggregationQueryRequest.read_options.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RunQueryRequest": { +"description": "The request for Datastore.RunQuery.", +"id": "RunQueryRequest", +"properties": { +"databaseId": { +"description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", +"type": "string" +}, +"explainOptions": { +"$ref": "ExplainOptions", +"description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." +}, +"gqlQuery": { +"$ref": "GqlQuery", +"description": "The GQL query to run. This query must be a non-aggregation query." +}, +"partitionId": { +"$ref": "PartitionId", +"description": "Entities are partitioned into subsets, identified by a partition ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID." +}, +"propertyMask": { +"$ref": "PropertyMask", +"description": "The properties to return. This field must not be set for a projection query. See LookupRequest.property_mask." +}, +"query": { +"$ref": "Query", +"description": "The query to run." +}, +"readOptions": { +"$ref": "ReadOptions", +"description": "The options for this query." +} +}, +"type": "object" +}, +"RunQueryResponse": { +"description": "The response for Datastore.RunQuery.", +"id": "RunQueryResponse", +"properties": { +"batch": { +"$ref": "QueryResultBatch", +"description": "A batch of query results (always present)." +}, +"explainMetrics": { +"$ref": "ExplainMetrics", +"description": "Query explain metrics. This is only present when the RunQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." +}, +"query": { +"$ref": "Query", +"description": "The parsed form of the `GqlQuery` from the request, if it was set." +}, +"transaction": { +"description": "The identifier of the transaction that was started as part of this RunQuery request. Set only when ReadOptions.new_transaction was set in RunQueryRequest.read_options.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Sum": { +"description": "Sum of the values of the requested property. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns 0. * Returns a 64-bit integer if all aggregated numbers are integers and the sum result does not overflow. Otherwise, the result is returned as a double. Note that even if all the aggregated values are integers, the result is returned as a double if it cannot fit within a 64-bit signed integer. When this occurs, the returned value will lose precision. * When underflow occurs, floating-point aggregation is non-deterministic. This means that running the same query repeatedly without any changes to the underlying values could produce slightly different results each time. In those cases, values should be stored as integers over floating-point numbers.", +"id": "Sum", +"properties": { +"property": { +"$ref": "PropertyReference", +"description": "The property to aggregate on." +} +}, +"type": "object" +}, +"TransactionOptions": { +"description": "Options for beginning a new transaction. Transactions can be created explicitly with calls to Datastore.BeginTransaction or implicitly by setting ReadOptions.new_transaction in read requests.", +"id": "TransactionOptions", +"properties": { +"readOnly": { +"$ref": "ReadOnly", +"description": "The transaction should only allow reads." +}, +"readWrite": { +"$ref": "ReadWrite", +"description": "The transaction should allow both reads and writes." +} +}, +"type": "object" +}, +"Value": { +"description": "A message that can hold any of the supported value types and associated metadata.", +"id": "Value", +"properties": { +"arrayValue": { +"$ref": "ArrayValue", +"description": "An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`." +}, +"blobValue": { +"description": "A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.", +"format": "byte", +"type": "string" +}, +"booleanValue": { +"description": "A boolean value.", +"type": "boolean" +}, +"doubleValue": { +"description": "A double value.", +"format": "double", +"type": "number" +}, +"entityValue": { +"$ref": "Entity", +"description": "An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key." +}, +"excludeFromIndexes": { +"description": "If the value should be excluded from all indexes including those defined explicitly.", +"type": "boolean" +}, +"geoPointValue": { +"$ref": "LatLng", +"description": "A geo point value representing a point on the surface of Earth." +}, +"integerValue": { +"description": "An integer value.", +"format": "int64", +"type": "string" +}, +"keyValue": { +"$ref": "Key", +"description": "A key value." +}, +"meaning": { +"description": "The `meaning` field should only be populated for backwards compatibility.", +"format": "int32", +"type": "integer" +}, +"nullValue": { +"description": "A null value.", +"enum": [ +"NULL_VALUE" +], +"enumDescriptions": [ +"Null value." +], +"type": "string" +}, +"stringValue": { +"description": "A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.", +"type": "string" +}, +"timestampValue": { +"description": "A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Datastore API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dialogflow.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dialogflow.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..4611a27166011afbaddc451d29643de01de77e5e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dialogflow.v2.json @@ -0,0 +1,22674 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/dialogflow": { +"description": "View, manage and query your Dialogflow agents" +} +} +} +}, +"basePath": "", +"baseUrl": "https://dialogflow.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Dialogflow", +"description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dialogflow/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "dialogflow:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dialogflow.mtls.googleapis.com/", +"name": "dialogflow", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"deleteAgent": { +"description": "Deletes the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent", +"httpMethod": "DELETE", +"id": "dialogflow.projects.deleteAgent", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to delete is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getAgent": { +"description": "Retrieves the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent", +"httpMethod": "GET", +"id": "dialogflow.projects.getAgent", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to fetch is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent", +"response": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"setAgent": { +"description": "Creates/updates the specified agent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent", +"httpMethod": "POST", +"id": "dialogflow.projects.setAgent", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project of this agent. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/agent", +"request": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"agent": { +"methods": { +"export": { +"description": "Exports the specified agent to a ZIP file. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: ExportAgentResponse", +"flatPath": "v2/projects/{projectsId}/agent:export", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to export is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:export", +"request": { +"$ref": "GoogleCloudDialogflowV2ExportAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getFulfillment": { +"description": "Retrieves the fulfillment.", +"flatPath": "v2/projects/{projectsId}/agent/fulfillment", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.getFulfillment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the fulfillment. Format: `projects//agent/fulfillment`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/fulfillment$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Fulfillment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getValidationResult": { +"description": "Gets agent validation result. Agent validation is performed during training time and is updated automatically when training is completed.", +"flatPath": "v2/projects/{projectsId}/agent/validationResult", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.getValidationResult", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "Optional. The language for which you want a validation result. If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project that the agent is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent/validationResult", +"response": { +"$ref": "GoogleCloudDialogflowV2ValidationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Imports the specified agent from a ZIP file. Uploads new intents and entity types without deleting the existing ones. Intents and entity types with the same name are replaced with the new versions from ImportAgentRequest. After the import, the imported draft agent will be trained automatically (unless disabled in agent settings). However, once the import is done, training may not be completed yet. Please call TrainAgent and wait for the operation it returns in order to train explicitly. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) The operation only tracks when importing is complete, not when it is done training. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent:import", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to import is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:import", +"request": { +"$ref": "GoogleCloudDialogflowV2ImportAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"restore": { +"description": "Restores the specified agent from a ZIP file. Replaces the current agent version with a new one. All the intents and entity types in the older version are deleted. After the restore, the restored draft agent will be trained automatically (unless disabled in agent settings). However, once the restore is done, training may not be completed yet. Please call TrainAgent and wait for the operation it returns in order to train explicitly. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) The operation only tracks when restoring is complete, not when it is done training. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent:restore", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.restore", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to restore is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:restore", +"request": { +"$ref": "GoogleCloudDialogflowV2RestoreAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"search": { +"description": "Returns the list of agents. Since there is at most one conversational agent per project, this method is useful primarily for listing all agents across projects the caller has access to. One can achieve that with a wildcard project collection id \"-\". Refer to [List Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).", +"flatPath": "v2/projects/{projectsId}/agent:search", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list agents from. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:search", +"response": { +"$ref": "GoogleCloudDialogflowV2SearchAgentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"train": { +"description": "Trains the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent:train", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.train", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to train is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:train", +"request": { +"$ref": "GoogleCloudDialogflowV2TrainAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"updateFulfillment": { +"description": "Updates the fulfillment.", +"flatPath": "v2/projects/{projectsId}/agent/fulfillment", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.updateFulfillment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.", +"location": "path", +"pattern": "^projects/[^/]+/agent/fulfillment$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Fulfillment" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Fulfillment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"entityTypes": { +"methods": { +"batchDelete": { +"description": "Deletes entity types in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.entityTypes.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to delete all entities types for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchUpdate": { +"description": "Updates/Creates multiple entity types in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: BatchUpdateEntityTypesResponse Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes:batchUpdate", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.entityTypes.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to update or create entity types in. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes:batchUpdate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates an entity type in the specified agent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a entity type for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified entity type. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified entity type.", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the entity type. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all entity types in the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all entity types from. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowV2ListEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified entity type. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes methods. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"entities": { +"methods": { +"batchCreate": { +"description": "Creates multiple new entities in the specified entity type. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes/{entityTypesId}/entities:batchCreate", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.entityTypes.entities.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the entity type to create entities in. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entities:batchCreate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchCreateEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchDelete": { +"description": "Deletes entities in the specified entity type. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes/{entityTypesId}/entities:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.entityTypes.entities.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the entity type to delete entries for. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entities:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchDeleteEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchUpdate": { +"description": "Updates or creates multiple entities in the specified entity type. This method does not affect entities in the entity type that aren't explicitly specified in the request. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training). ", +"flatPath": "v2/projects/{projectsId}/agent/entityTypes/{entityTypesId}/entities:batchUpdate", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.entityTypes.entities.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the entity type to update or create entities in. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entities:batchUpdate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchUpdateEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"environments": { +"methods": { +"create": { +"description": "Creates an agent environment.", +"flatPath": "v2/projects/{projectsId}/agent/environments", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"environmentId": { +"description": "Required. The unique id of the new environment.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create an environment for. Supported formats: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/environments", +"request": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified agent environment.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the environment to delete. / Format: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified agent environment.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getHistory": { +"description": "Gets the history of the specified environment.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/history", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.getHistory", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the environment to retrieve history for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/history", +"response": { +"$ref": "GoogleCloudDialogflowV2EnvironmentHistory" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all non-default environments of the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent/environments", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all environments from. Format: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/environments", +"response": { +"$ref": "GoogleCloudDialogflowV2ListEnvironmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment continues serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use \"-\" as Environment ID in environment name to update an agent version in the default environment. WARNING: this will negate all recent changes to the draft agent and can't be undone. You may want to save the draft agent to a version before calling this method.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.environments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowLoadToDraftAndDiscardChanges": { +"description": "Optional. This field is used to prevent accidental overwrite of the default environment, which is an operation that cannot be undone. To confirm that the caller desires this overwrite, this field must be explicitly set to true when updating the default environment (environment ID = `-`).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"intents": { +"methods": { +"list": { +"description": "Returns the list of all intents in the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/intents", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.intents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all intents from. Format: `projects//agent` or `projects//locations//agent`. Alternatively, you can specify the environment to list intents for. Format: `projects//agent/environments/` or `projects//locations//agent/environments/`. Note: training phrases of the intents will not be returned for non-draft environment.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListIntentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"users": { +"resources": { +"sessions": { +"methods": { +"deleteContexts": { +"description": "Deletes all active contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.environments.users.sessions.deleteContexts", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the session to delete all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"detectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) or other CCAI products now or in the future, consider using AnalyzeContent instead of `DetectIntent`. `AnalyzeContent` has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}:detectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.environments.users.sessions.detectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment (`Environment ID` might be referred to as environment name at some places). If `User ID` is not specified, we are using \"-\". It's up to the API caller to choose an appropriate `Session ID` and `User Id`. They can be a random number or some type of user and session identifiers (preferably hashed). The length of the `Session ID` and `User ID` must not exceed 36 characters. For more information, see the [API interactions guide](https://cloud.google.com/dialogflow/docs/api-overview). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+session}:detectIntent", +"request": { +"$ref": "GoogleCloudDialogflowV2DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"contexts": { +"methods": { +"create": { +"description": "Creates a context. If the specified context already exists, overrides the context.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.environments.users.sessions.contexts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a context for. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified context.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.environments.users.sessions.contexts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context to delete. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified context.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.users.sessions.contexts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.users.sessions.contexts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleCloudDialogflowV2ListContextsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified context.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.environments.users.sessions.contexts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"entityTypes": { +"methods": { +"create": { +"description": "Creates a session entity type. If the specified session entity type already exists, overrides the session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.environments.users.sessions.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a session entity type for. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.environments.users.sessions.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.users.sessions.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all session entity types in the specified session. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.environments.users.sessions.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all session entity types from. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowV2ListSessionEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.environments.users.sessions.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of this session entity type. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"location": "path", +"pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +} +} +} +} +}, +"intents": { +"methods": { +"batchDelete": { +"description": "Deletes intents in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/intents:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.intents.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to delete all entities types for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchDeleteIntentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchUpdate": { +"description": "Updates/Creates multiple intents in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: BatchUpdateIntentsResponse Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/intents:batchUpdate", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.intents.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to update or create intents in. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents:batchUpdate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchUpdateIntentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates an intent in the specified agent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/intents", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.intents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a intent for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents", +"request": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified intent and its direct or indirect followup intents. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/intents/{intentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.intents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the intent to delete. If this intent has direct or indirect followup intents, we also delete them. Format: `projects//agent/intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/intents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified intent.", +"flatPath": "v2/projects/{projectsId}/agent/intents/{intentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.intents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the intent. Format: `projects//agent/intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/intents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all intents in the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent/intents", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.intents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all intents from. Format: `projects//agent` or `projects//locations//agent`. Alternatively, you can specify the environment to list intents for. Format: `projects//agent/environments/` or `projects//locations//agent/environments/`. Note: training phrases of the intents will not be returned for non-draft environment.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListIntentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified intent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/agent/intents/{intentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.intents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format: `projects//agent/intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/intents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"knowledgeBases": { +"methods": { +"create": { +"description": "Creates a knowledge base.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.knowledgeBases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to create a knowledge base for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/knowledgeBases", +"request": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.knowledgeBases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. Force deletes the knowledge base. When set to true, any documents in the knowledge base are also deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the knowledge base to delete. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.knowledgeBases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the knowledge base to retrieve. Format `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all knowledge bases of the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.knowledgeBases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter knowledge bases returned by the list method. The expression has the following syntax: [AND ] ... The following fields and operators are supported: * display_name with has(:) operator * language_code with equals(=) operator Examples: * 'language_code=en-us' matches knowledge bases with en-us language code. * 'display_name:articles' matches knowledge bases whose display name contains \"articles\". * 'display_name:\"Best Articles\"' matches knowledge bases whose display name contains \"Best Articles\". * 'language_code=en-gb AND display_name=articles' matches all knowledge bases whose display name contains \"articles\" and whose language code is \"en-gb\". Note: An empty filter string (i.e. \"\") is a no-op and will result in no filtering. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 10 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list of knowledge bases for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/knowledgeBases", +"response": { +"$ref": "GoogleCloudDialogflowV2ListKnowledgeBasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.knowledgeBases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The knowledge base resource name. The name must be empty when creating a knowledge base. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Not specified means `update all`. Currently, only `display_name` can be updated, an InvalidArgument will be returned for attempting to update other fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"documents": { +"methods": { +"create": { +"description": "Creates a new document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.knowledgeBases.documents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The knowledge base to create a document for. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents", +"request": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.knowledgeBases.documents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to delete. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified document.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.knowledgeBases.documents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to retrieve. Format `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all documents of the knowledge base.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.knowledgeBases.documents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter documents returned by the list method. The expression has the following syntax: [AND ] ... The following fields and operators are supported: * knowledge_types with has(:) operator * display_name with has(:) operator * state with equals(=) operator Examples: * \"knowledge_types:FAQ\" matches documents with FAQ knowledge type. * \"display_name:customer\" matches documents whose display name contains \"customer\". * \"state=ACTIVE\" matches documents with ACTIVE state. * \"knowledge_types:FAQ AND state=ACTIVE\" matches all active FAQ documents. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 10 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The knowledge base to list all documents for. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.knowledgeBases.documents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The document resource name. The name must be empty when creating a document. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Not specified means `update all`. Currently, only `display_name` can be updated, an InvalidArgument will be returned for attempting to update other fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"reload": { +"description": "Reloads the specified document from its specified source, content_uri or content. The previously loaded content of the document will be deleted. Note: Even when the content of the document has not changed, there still may be side effects because of internal implementation changes. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; only use `projects.knowledgeBases.documents`.", +"flatPath": "v2/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}:reload", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.knowledgeBases.documents.reload", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to reload. Format: `projects//locations//knowledgeBases//documents/`", +"location": "path", +"pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:reload", +"request": { +"$ref": "GoogleCloudDialogflowV2ReloadDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"sessions": { +"methods": { +"deleteContexts": { +"description": "Deletes all active contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/contexts", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.sessions.deleteContexts", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the session to delete all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"detectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) or other CCAI products now or in the future, consider using AnalyzeContent instead of `DetectIntent`. `AnalyzeContent` has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}:detectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.sessions.detectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment (`Environment ID` might be referred to as environment name at some places). If `User ID` is not specified, we are using \"-\". It's up to the API caller to choose an appropriate `Session ID` and `User Id`. They can be a random number or some type of user and session identifiers (preferably hashed). The length of the `Session ID` and `User ID` must not exceed 36 characters. For more information, see the [API interactions guide](https://cloud.google.com/dialogflow/docs/api-overview). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+session}:detectIntent", +"request": { +"$ref": "GoogleCloudDialogflowV2DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"contexts": { +"methods": { +"create": { +"description": "Creates a context. If the specified context already exists, overrides the context.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/contexts", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.sessions.contexts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a context for. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified context.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.sessions.contexts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context to delete. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified context.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.sessions.contexts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/contexts", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.sessions.contexts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleCloudDialogflowV2ListContextsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified context.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.sessions.contexts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"entityTypes": { +"methods": { +"create": { +"description": "Creates a session entity type. If the specified session entity type already exists, overrides the session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.sessions.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a session entity type for. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.sessions.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.sessions.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all session entity types in the specified session. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.sessions.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all session entity types from. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowV2ListSessionEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/agent/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.sessions.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of this session entity type. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"location": "path", +"pattern": "^projects/[^/]+/agent/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"versions": { +"methods": { +"create": { +"description": "Creates an agent version. The new version points to the agent instance in the \"default\" environment.", +"flatPath": "v2/projects/{projectsId}/agent/versions", +"httpMethod": "POST", +"id": "dialogflow.projects.agent.versions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to create a version for. Supported formats: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/versions", +"request": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Delete the specified agent version.", +"flatPath": "v2/projects/{projectsId}/agent/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.agent.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the version to delete. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"location": "path", +"pattern": "^projects/[^/]+/agent/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified agent version.", +"flatPath": "v2/projects/{projectsId}/agent/versions/{versionsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the version. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"location": "path", +"pattern": "^projects/[^/]+/agent/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all versions of the specified agent.", +"flatPath": "v2/projects/{projectsId}/agent/versions", +"httpMethod": "GET", +"id": "dialogflow.projects.agent.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all versions from. Supported formats: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/versions", +"response": { +"$ref": "GoogleCloudDialogflowV2ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified agent version. Note that this method does not allow you to update the state of the agent the given version points to. It allows you to update only mutable properties of the version resource.", +"flatPath": "v2/projects/{projectsId}/agent/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.agent.versions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The unique identifier of this agent version. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"location": "path", +"pattern": "^projects/[^/]+/agent/versions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"answerRecords": { +"methods": { +"list": { +"description": "Returns the list of all answer records in the specified project in reverse chronological order.", +"flatPath": "v2/projects/{projectsId}/answerRecords", +"httpMethod": "GET", +"id": "dialogflow.projects.answerRecords.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"deprecated": true, +"description": "Optional. Filters to restrict results to specific answer records. Marked deprecated as it hasn't been, and isn't currently, supported. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of records to return in a single page. The server may return fewer records than this. If unspecified, we use 10. The maximum is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The ListAnswerRecordsResponse.next_page_token value returned from a previous list request used to continue listing on the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list all answer records for in reverse chronological order. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/answerRecords", +"response": { +"$ref": "GoogleCloudDialogflowV2ListAnswerRecordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified answer record.", +"flatPath": "v2/projects/{projectsId}/answerRecords/{answerRecordsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.answerRecords.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of this answer record. Format: `projects//locations//answerRecords/`.", +"location": "path", +"pattern": "^projects/[^/]+/answerRecords/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2AnswerRecord" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2AnswerRecord" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"conversationDatasets": { +"methods": { +"get": { +"description": "Retrieves the specified conversation dataset.", +"flatPath": "v2/projects/{projectsId}/conversationDatasets/{conversationDatasetsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationDatasets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation dataset to retrieve. Format: `projects//locations//conversationDatasets/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationDataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"importConversationData": { +"description": "Import data into the specified conversation dataset. Note that it is not allowed to import data to a conversation dataset that already has data in it. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportConversationDataOperationMetadata - `response`: ImportConversationDataOperationResponse", +"flatPath": "v2/projects/{projectsId}/conversationDatasets/{conversationDatasetsId}:importConversationData", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationDatasets.importConversationData", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Dataset resource name. Format: `projects//locations//conversationDatasets/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:importConversationData", +"request": { +"$ref": "GoogleCloudDialogflowV2ImportConversationDataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all conversation datasets in the specified project and location.", +"flatPath": "v2/projects/{projectsId}/conversationDatasets", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationDatasets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of conversation datasets to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location name to list all conversation datasets for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationDatasets", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationDatasetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"conversationModels": { +"methods": { +"create": { +"description": "Creates a model. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: CreateConversationModelOperationMetadata - `response`: ConversationModel", +"flatPath": "v2/projects/{projectsId}/conversationModels", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationModels.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The project to create conversation model for. Format: `projects/`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationModels", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationModel" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes a model. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: DeleteConversationModelOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/conversationModels/{conversationModelsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.conversationModels.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to delete. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"deploy": { +"description": "Deploys a model. If a model is already deployed, deploying it has no effect. A model can only serve prediction requests after it gets deployed. For article suggestion, custom model will not be used unless it is deployed. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: DeployConversationModelOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/conversationModels/{conversationModelsId}:deploy", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationModels.deploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to deploy. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:deploy", +"request": { +"$ref": "GoogleCloudDialogflowV2DeployConversationModelRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets conversation model.", +"flatPath": "v2/projects/{projectsId}/conversationModels/{conversationModelsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationModels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to retrieve. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationModel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists conversation models.", +"flatPath": "v2/projects/{projectsId}/conversationModels", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationModels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of conversation models to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list all conversation models for. Format: `projects/`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationModels", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"undeploy": { +"description": "Undeploys a model. If the model is not deployed this method has no effect. If the model is currently being used: - For article suggestion, article suggestion will fallback to the default model if model is undeployed. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: UndeployConversationModelOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/conversationModels/{conversationModelsId}:undeploy", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationModels.undeploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to undeploy. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:undeploy", +"request": { +"$ref": "GoogleCloudDialogflowV2UndeployConversationModelRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"evaluations": { +"methods": { +"get": { +"description": "Gets an evaluation of conversation model.", +"flatPath": "v2/projects/{projectsId}/conversationModels/{conversationModelsId}/evaluations/{evaluationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationModels.evaluations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model evaluation resource name. Format: `projects//conversationModels//evaluations/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationModels/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationModelEvaluation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists evaluations of a conversation model.", +"flatPath": "v2/projects/{projectsId}/conversationModels/{conversationModelsId}/evaluations", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationModels.evaluations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of evaluations to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The conversation model resource name. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/evaluations", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationModelEvaluationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"conversationProfiles": { +"methods": { +"clearSuggestionFeatureConfig": { +"description": "Clears a suggestion feature from a conversation profile for the given participant role. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: ClearSuggestionFeatureConfigOperationMetadata - `response`: ConversationProfile", +"flatPath": "v2/projects/{projectsId}/conversationProfiles/{conversationProfilesId}:clearSuggestionFeatureConfig", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationProfiles.clearSuggestionFeatureConfig", +"parameterOrder": [ +"conversationProfile" +], +"parameters": { +"conversationProfile": { +"description": "Required. The Conversation Profile to add or update the suggestion feature config. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversationProfile}:clearSuggestionFeatureConfig", +"request": { +"$ref": "GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a conversation profile in the specified project. ConversationProfile.create_time and ConversationProfile.update_time aren't populated in the response. You can retrieve them via GetConversationProfile API.", +"flatPath": "v2/projects/{projectsId}/conversationProfiles", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to create a conversation profile for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationProfiles", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified conversation profile.", +"flatPath": "v2/projects/{projectsId}/conversationProfiles/{conversationProfilesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.conversationProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversation profile to delete. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified conversation profile.", +"flatPath": "v2/projects/{projectsId}/conversationProfiles/{conversationProfilesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all conversation profiles in the specified project.", +"flatPath": "v2/projects/{projectsId}/conversationProfiles", +"httpMethod": "GET", +"id": "dialogflow.projects.conversationProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list all conversation profiles from. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationProfiles", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified conversation profile. ConversationProfile.create_time and ConversationProfile.update_time aren't populated in the response. You can retrieve them via GetConversationProfile API.", +"flatPath": "v2/projects/{projectsId}/conversationProfiles/{conversationProfilesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.conversationProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of this conversation profile. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"setSuggestionFeatureConfig": { +"description": "Adds or updates a suggestion feature in a conversation profile. If the conversation profile contains the type of suggestion feature for the participant role, it will update it. Otherwise it will insert the suggestion feature. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: SetSuggestionFeatureConfigOperationMetadata - `response`: ConversationProfile If a long running operation to add or update suggestion feature config for the same conversation profile, participant role and suggestion feature type exists, please cancel the existing long running operation before sending such request, otherwise the request will be rejected.", +"flatPath": "v2/projects/{projectsId}/conversationProfiles/{conversationProfilesId}:setSuggestionFeatureConfig", +"httpMethod": "POST", +"id": "dialogflow.projects.conversationProfiles.setSuggestionFeatureConfig", +"parameterOrder": [ +"conversationProfile" +], +"parameters": { +"conversationProfile": { +"description": "Required. The Conversation Profile to add or update the suggestion feature config. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversationProfile}:setSuggestionFeatureConfig", +"request": { +"$ref": "GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"conversations": { +"methods": { +"complete": { +"description": "Completes the specified conversation. Finished conversations are purged from the database after 30 days.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}:complete", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.complete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource identifier of the conversation to close. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:complete", +"request": { +"$ref": "GoogleCloudDialogflowV2CompleteConversationRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a new conversation. Conversations are auto-completed after 24 hours. Conversation Lifecycle: There are two stages during a conversation: Automated Agent Stage and Assist Stage. For Automated Agent Stage, there will be a dialogflow agent responding to user queries. For Assist Stage, there's no dialogflow agent responding to user queries. But we will provide suggestions which are generated from conversation. If Conversation.conversation_profile is configured for a dialogflow agent, conversation will start from `Automated Agent Stage`, otherwise, it will start from `Assist Stage`. And during `Automated Agent Stage`, once an Intent with Intent.live_agent_handoff is triggered, conversation will transfer to Assist Stage.", +"flatPath": "v2/projects/{projectsId}/conversations", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"conversationId": { +"description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression formula `a-zA-Z*` with the characters length in range of [3,64]. If the field is provided, the caller is responsible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource identifier of the project creating the conversation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversations", +"request": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specific conversation.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.conversations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversation. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all conversations in the specified project.", +"flatPath": "v2/projects/{projectsId}/conversations", +"httpMethod": "GET", +"id": "dialogflow.projects.conversations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter expression that filters conversations listed in the response. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project from which to list all conversation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversations", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"messages": { +"methods": { +"list": { +"description": "Lists messages that belong to a given conversation. `messages` are ordered by `create_time` in descending order. To fetch updates without duplication, send request with filter `create_time_epoch_microseconds > [first item's create_time of previous request]` and empty page_token.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/messages", +"httpMethod": "GET", +"id": "dialogflow.projects.conversations.messages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter on message fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds > 1551790877964485` or `create_time > 2017-01-15T01:30:15.01Z`. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the conversation to list messages for. Format: `projects//locations//conversations/`", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/messages", +"response": { +"$ref": "GoogleCloudDialogflowV2ListMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"participants": { +"methods": { +"analyzeContent": { +"description": "Adds a text (chat, for example), or audio (phone recording, for example) message from a participant into the conversation. Note: Always use agent versions for production traffic sent to virtual agents. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}:analyzeContent", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.participants.analyzeContent", +"parameterOrder": [ +"participant" +], +"parameters": { +"participant": { +"description": "Required. The name of the participant this text comes from. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+participant}:analyzeContent", +"request": { +"$ref": "GoogleCloudDialogflowV2AnalyzeContentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2AnalyzeContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a new participant in a conversation.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.participants.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource identifier of the conversation adding the participant. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/participants", +"request": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves a conversation participant.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.conversations.participants.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the participant. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all participants in the specified conversation.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants", +"httpMethod": "GET", +"id": "dialogflow.projects.conversations.participants.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The conversation to list all participants from. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/participants", +"response": { +"$ref": "GoogleCloudDialogflowV2ListParticipantsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified participant.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.conversations.participants.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to specify which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"suggestions": { +"methods": { +"suggestArticles": { +"description": "Gets suggested articles for a participant based on specific historical messages.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestArticles", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.participants.suggestions.suggestArticles", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestion for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestArticles", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestArticlesRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestArticlesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestFaqAnswers": { +"description": "Gets suggested faq answers for a participant based on specific historical messages.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestFaqAnswers", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.participants.suggestions.suggestFaqAnswers", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestion for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestFaqAnswers", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestFaqAnswersRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestFaqAnswersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestKnowledgeAssist": { +"description": "Gets knowledge assist suggestions based on historical messages.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestKnowledgeAssist", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.participants.suggestions.suggestKnowledgeAssist", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestions for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestKnowledgeAssist", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestSmartReplies": { +"description": "Gets smart replies for a participant based on specific historical messages.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestSmartReplies", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.participants.suggestions.suggestSmartReplies", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestion for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestSmartReplies", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestSmartRepliesRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestSmartRepliesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"suggestions": { +"methods": { +"searchKnowledge": { +"description": "Get answers for the given query based on knowledge documents.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/suggestions:searchKnowledge", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.suggestions.searchKnowledge", +"parameterOrder": [ +"conversation" +], +"parameters": { +"conversation": { +"description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversation}/suggestions:searchKnowledge", +"request": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestConversationSummary": { +"description": "Suggests summary for a conversation based on specific historical messages. The range of the messages to be used for summary can be specified in the request.", +"flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/suggestions:suggestConversationSummary", +"httpMethod": "POST", +"id": "dialogflow.projects.conversations.suggestions.suggestConversationSummary", +"parameterOrder": [ +"conversation" +], +"parameters": { +"conversation": { +"description": "Required. The conversation to fetch suggestion for. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversation}/suggestions:suggestConversationSummary", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"generators": { +"methods": { +"create": { +"description": "Creates a generator.", +"flatPath": "v2/projects/{projectsId}/generators", +"httpMethod": "POST", +"id": "dialogflow.projects.generators.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"generatorId": { +"description": "Optional. The ID to use for the generator, which will become the final component of the generator's resource name. The generator ID must be compliant with the regression formula `a-zA-Z*` with the characters length in range of [3,64]. If the field is not provided, an Id will be auto-generated. If the field is provided, the caller is responsible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project/location to create generator for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/generators", +"request": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists generators.", +"flatPath": "v2/projects/{projectsId}/generators", +"httpMethod": "GET", +"id": "dialogflow.projects.generators.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of conversation models to return in a single page. Default to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project/location to list generators for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/generators", +"response": { +"$ref": "GoogleCloudDialogflowV2ListGeneratorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"knowledgeBases": { +"methods": { +"create": { +"description": "Creates a knowledge base.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases", +"httpMethod": "POST", +"id": "dialogflow.projects.knowledgeBases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to create a knowledge base for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/knowledgeBases", +"request": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.knowledgeBases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. Force deletes the knowledge base. When set to true, any documents in the knowledge base are also deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the knowledge base to delete. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.knowledgeBases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the knowledge base to retrieve. Format `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all knowledge bases of the specified agent.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases", +"httpMethod": "GET", +"id": "dialogflow.projects.knowledgeBases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter knowledge bases returned by the list method. The expression has the following syntax: [AND ] ... The following fields and operators are supported: * display_name with has(:) operator * language_code with equals(=) operator Examples: * 'language_code=en-us' matches knowledge bases with en-us language code. * 'display_name:articles' matches knowledge bases whose display name contains \"articles\". * 'display_name:\"Best Articles\"' matches knowledge bases whose display name contains \"Best Articles\". * 'language_code=en-gb AND display_name=articles' matches all knowledge bases whose display name contains \"articles\" and whose language code is \"en-gb\". Note: An empty filter string (i.e. \"\") is a no-op and will result in no filtering. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 10 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list of knowledge bases for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/knowledgeBases", +"response": { +"$ref": "GoogleCloudDialogflowV2ListKnowledgeBasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.knowledgeBases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The knowledge base resource name. The name must be empty when creating a knowledge base. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Not specified means `update all`. Currently, only `display_name` can be updated, an InvalidArgument will be returned for attempting to update other fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"documents": { +"methods": { +"create": { +"description": "Creates a new document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents", +"httpMethod": "POST", +"id": "dialogflow.projects.knowledgeBases.documents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The knowledge base to create a document for. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents", +"request": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.knowledgeBases.documents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to delete. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports a smart messaging candidate document into the specified destination. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}:export", +"httpMethod": "POST", +"id": "dialogflow.projects.knowledgeBases.documents.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to export. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:export", +"request": { +"$ref": "GoogleCloudDialogflowV2ExportDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified document.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.knowledgeBases.documents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to retrieve. Format `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Creates documents by importing data from external sources. Dialogflow supports up to 350 documents in each request. If you try to import more, Dialogflow will return an error. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: ImportDocumentsResponse", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents:import", +"httpMethod": "POST", +"id": "dialogflow.projects.knowledgeBases.documents.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The knowledge base to import documents into. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents:import", +"request": { +"$ref": "GoogleCloudDialogflowV2ImportDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all documents of the knowledge base.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents", +"httpMethod": "GET", +"id": "dialogflow.projects.knowledgeBases.documents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter documents returned by the list method. The expression has the following syntax: [AND ] ... The following fields and operators are supported: * knowledge_types with has(:) operator * display_name with has(:) operator * state with equals(=) operator Examples: * \"knowledge_types:FAQ\" matches documents with FAQ knowledge type. * \"display_name:customer\" matches documents whose display name contains \"customer\". * \"state=ACTIVE\" matches documents with ACTIVE state. * \"knowledge_types:FAQ AND state=ACTIVE\" matches all active FAQ documents. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 10 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The knowledge base to list all documents for. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.knowledgeBases.documents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The document resource name. The name must be empty when creating a document. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Not specified means `update all`. Currently, only `display_name` can be updated, an InvalidArgument will be returned for attempting to update other fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"reload": { +"description": "Reloads the specified document from its specified source, content_uri or content. The previously loaded content of the document will be deleted. Note: Even when the content of the document has not changed, there still may be side effects because of internal implementation changes. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; only use `projects.knowledgeBases.documents`.", +"flatPath": "v2/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}:reload", +"httpMethod": "POST", +"id": "dialogflow.projects.knowledgeBases.documents.reload", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to reload. Format: `projects//locations//knowledgeBases//documents/`", +"location": "path", +"pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:reload", +"request": { +"$ref": "GoogleCloudDialogflowV2ReloadDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"locations": { +"methods": { +"deleteAgent": { +"description": "Deletes the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.deleteAgent", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to delete is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getAgent": { +"description": "Retrieves the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.getAgent", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to fetch is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent", +"response": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getEncryptionSpec": { +"description": "Gets location-level encryption key specification.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/encryptionSpec", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.getEncryptionSpec", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the encryption spec resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/encryptionSpec$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2EncryptionSpec" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v2/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"setAgent": { +"description": "Creates/updates the specified agent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.setAgent", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project of this agent. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/agent", +"request": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"agent": { +"methods": { +"export": { +"description": "Exports the specified agent to a ZIP file. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: ExportAgentResponse", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to export is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:export", +"request": { +"$ref": "GoogleCloudDialogflowV2ExportAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getFulfillment": { +"description": "Retrieves the fulfillment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/fulfillment", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.getFulfillment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the fulfillment. Format: `projects//agent/fulfillment`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/fulfillment$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Fulfillment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getValidationResult": { +"description": "Gets agent validation result. Agent validation is performed during training time and is updated automatically when training is completed.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/validationResult", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.getValidationResult", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "Optional. The language for which you want a validation result. If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project that the agent is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent/validationResult", +"response": { +"$ref": "GoogleCloudDialogflowV2ValidationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Imports the specified agent from a ZIP file. Uploads new intents and entity types without deleting the existing ones. Intents and entity types with the same name are replaced with the new versions from ImportAgentRequest. After the import, the imported draft agent will be trained automatically (unless disabled in agent settings). However, once the import is done, training may not be completed yet. Please call TrainAgent and wait for the operation it returns in order to train explicitly. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) The operation only tracks when importing is complete, not when it is done training. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent:import", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to import is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:import", +"request": { +"$ref": "GoogleCloudDialogflowV2ImportAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"restore": { +"description": "Restores the specified agent from a ZIP file. Replaces the current agent version with a new one. All the intents and entity types in the older version are deleted. After the restore, the restored draft agent will be trained automatically (unless disabled in agent settings). However, once the restore is done, training may not be completed yet. Please call TrainAgent and wait for the operation it returns in order to train explicitly. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) The operation only tracks when restoring is complete, not when it is done training. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent:restore", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.restore", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to restore is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:restore", +"request": { +"$ref": "GoogleCloudDialogflowV2RestoreAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"search": { +"description": "Returns the list of agents. Since there is at most one conversational agent per project, this method is useful primarily for listing all agents across projects the caller has access to. One can achieve that with a wildcard project collection id \"-\". Refer to [List Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent:search", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list agents from. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:search", +"response": { +"$ref": "GoogleCloudDialogflowV2SearchAgentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"train": { +"description": "Trains the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent:train", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.train", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project that the agent to train is associated with. Format: `projects/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/agent:train", +"request": { +"$ref": "GoogleCloudDialogflowV2TrainAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"updateFulfillment": { +"description": "Updates the fulfillment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/fulfillment", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.updateFulfillment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/fulfillment$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Fulfillment" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Fulfillment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"entityTypes": { +"methods": { +"batchDelete": { +"description": "Deletes entity types in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.entityTypes.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to delete all entities types for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchUpdate": { +"description": "Updates/Creates multiple entity types in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: BatchUpdateEntityTypesResponse Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes:batchUpdate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.entityTypes.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to update or create entity types in. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes:batchUpdate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates an entity type in the specified agent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a entity type for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified entity type. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified entity type.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the entity type. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all entity types in the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all entity types from. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowV2ListEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified entity type. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes methods. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"entities": { +"methods": { +"batchCreate": { +"description": "Creates multiple new entities in the specified entity type. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes/{entityTypesId}/entities:batchCreate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.entityTypes.entities.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the entity type to create entities in. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entities:batchCreate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchCreateEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchDelete": { +"description": "Deletes entities in the specified entity type. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes/{entityTypesId}/entities:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.entityTypes.entities.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the entity type to delete entries for. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entities:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchDeleteEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchUpdate": { +"description": "Updates or creates multiple entities in the specified entity type. This method does not affect entities in the entity type that aren't explicitly specified in the request. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training). ", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/entityTypes/{entityTypesId}/entities:batchUpdate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.entityTypes.entities.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the entity type to update or create entities in. Format: `projects//agent/entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entities:batchUpdate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchUpdateEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"environments": { +"methods": { +"create": { +"description": "Creates an agent environment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"environmentId": { +"description": "Required. The unique id of the new environment.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create an environment for. Supported formats: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/environments", +"request": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified agent environment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the environment to delete. / Format: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified agent environment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getHistory": { +"description": "Gets the history of the specified environment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/history", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.getHistory", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the environment to retrieve history for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/history", +"response": { +"$ref": "GoogleCloudDialogflowV2EnvironmentHistory" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all non-default environments of the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all environments from. Format: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/environments", +"response": { +"$ref": "GoogleCloudDialogflowV2ListEnvironmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment continues serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use \"-\" as Environment ID in environment name to update an agent version in the default environment. WARNING: this will negate all recent changes to the draft agent and can't be undone. You may want to save the draft agent to a version before calling this method.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.environments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowLoadToDraftAndDiscardChanges": { +"description": "Optional. This field is used to prevent accidental overwrite of the default environment, which is an operation that cannot be undone. To confirm that the caller desires this overwrite, this field must be explicitly set to true when updating the default environment (environment ID = `-`).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"intents": { +"methods": { +"list": { +"description": "Returns the list of all intents in the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/intents", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.intents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all intents from. Format: `projects//agent` or `projects//locations//agent`. Alternatively, you can specify the environment to list intents for. Format: `projects//agent/environments/` or `projects//locations//agent/environments/`. Note: training phrases of the intents will not be returned for non-draft environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListIntentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"users": { +"resources": { +"sessions": { +"methods": { +"deleteContexts": { +"description": "Deletes all active contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.deleteContexts", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the session to delete all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"detectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) or other CCAI products now or in the future, consider using AnalyzeContent instead of `DetectIntent`. `AnalyzeContent` has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}:detectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.detectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment (`Environment ID` might be referred to as environment name at some places). If `User ID` is not specified, we are using \"-\". It's up to the API caller to choose an appropriate `Session ID` and `User Id`. They can be a random number or some type of user and session identifiers (preferably hashed). The length of the `Session ID` and `User ID` must not exceed 36 characters. For more information, see the [API interactions guide](https://cloud.google.com/dialogflow/docs/api-overview). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+session}:detectIntent", +"request": { +"$ref": "GoogleCloudDialogflowV2DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"contexts": { +"methods": { +"create": { +"description": "Creates a context. If the specified context already exists, overrides the context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.contexts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a context for. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.contexts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context to delete. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.contexts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.contexts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleCloudDialogflowV2ListContextsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.contexts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"entityTypes": { +"methods": { +"create": { +"description": "Creates a session entity type. If the specified session entity type already exists, overrides the session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a session entity type for. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all session entity types in the specified session. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all session entity types from. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowV2ListSessionEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/environments/{environmentsId}/users/{usersId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.environments.users.sessions.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of this session entity type. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +} +} +} +} +}, +"intents": { +"methods": { +"batchDelete": { +"description": "Deletes intents in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.intents.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to delete all entities types for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchDeleteIntentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchUpdate": { +"description": "Updates/Creates multiple intents in the specified agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: BatchUpdateIntentsResponse Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents:batchUpdate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.intents.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the agent to update or create intents in. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents:batchUpdate", +"request": { +"$ref": "GoogleCloudDialogflowV2BatchUpdateIntentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates an intent in the specified agent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.intents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a intent for. Format: `projects//agent`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents", +"request": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified intent and its direct or indirect followup intents. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents/{intentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.intents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the intent to delete. If this intent has direct or indirect followup intents, we also delete them. Format: `projects//agent/intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/intents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified intent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents/{intentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.intents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the intent. Format: `projects//agent/intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/intents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all intents in the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.intents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all intents from. Format: `projects//agent` or `projects//locations//agent`. Alternatively, you can specify the environment to list intents for. Format: `projects//agent/environments/` or `projects//locations//agent/environments/`. Note: training phrases of the intents will not be returned for non-draft environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/intents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListIntentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified intent. Note: You should always train an agent prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/es/docs/training).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/intents/{intentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.intents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format: `projects//agent/intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/intents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"sessions": { +"methods": { +"deleteContexts": { +"description": "Deletes all active contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/contexts", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.sessions.deleteContexts", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the session to delete all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"detectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) or other CCAI products now or in the future, consider using AnalyzeContent instead of `DetectIntent`. `AnalyzeContent` has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}:detectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.sessions.detectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment (`Environment ID` might be referred to as environment name at some places). If `User ID` is not specified, we are using \"-\". It's up to the API caller to choose an appropriate `Session ID` and `User Id`. They can be a random number or some type of user and session identifiers (preferably hashed). The length of the `Session ID` and `User ID` must not exceed 36 characters. For more information, see the [API interactions guide](https://cloud.google.com/dialogflow/docs/api-overview). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+session}:detectIntent", +"request": { +"$ref": "GoogleCloudDialogflowV2DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"contexts": { +"methods": { +"create": { +"description": "Creates a context. If the specified context already exists, overrides the context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/contexts", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.sessions.contexts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a context for. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.sessions.contexts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context to delete. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.sessions.contexts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the context. Format: `projects//agent/sessions//contexts/` or `projects//agent/environments//users//sessions//contexts/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all contexts in the specified session.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/contexts", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.sessions.contexts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all contexts from. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/contexts", +"response": { +"$ref": "GoogleCloudDialogflowV2ListContextsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified context.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/contexts/{contextsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.sessions.contexts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"entityTypes": { +"methods": { +"create": { +"description": "Creates a session entity type. If the specified session entity type already exists, overrides the session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.sessions.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a session entity type for. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.sessions.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.sessions.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type. Format: `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all session entity types in the specified session. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.sessions.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all session entity types from. Format: `projects//agent/sessions/` or `projects//agent/environments//users// sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowV2ListSessionEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified session entity type. This method doesn't work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.sessions.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of this session entity type. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"versions": { +"methods": { +"create": { +"description": "Creates an agent version. The new version points to the agent instance in the \"default\" environment.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/versions", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agent.versions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to create a version for. Supported formats: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/versions", +"request": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Delete the specified agent version.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agent.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the version to delete. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified agent version.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/versions/{versionsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the version. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all versions of the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/versions", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agent.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all versions from. Supported formats: - `projects//agent` - `projects//locations//agent`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/versions", +"response": { +"$ref": "GoogleCloudDialogflowV2ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified agent version. Note that this method does not allow you to update the state of the agent the given version points to. It allows you to update only mutable properties of the version resource.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/agent/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agent.versions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The unique identifier of this agent version. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agent/versions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"answerRecords": { +"methods": { +"list": { +"description": "Returns the list of all answer records in the specified project in reverse chronological order.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/answerRecords", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.answerRecords.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"deprecated": true, +"description": "Optional. Filters to restrict results to specific answer records. Marked deprecated as it hasn't been, and isn't currently, supported. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of records to return in a single page. The server may return fewer records than this. If unspecified, we use 10. The maximum is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The ListAnswerRecordsResponse.next_page_token value returned from a previous list request used to continue listing on the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list all answer records for in reverse chronological order. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/answerRecords", +"response": { +"$ref": "GoogleCloudDialogflowV2ListAnswerRecordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified answer record.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/answerRecords/{answerRecordsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.answerRecords.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of this answer record. Format: `projects//locations//answerRecords/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/answerRecords/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2AnswerRecord" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2AnswerRecord" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"conversationDatasets": { +"methods": { +"create": { +"description": "Creates a new conversation dataset. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: CreateConversationDatasetOperationMetadata - `response`: ConversationDataset", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationDatasets", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationDatasets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to create conversation dataset for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationDatasets", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationDataset" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified conversation dataset. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: DeleteConversationDatasetOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationDatasets/{conversationDatasetsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.conversationDatasets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation dataset to delete. Format: `projects//locations//conversationDatasets/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified conversation dataset.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationDatasets/{conversationDatasetsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationDatasets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation dataset to retrieve. Format: `projects//locations//conversationDatasets/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationDataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"importConversationData": { +"description": "Import data into the specified conversation dataset. Note that it is not allowed to import data to a conversation dataset that already has data in it. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportConversationDataOperationMetadata - `response`: ImportConversationDataOperationResponse", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationDatasets/{conversationDatasetsId}:importConversationData", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationDatasets.importConversationData", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Dataset resource name. Format: `projects//locations//conversationDatasets/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:importConversationData", +"request": { +"$ref": "GoogleCloudDialogflowV2ImportConversationDataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all conversation datasets in the specified project and location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationDatasets", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationDatasets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of conversation datasets to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location name to list all conversation datasets for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationDatasets", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationDatasetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"conversationModels": { +"methods": { +"create": { +"description": "Creates a model. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: CreateConversationModelOperationMetadata - `response`: ConversationModel", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationModels.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The project to create conversation model for. Format: `projects/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationModels", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationModel" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes a model. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: DeleteConversationModelOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.conversationModels.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to delete. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"deploy": { +"description": "Deploys a model. If a model is already deployed, deploying it has no effect. A model can only serve prediction requests after it gets deployed. For article suggestion, custom model will not be used unless it is deployed. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: DeployConversationModelOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}:deploy", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationModels.deploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to deploy. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:deploy", +"request": { +"$ref": "GoogleCloudDialogflowV2DeployConversationModelRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets conversation model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationModels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to retrieve. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationModel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists conversation models.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationModels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of conversation models to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list all conversation models for. Format: `projects/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationModels", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"undeploy": { +"description": "Undeploys a model. If the model is not deployed this method has no effect. If the model is currently being used: - For article suggestion, article suggestion will fallback to the default model if model is undeployed. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: UndeployConversationModelOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}:undeploy", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationModels.undeploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model to undeploy. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:undeploy", +"request": { +"$ref": "GoogleCloudDialogflowV2UndeployConversationModelRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"evaluations": { +"methods": { +"create": { +"description": "Creates evaluation of a conversation model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}/evaluations", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationModels.evaluations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The conversation model resource name. Format: `projects//locations//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/evaluations", +"request": { +"$ref": "GoogleCloudDialogflowV2CreateConversationModelEvaluationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets an evaluation of conversation model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}/evaluations/{evaluationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationModels.evaluations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The conversation model evaluation resource name. Format: `projects//conversationModels//evaluations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationModelEvaluation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists evaluations of a conversation model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationModels/{conversationModelsId}/evaluations", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationModels.evaluations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of evaluations to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The conversation model resource name. Format: `projects//conversationModels/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationModels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/evaluations", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationModelEvaluationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"conversationProfiles": { +"methods": { +"clearSuggestionFeatureConfig": { +"description": "Clears a suggestion feature from a conversation profile for the given participant role. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: ClearSuggestionFeatureConfigOperationMetadata - `response`: ConversationProfile", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles/{conversationProfilesId}:clearSuggestionFeatureConfig", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationProfiles.clearSuggestionFeatureConfig", +"parameterOrder": [ +"conversationProfile" +], +"parameters": { +"conversationProfile": { +"description": "Required. The Conversation Profile to add or update the suggestion feature config. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversationProfile}:clearSuggestionFeatureConfig", +"request": { +"$ref": "GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a conversation profile in the specified project. ConversationProfile.create_time and ConversationProfile.update_time aren't populated in the response. You can retrieve them via GetConversationProfile API.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to create a conversation profile for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationProfiles", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified conversation profile.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles/{conversationProfilesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.conversationProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversation profile to delete. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified conversation profile.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles/{conversationProfilesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all conversation profiles in the specified project.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversationProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list all conversation profiles from. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversationProfiles", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified conversation profile. ConversationProfile.create_time and ConversationProfile.update_time aren't populated in the response. You can retrieve them via GetConversationProfile API.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles/{conversationProfilesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.conversationProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of this conversation profile. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"setSuggestionFeatureConfig": { +"description": "Adds or updates a suggestion feature in a conversation profile. If the conversation profile contains the type of suggestion feature for the participant role, it will update it. Otherwise it will insert the suggestion feature. This method is a [long-running operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). The returned `Operation` type has the following method-specific fields: - `metadata`: SetSuggestionFeatureConfigOperationMetadata - `response`: ConversationProfile If a long running operation to add or update suggestion feature config for the same conversation profile, participant role and suggestion feature type exists, please cancel the existing long running operation before sending such request, otherwise the request will be rejected.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversationProfiles/{conversationProfilesId}:setSuggestionFeatureConfig", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversationProfiles.setSuggestionFeatureConfig", +"parameterOrder": [ +"conversationProfile" +], +"parameters": { +"conversationProfile": { +"description": "Required. The Conversation Profile to add or update the suggestion feature config. Format: `projects//locations//conversationProfiles/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversationProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversationProfile}:setSuggestionFeatureConfig", +"request": { +"$ref": "GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"conversations": { +"methods": { +"complete": { +"description": "Completes the specified conversation. Finished conversations are purged from the database after 30 days.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}:complete", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.complete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource identifier of the conversation to close. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:complete", +"request": { +"$ref": "GoogleCloudDialogflowV2CompleteConversationRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a new conversation. Conversations are auto-completed after 24 hours. Conversation Lifecycle: There are two stages during a conversation: Automated Agent Stage and Assist Stage. For Automated Agent Stage, there will be a dialogflow agent responding to user queries. For Assist Stage, there's no dialogflow agent responding to user queries. But we will provide suggestions which are generated from conversation. If Conversation.conversation_profile is configured for a dialogflow agent, conversation will start from `Automated Agent Stage`, otherwise, it will start from `Assist Stage`. And during `Automated Agent Stage`, once an Intent with Intent.live_agent_handoff is triggered, conversation will transfer to Assist Stage.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"conversationId": { +"description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression formula `a-zA-Z*` with the characters length in range of [3,64]. If the field is provided, the caller is responsible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource identifier of the project creating the conversation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversations", +"request": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specific conversation.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversation. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all conversations in the specified project.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter expression that filters conversations listed in the response. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project from which to list all conversation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/conversations", +"response": { +"$ref": "GoogleCloudDialogflowV2ListConversationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"messages": { +"methods": { +"list": { +"description": "Lists messages that belong to a given conversation. `messages` are ordered by `create_time` in descending order. To fetch updates without duplication, send request with filter `create_time_epoch_microseconds > [first item's create_time of previous request]` and empty page_token.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/messages", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversations.messages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter on message fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds > 1551790877964485` or `create_time > 2017-01-15T01:30:15.01Z`. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the conversation to list messages for. Format: `projects//locations//conversations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/messages", +"response": { +"$ref": "GoogleCloudDialogflowV2ListMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"participants": { +"methods": { +"analyzeContent": { +"description": "Adds a text (chat, for example), or audio (phone recording, for example) message from a participant into the conversation. Note: Always use agent versions for production traffic sent to virtual agents. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}:analyzeContent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.participants.analyzeContent", +"parameterOrder": [ +"participant" +], +"parameters": { +"participant": { +"description": "Required. The name of the participant this text comes from. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+participant}:analyzeContent", +"request": { +"$ref": "GoogleCloudDialogflowV2AnalyzeContentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2AnalyzeContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a new participant in a conversation.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.participants.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource identifier of the conversation adding the participant. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/participants", +"request": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves a conversation participant.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversations.participants.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the participant. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all participants in the specified conversation.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.conversations.participants.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The conversation to list all participants from. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/participants", +"response": { +"$ref": "GoogleCloudDialogflowV2ListParticipantsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified participant.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.conversations.participants.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to specify which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"suggestions": { +"methods": { +"suggestArticles": { +"description": "Gets suggested articles for a participant based on specific historical messages.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestArticles", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.participants.suggestions.suggestArticles", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestion for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestArticles", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestArticlesRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestArticlesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestFaqAnswers": { +"description": "Gets suggested faq answers for a participant based on specific historical messages.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestFaqAnswers", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.participants.suggestions.suggestFaqAnswers", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestion for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestFaqAnswers", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestFaqAnswersRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestFaqAnswersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestKnowledgeAssist": { +"description": "Gets knowledge assist suggestions based on historical messages.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestKnowledgeAssist", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.participants.suggestions.suggestKnowledgeAssist", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestions for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestKnowledgeAssist", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestSmartReplies": { +"description": "Gets smart replies for a participant based on specific historical messages.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:suggestSmartReplies", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.participants.suggestions.suggestSmartReplies", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the participant to fetch suggestion for. Format: `projects//locations//conversations//participants/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+/participants/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:suggestSmartReplies", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestSmartRepliesRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestSmartRepliesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"suggestions": { +"methods": { +"searchKnowledge": { +"description": "Get answers for the given query based on knowledge documents.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/suggestions:searchKnowledge", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.suggestions.searchKnowledge", +"parameterOrder": [ +"conversation" +], +"parameters": { +"conversation": { +"description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversation}/suggestions:searchKnowledge", +"request": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"suggestConversationSummary": { +"description": "Suggests summary for a conversation based on specific historical messages. The range of the messages to be used for summary can be specified in the request.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/suggestions:suggestConversationSummary", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.conversations.suggestions.suggestConversationSummary", +"parameterOrder": [ +"conversation" +], +"parameters": { +"conversation": { +"description": "Required. The conversation to fetch suggestion for. Format: `projects//locations//conversations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+conversation}/suggestions:suggestConversationSummary", +"request": { +"$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"encryptionSpec": { +"methods": { +"initialize": { +"description": "Initializes a location-level encryption key specification. An error will be thrown if the location has resources already created before the initialization. Once the encryption specification is initialized at a location, it is immutable and all newly created resources under the location will be encrypted with the existing specification.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/encryptionSpec:initialize", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.encryptionSpec.initialize", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/encryptionSpec$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:initialize", +"request": { +"$ref": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"generators": { +"methods": { +"create": { +"description": "Creates a generator.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/generators", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.generators.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"generatorId": { +"description": "Optional. The ID to use for the generator, which will become the final component of the generator's resource name. The generator ID must be compliant with the regression formula `a-zA-Z*` with the characters length in range of [3,64]. If the field is not provided, an Id will be auto-generated. If the field is provided, the caller is responsible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project/location to create generator for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/generators", +"request": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes a generator.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/generators/{generatorsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.generators.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The generator resource name to delete. Format: `projects//locations//generators/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/generators/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves a generator.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/generators/{generatorsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.generators.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The generator resource name to retrieve. Format: `projects//locations//generators/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/generators/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists generators.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/generators", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.generators.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of conversation models to return in a single page. Default to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project/location to list generators for. Format: `projects//locations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/generators", +"response": { +"$ref": "GoogleCloudDialogflowV2ListGeneratorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates a generator.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/generators/{generatorsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.generators.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of the generator. Format: `projects//locations//generators/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/generators/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"knowledgeBases": { +"methods": { +"create": { +"description": "Creates a knowledge base.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.knowledgeBases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to create a knowledge base for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/knowledgeBases", +"request": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.knowledgeBases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. Force deletes the knowledge base. When set to true, any documents in the knowledge base are also deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the knowledge base to delete. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.knowledgeBases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the knowledge base to retrieve. Format `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all knowledge bases of the specified agent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.knowledgeBases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter knowledge bases returned by the list method. The expression has the following syntax: [AND ] ... The following fields and operators are supported: * display_name with has(:) operator * language_code with equals(=) operator Examples: * 'language_code=en-us' matches knowledge bases with en-us language code. * 'display_name:articles' matches knowledge bases whose display name contains \"articles\". * 'display_name:\"Best Articles\"' matches knowledge bases whose display name contains \"Best Articles\". * 'language_code=en-gb AND display_name=articles' matches all knowledge bases whose display name contains \"articles\" and whose language code is \"en-gb\". Note: An empty filter string (i.e. \"\") is a no-op and will result in no filtering. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 10 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project to list of knowledge bases for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/knowledgeBases", +"response": { +"$ref": "GoogleCloudDialogflowV2ListKnowledgeBasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified knowledge base.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.knowledgeBases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The knowledge base resource name. The name must be empty when creating a knowledge base. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Not specified means `update all`. Currently, only `display_name` can be updated, an InvalidArgument will be returned for attempting to update other fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"documents": { +"methods": { +"create": { +"description": "Creates a new document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.knowledgeBases.documents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The knowledge base to create a document for. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents", +"request": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.knowledgeBases.documents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to delete. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports a smart messaging candidate document into the specified destination. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.knowledgeBases.documents.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to export. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:export", +"request": { +"$ref": "GoogleCloudDialogflowV2ExportDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified document.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.knowledgeBases.documents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to retrieve. Format `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Creates documents by importing data from external sources. Dialogflow supports up to 350 documents in each request. If you try to import more, Dialogflow will return an error. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: ImportDocumentsResponse", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents:import", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.knowledgeBases.documents.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The knowledge base to import documents into. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents:import", +"request": { +"$ref": "GoogleCloudDialogflowV2ImportDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all documents of the knowledge base.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.knowledgeBases.documents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter documents returned by the list method. The expression has the following syntax: [AND ] ... The following fields and operators are supported: * knowledge_types with has(:) operator * display_name with has(:) operator * state with equals(=) operator Examples: * \"knowledge_types:FAQ\" matches documents with FAQ knowledge type. * \"display_name:customer\" matches documents whose display name contains \"customer\". * \"state=ACTIVE\" matches documents with ACTIVE state. * \"knowledge_types:FAQ AND state=ACTIVE\" matches all active FAQ documents. For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 10 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The knowledge base to list all documents for. Format: `projects//locations//knowledgeBases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/documents", +"response": { +"$ref": "GoogleCloudDialogflowV2ListDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified document. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.knowledgeBases.documents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The document resource name. The name must be empty when creating a document. Format: `projects//locations//knowledgeBases//documents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Not specified means `update all`. Currently, only `display_name` can be updated, an InvalidArgument will be returned for attempting to update other fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"reload": { +"description": "Reloads the specified document from its specified source, content_uri or content. The previously loaded content of the document will be deleted. Note: Even when the content of the document has not changed, there still may be side effects because of internal implementation changes. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: KnowledgeOperationMetadata - `response`: Document Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; only use `projects.knowledgeBases.documents`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}:reload", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.knowledgeBases.documents.reload", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the document to reload. Format: `projects//locations//knowledgeBases//documents/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:reload", +"request": { +"$ref": "GoogleCloudDialogflowV2ReloadDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:cancel", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"statelessSuggestion": { +"methods": { +"generate": { +"description": "Generates and returns a suggestion for a conversation that does not have a resource created for it.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/statelessSuggestion:generate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.statelessSuggestion.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource to charge for the Suggestion's generation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/statelessSuggestion:generate", +"request": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSuggestionRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSuggestionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"suggestions": { +"methods": { +"generateStatelessSummary": { +"description": "Generates and returns a summary for a conversation that does not have a resource created for it.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/suggestions:generateStatelessSummary", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.suggestions.generateStatelessSummary", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource to charge for the Summary's generation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:generateStatelessSummary", +"request": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"searchKnowledge": { +"description": "Get answers for the given query based on knowledge documents.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/suggestions:searchKnowledge", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.suggestions.searchKnowledge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:searchKnowledge", +"request": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v2/projects/{projectsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "dialogflow.projects.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:cancel", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2/projects/{projectsId}/operations", +"httpMethod": "GET", +"id": "dialogflow.projects.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"suggestions": { +"methods": { +"generateStatelessSummary": { +"description": "Generates and returns a summary for a conversation that does not have a resource created for it.", +"flatPath": "v2/projects/{projectsId}/suggestions:generateStatelessSummary", +"httpMethod": "POST", +"id": "dialogflow.projects.suggestions.generateStatelessSummary", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource to charge for the Summary's generation. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:generateStatelessSummary", +"request": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"searchKnowledge": { +"description": "Get answers for the given query based on knowledge documents.", +"flatPath": "v2/projects/{projectsId}/suggestions:searchKnowledge", +"httpMethod": "POST", +"id": "dialogflow.projects.suggestions.searchKnowledge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/suggestions:searchKnowledge", +"request": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +} +}, +"revision": "20250103", +"rootUrl": "https://dialogflow.googleapis.com/", +"schemas": { +"GoogleCloudDialogflowCxV3AdvancedSettings": { +"description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", +"id": "GoogleCloudDialogflowCxV3AdvancedSettings", +"properties": { +"audioExportGcsDestination": { +"$ref": "GoogleCloudDialogflowCxV3GcsDestination", +"description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" +}, +"dtmfSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", +"description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." +}, +"loggingSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", +"description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." +}, +"speechSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings", +"description": "Settings for speech to text detection. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings": { +"description": "Define behaviors for DTMF (dual tone multi frequency).", +"id": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", +"properties": { +"enabled": { +"description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", +"type": "boolean" +}, +"endpointingTimeoutDuration": { +"description": "Endpoint timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"finishDigit": { +"description": "The digit that terminates a DTMF digit sequence.", +"type": "string" +}, +"interdigitTimeoutDuration": { +"description": "Interdigit timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"maxDigits": { +"description": "Max length of DTMF digits.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings": { +"description": "Define behaviors on logging.", +"id": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", +"properties": { +"enableConsentBasedRedaction": { +"description": "Enables consent-based end-user input redaction, if true, a pre-defined session parameter `$session.params.conversation-redaction` will be used to determine if the utterance should be redacted.", +"type": "boolean" +}, +"enableInteractionLogging": { +"description": "Enables DF Interaction logging.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"description": "Enables Google Cloud Logging.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings": { +"description": "Define behaviors of speech to text detection.", +"id": "GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings", +"properties": { +"endpointerSensitivity": { +"description": "Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.", +"format": "int32", +"type": "integer" +}, +"models": { +"additionalProperties": { +"type": "string" +}, +"description": "Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "object" +}, +"noSpeechTimeout": { +"description": "Timeout before detecting no speech.", +"format": "google-duration", +"type": "string" +}, +"useTimeoutBasedEndpointing": { +"description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AudioInput": { +"description": "Represents the natural speech audio to be processed.", +"id": "GoogleCloudDialogflowCxV3AudioInput", +"properties": { +"audio": { +"description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", +"format": "byte", +"type": "string" +}, +"config": { +"$ref": "GoogleCloudDialogflowCxV3InputAudioConfig", +"description": "Required. Instructs the speech recognizer how to process the speech audio." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BargeInConfig": { +"description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", +"id": "GoogleCloudDialogflowCxV3BargeInConfig", +"properties": { +"noBargeInDuration": { +"description": "Duration that is not eligible for barge-in at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +}, +"totalDuration": { +"description": "Total duration for the playback at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata": { +"description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BatchRunTestCasesResponse": { +"description": "The response message for TestCases.BatchRunTestCases.", +"id": "GoogleCloudDialogflowCxV3BatchRunTestCasesResponse", +"properties": { +"results": { +"description": "The test case results. The detailed conversation turns are empty in this response.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ContinuousTestResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3ContinuousTestResult", +"properties": { +"name": { +"description": "The resource name for the continuous test result. Format: `projects//locations//agents//environments//continuousTestResults/`.", +"type": "string" +}, +"result": { +"description": "The result of this continuous test run, i.e. whether all the tests in this continuous test run pass or not.", +"enum": [ +"AGGREGATED_TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"All the tests passed.", +"At least one test did not pass." +], +"type": "string" +}, +"runTime": { +"description": "Time when the continuous testing run starts.", +"format": "google-datetime", +"type": "string" +}, +"testCaseResults": { +"description": "A list of individual test case results names in this continuous test run.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationSignals": { +"description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", +"id": "GoogleCloudDialogflowCxV3ConversationSignals", +"properties": { +"turnSignals": { +"$ref": "GoogleCloudDialogflowCxV3TurnSignals", +"description": "Required. Turn signals for the current turn." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationTurn": { +"description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", +"id": "GoogleCloudDialogflowCxV3ConversationTurn", +"properties": { +"userInput": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurnUserInput", +"description": "The user input." +}, +"virtualAgentOutput": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput", +"description": "The virtual agent output." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationTurnUserInput": { +"description": "The input from the human user.", +"id": "GoogleCloudDialogflowCxV3ConversationTurnUserInput", +"properties": { +"enableSentimentAnalysis": { +"description": "Whether sentiment analysis is enabled.", +"type": "boolean" +}, +"injectedParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters that need to be injected into the conversation during intent detection.", +"type": "object" +}, +"input": { +"$ref": "GoogleCloudDialogflowCxV3QueryInput", +"description": "Supports text input, event input, dtmf input in the test case." +}, +"isWebhookEnabled": { +"description": "If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput": { +"description": "The output from the virtual agent.", +"id": "GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput", +"properties": { +"currentPage": { +"$ref": "GoogleCloudDialogflowCxV3Page", +"description": "The Page on which the utterance was spoken. Only name and displayName will be set." +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. Input only. The diagnostic info output for the turn. Required to calculate the testing coverage.", +"type": "object" +}, +"differences": { +"description": "Output only. If this is part of a result conversation turn, the list of differences between the original run and the replay for this output, if any.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestRunDifference" +}, +"readOnly": true, +"type": "array" +}, +"sessionParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The session parameters available to the bot at this point.", +"type": "object" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "Response error from the agent in the test result. If set, other output is empty." +}, +"textResponses": { +"description": "The text responses from the agent for the turn.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageText" +}, +"type": "array" +}, +"triggeredIntent": { +"$ref": "GoogleCloudDialogflowCxV3Intent", +"description": "The Intent that triggered the response. Only name and displayName will be set." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3CreateVersionOperationMetadata": { +"description": "Metadata associated with the long running operation for Versions.CreateVersion.", +"id": "GoogleCloudDialogflowCxV3CreateVersionOperationMetadata", +"properties": { +"version": { +"description": "Name of the created version. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnection": { +"description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnection", +"properties": { +"dataStore": { +"description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"type": "string" +}, +"dataStoreType": { +"description": "The type of the connected data store.", +"enum": [ +"DATA_STORE_TYPE_UNSPECIFIED", +"PUBLIC_WEB", +"UNSTRUCTURED", +"STRUCTURED" +], +"enumDescriptions": [ +"Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", +"A data store that contains public web content.", +"A data store that contains unstructured private data.", +"A data store that contains structured data (for example FAQ)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DeployFlowMetadata": { +"description": "Metadata returned for the Environments.DeployFlow long running operation.", +"id": "GoogleCloudDialogflowCxV3DeployFlowMetadata", +"properties": { +"testErrors": { +"description": "Errors of running deployment tests.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DeployFlowResponse": { +"description": "The response message for Environments.DeployFlow.", +"id": "GoogleCloudDialogflowCxV3DeployFlowResponse", +"properties": { +"deployment": { +"description": "The name of the flow version Deployment. Format: `projects//locations//agents//environments//deployments/`.", +"type": "string" +}, +"environment": { +"$ref": "GoogleCloudDialogflowCxV3Environment", +"description": "The updated environment where the flow is deployed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DtmfInput": { +"description": "Represents the input for dtmf event.", +"id": "GoogleCloudDialogflowCxV3DtmfInput", +"properties": { +"digits": { +"description": "The dtmf digits.", +"type": "string" +}, +"finishDigit": { +"description": "The finish digit (if any).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Environment": { +"description": "Represents an environment for an agent. You can create multiple versions of your agent and publish them to separate environments. When you edit an agent, you are editing the draft agent. At any point, you can save the draft agent as an agent version, which is an immutable snapshot of your agent. When you save the draft agent, it is published to the default environment. When you create agent versions, you can publish them to custom environments. You can create a variety of custom environments for testing, development, production, etc.", +"id": "GoogleCloudDialogflowCxV3Environment", +"properties": { +"description": { +"description": "The human-readable description of the environment. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the environment (unique in an agent). Limit of 64 characters.", +"type": "string" +}, +"name": { +"description": "The name of the environment. Format: `projects//locations//agents//environments/`.", +"type": "string" +}, +"testCasesConfig": { +"$ref": "GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig", +"description": "The test cases config for continuous tests of this environment." +}, +"updateTime": { +"description": "Output only. Update time of this environment.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"versionConfigs": { +"description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" +}, +"type": "array" +}, +"webhookConfig": { +"$ref": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", +"description": "The webhook configuration for this environment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig": { +"description": "The configuration for continuous tests.", +"id": "GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig", +"properties": { +"enableContinuousRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases periodically. Default false. If set to true, run once a day.", +"type": "boolean" +}, +"enablePredeploymentRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases before deploying a flow version to the environment. Default false.", +"type": "boolean" +}, +"testCases": { +"description": "A list of test case names to run. They should be under the same agent. Format of each test case name: `projects//locations//agents//testCases/`", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EnvironmentVersionConfig": { +"description": "Configuration for the version.", +"id": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig", +"properties": { +"version": { +"description": "Required. Both flow and playbook versions are supported. Format for flow version: projects//locations//agents//flows//versions/. Format for playbook version: projects//locations//agents//playbooks//versions/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EnvironmentWebhookConfig": { +"description": "Configuration for webhooks.", +"id": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", +"properties": { +"webhookOverrides": { +"description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EventHandler": { +"description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3EventHandler", +"properties": { +"event": { +"description": "Required. The name of the event to handle.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this event handler.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"targetPlaybook": { +"description": "The target playbook to transition to. Format: `projects//locations//agents//playbooks/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EventInput": { +"description": "Represents the event to trigger.", +"id": "GoogleCloudDialogflowCxV3EventInput", +"properties": { +"event": { +"description": "Name of the event.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowCxV3ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", +"type": "string" +}, +"commitSha": { +"description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3ExportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportEntityTypesResponse": { +"description": "The response message for EntityTypes.ExportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ExportEntityTypesResponse", +"properties": { +"entityTypesContent": { +"$ref": "GoogleCloudDialogflowCxV3InlineDestination", +"description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." +}, +"entityTypesUri": { +"description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportFlowResponse": { +"description": "The response message for Flows.ExportFlow.", +"id": "GoogleCloudDialogflowCxV3ExportFlowResponse", +"properties": { +"flowContent": { +"description": "Uncompressed raw byte content for flow.", +"format": "byte", +"type": "string" +}, +"flowUri": { +"description": "The URI to a file containing the exported flow. This field is populated only if `flow_uri` is specified in ExportFlowRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportIntentsMetadata": { +"description": "Metadata returned for the Intents.ExportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3ExportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportIntentsResponse": { +"description": "The response message for Intents.ExportIntents.", +"id": "GoogleCloudDialogflowCxV3ExportIntentsResponse", +"properties": { +"intentsContent": { +"$ref": "GoogleCloudDialogflowCxV3InlineDestination", +"description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." +}, +"intentsUri": { +"description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3ExportTestCasesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportTestCasesResponse": { +"description": "The response message for TestCases.ExportTestCases.", +"id": "GoogleCloudDialogflowCxV3ExportTestCasesResponse", +"properties": { +"content": { +"description": "Uncompressed raw byte content for test cases.", +"format": "byte", +"type": "string" +}, +"gcsUri": { +"description": "The URI to a file containing the exported test cases. This field is populated only if `gcs_uri` is specified in ExportTestCasesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Form": { +"description": "A form is a data model that groups related parameters that can be collected from the user. The process in which the agent prompts the user and collects parameter values from the user is called form filling. A form can be added to a page. When form filling is done, the filled parameters will be written to the session.", +"id": "GoogleCloudDialogflowCxV3Form", +"properties": { +"parameters": { +"description": "Parameters to collect from the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FormParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FormParameter": { +"description": "Represents a form parameter.", +"id": "GoogleCloudDialogflowCxV3FormParameter", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"defaultValue": { +"description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", +"type": "any" +}, +"displayName": { +"description": "Required. The human-readable name of the parameter, unique within the form.", +"type": "string" +}, +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"fillBehavior": { +"$ref": "GoogleCloudDialogflowCxV3FormParameterFillBehavior", +"description": "Required. Defines fill behavior for the parameter." +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +}, +"required": { +"description": "Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FormParameterFillBehavior": { +"description": "Configuration for how the filling of a parameter should be handled.", +"id": "GoogleCloudDialogflowCxV3FormParameterFillBehavior", +"properties": { +"initialPromptFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "Required. The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter." +}, +"repromptEventHandlers": { +"description": "The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are: * `sys.no-match-`, where N can be from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter` `initial_prompt_fulfillment` provides the first prompt for the parameter. If the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to the next no-match/no-input event, and so on. A `sys.no-match-default` or `sys.no-input-default` handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed. A `sys.invalid-parameter` handler can be defined to handle the case where the parameter values have been `invalidated` by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the `sys.invalid-parameter` handler (if defined) will be called to provide a prompt. If the event handler for the corresponding event can't be found on the parameter, `initial_prompt_fulfillment` will be re-prompted.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EventHandler" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Fulfillment": { +"description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", +"id": "GoogleCloudDialogflowCxV3Fulfillment", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"conditionalCases": { +"description": "Conditional cases for this fulfillment.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCases" +}, +"type": "array" +}, +"enableGenerativeFallback": { +"description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", +"type": "boolean" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +}, +"returnPartialResponses": { +"description": "Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.", +"type": "boolean" +}, +"setParameterActions": { +"description": "Set parameter values before executing the webhook.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentSetParameterAction" +}, +"type": "array" +}, +"tag": { +"description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", +"type": "string" +}, +"webhook": { +"description": "The webhook to call. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentConditionalCases": { +"description": "A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.", +"id": "GoogleCloudDialogflowCxV3FulfillmentConditionalCases", +"properties": { +"cases": { +"description": "A list of cascading if-else conditions.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase": { +"description": "Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively.", +"id": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase", +"properties": { +"caseContent": { +"description": "A list of case content.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent" +}, +"type": "array" +}, +"condition": { +"description": "The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent": { +"description": "The list of messages or conditional cases to activate for this case.", +"id": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent", +"properties": { +"additionalCases": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCases", +"description": "Additional cases to be evaluated." +}, +"message": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage", +"description": "Returned message." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentSetParameterAction": { +"description": "Setting a parameter value.", +"id": "GoogleCloudDialogflowCxV3FulfillmentSetParameterAction", +"properties": { +"parameter": { +"description": "Display name of the parameter.", +"type": "string" +}, +"value": { +"description": "The new value of the parameter. A null value clears the parameter.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GcsDestination": { +"description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3GcsDestination", +"properties": { +"uri": { +"description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesResponse": { +"description": "The response message for EntityTypes.ImportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." +}, +"entityTypes": { +"description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entityTypeDisplayNames": { +"description": "Display names of conflicting entity types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportFlowResponse": { +"description": "The response message for Flows.ImportFlow.", +"id": "GoogleCloudDialogflowCxV3ImportFlowResponse", +"properties": { +"flow": { +"description": "The unique identifier of the new flow. Format: `projects//locations//agents//flows/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsMetadata": { +"description": "Metadata returned for the Intents.ImportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsResponse": { +"description": "The response message for Intents.ImportIntents.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." +}, +"intents": { +"description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intentDisplayNames": { +"description": "Display names of conflicting intents.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ImportTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3ImportTestCasesMetadata", +"properties": { +"errors": { +"description": "Errors for failed test cases.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportTestCasesResponse": { +"description": "The response message for TestCases.ImportTestCases.", +"id": "GoogleCloudDialogflowCxV3ImportTestCasesResponse", +"properties": { +"names": { +"description": "The unique identifiers of the new test cases. Format: `projects//locations//agents//testCases/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3InlineDestination": { +"description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3InlineDestination", +"properties": { +"content": { +"description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", +"format": "byte", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3InputAudioConfig": { +"description": "Instructs the speech recognizer on how to process the audio content.", +"id": "GoogleCloudDialogflowCxV3InputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the audio content to process.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"AUDIO_ENCODING_LINEAR_16", +"AUDIO_ENCODING_FLAC", +"AUDIO_ENCODING_MULAW", +"AUDIO_ENCODING_AMR", +"AUDIO_ENCODING_AMR_WB", +"AUDIO_ENCODING_OGG_OPUS", +"AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE", +"AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"[`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio Codec) is the recommended encoding because it is lossless (therefore recognition is not compromised) and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be 16000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Dialogflow API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"bargeInConfig": { +"$ref": "GoogleCloudDialogflowCxV3BargeInConfig", +"description": "Configuration of barge-in behavior during the streaming of input audio." +}, +"enableWordInfo": { +"description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", +"type": "boolean" +}, +"model": { +"description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "string" +}, +"modelVariant": { +"description": "Optional. Which variant of the Speech model to use.", +"enum": [ +"SPEECH_MODEL_VARIANT_UNSPECIFIED", +"USE_BEST_AVAILABLE", +"USE_STANDARD", +"USE_ENHANCED" +], +"enumDescriptions": [ +"No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", +"Use the best available variant of the Speech model that the caller is eligible for.", +"Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", +"Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." +], +"type": "string" +}, +"optOutConformerModelMigration": { +"description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", +"type": "boolean" +}, +"phraseHints": { +"description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.", +"format": "int32", +"type": "integer" +}, +"singleUtterance": { +"description": "Optional. If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Intent": { +"description": "An intent represents a user's intent to interact with a conversational agent. You can provide information for the Dialogflow API to use to match user input to an intent by adding training phrases (i.e., examples of user input) to your intent.", +"id": "GoogleCloudDialogflowCxV3Intent", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the intent, unique within the agent.", +"type": "string" +}, +"isFallback": { +"description": "Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes. Prefix \"sys-\" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. \"sys-head\" means the intent is a head intent. \"sys.contextual\" means the intent is a contextual intent.", +"type": "object" +}, +"name": { +"description": "The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"description": "The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentParameter" +}, +"type": "array" +}, +"priority": { +"description": "The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"trainingPhrases": { +"description": "The collection of training phrases the agent is trained on to identify the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentTrainingPhrase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentInput": { +"description": "Represents the intent to trigger programmatically rather than as a result of natural language processing.", +"id": "GoogleCloudDialogflowCxV3IntentInput", +"properties": { +"intent": { +"description": "Required. The unique identifier of the intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentParameter": { +"description": "Represents an intent parameter.", +"id": "GoogleCloudDialogflowCxV3IntentParameter", +"properties": { +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier of the parameter. This field is used by training phrases to annotate their parts.", +"type": "string" +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on to identify the intent.", +"id": "GoogleCloudDialogflowCxV3IntentTrainingPhrase", +"properties": { +"id": { +"description": "Output only. The unique identifier of the training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `parameter_id` field is set.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentTrainingPhrasePart" +}, +"type": "array" +}, +"repeatCount": { +"description": "Indicates how many times this example was added to the intent.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowCxV3IntentTrainingPhrasePart", +"properties": { +"parameterId": { +"description": "The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3KnowledgeConnectorSettings": { +"description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", +"id": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", +"properties": { +"dataStoreConnections": { +"description": "Optional. List of related data store connections.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnection" +}, +"type": "array" +}, +"enabled": { +"description": "Whether Knowledge Connector is enabled or not.", +"type": "boolean" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3LanguageInfo": { +"description": "Represents the language information of the request.", +"id": "GoogleCloudDialogflowCxV3LanguageInfo", +"properties": { +"confidenceScore": { +"description": "The confidence score of the detected language between 0 and 1.", +"format": "float", +"type": "number" +}, +"inputLanguageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"resolvedLanguageCode": { +"description": "The language code detected for this request based on the user conversation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Page": { +"description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", +"id": "GoogleCloudDialogflowCxV3Page", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"description": { +"description": "The description of the page. The maximum length is 500 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the page, unique within the flow.", +"type": "string" +}, +"entryFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to call when the session is entering the page." +}, +"eventHandlers": { +"description": "Handlers associated with the page to handle events such as webhook errors, no match or no input.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EventHandler" +}, +"type": "array" +}, +"form": { +"$ref": "GoogleCloudDialogflowCxV3Form", +"description": "The form associated with the page, used for collecting parameters relevant to the page." +}, +"knowledgeConnectorSettings": { +"$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", +"description": "Optional. Knowledge connector configuration." +}, +"name": { +"description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"transitionRouteGroups": { +"description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", +"items": { +"type": "string" +}, +"type": "array" +}, +"transitionRoutes": { +"description": "A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: * TransitionRoutes defined in the page with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in flow with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in the page with only condition specified. * TransitionRoutes defined in the transition route groups with only condition specified.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3PageInfo": { +"description": "Represents page information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3PageInfo", +"properties": { +"currentPage": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the current page. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"displayName": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The display name of the current page.", +"type": "string" +}, +"formInfo": { +"$ref": "GoogleCloudDialogflowCxV3PageInfoFormInfo", +"description": "Optional for both WebhookRequest and WebhookResponse. Information about the form." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3PageInfoFormInfo": { +"description": "Represents form information.", +"id": "GoogleCloudDialogflowCxV3PageInfoFormInfo", +"properties": { +"parameterInfo": { +"description": "Optional for both WebhookRequest and WebhookResponse. The parameters contained in the form. Note that the webhook cannot add or remove any form parameter.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo": { +"description": "Represents parameter information.", +"id": "GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo", +"properties": { +"displayName": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The human-readable name of the parameter, unique within the form. This field cannot be modified by the webhook.", +"type": "string" +}, +"justCollected": { +"description": "Optional for WebhookRequest. Ignored for WebhookResponse. Indicates if the parameter value was just collected on the last conversation turn.", +"type": "boolean" +}, +"required": { +"description": "Optional for both WebhookRequest and WebhookResponse. Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +}, +"state": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The state of the parameter. This field can be set to INVALID by the webhook to invalidate the parameter; other values set by the webhook will be ignored.", +"enum": [ +"PARAMETER_STATE_UNSPECIFIED", +"EMPTY", +"INVALID", +"FILLED" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Indicates that the parameter does not have a value.", +"Indicates that the parameter value is invalid. This field can be used by the webhook to invalidate the parameter and ask the server to collect it from the user again.", +"Indicates that the parameter has a value." +], +"type": "string" +}, +"value": { +"description": "Optional for both WebhookRequest and WebhookResponse. The value of the parameter. This field can be set by the webhook to change the parameter value.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3QueryInput": { +"description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", +"id": "GoogleCloudDialogflowCxV3QueryInput", +"properties": { +"audio": { +"$ref": "GoogleCloudDialogflowCxV3AudioInput", +"description": "The natural language speech audio to be processed." +}, +"dtmf": { +"$ref": "GoogleCloudDialogflowCxV3DtmfInput", +"description": "The DTMF event to be handled." +}, +"event": { +"$ref": "GoogleCloudDialogflowCxV3EventInput", +"description": "The event to be triggered." +}, +"intent": { +"$ref": "GoogleCloudDialogflowCxV3IntentInput", +"description": "The intent to be triggered." +}, +"languageCode": { +"description": "Required. The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3TextInput", +"description": "The natural language text to be processed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessage": { +"description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", +"id": "GoogleCloudDialogflowCxV3ResponseMessage", +"properties": { +"channel": { +"description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", +"type": "string" +}, +"conversationSuccess": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", +"description": "Indicates that the conversation succeeded." +}, +"endInteraction": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageEndInteraction", +"description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", +"readOnly": true +}, +"knowledgeInfoCard": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", +"description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." +}, +"liveAgentHandoff": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", +"description": "Hands off conversation to a human agent." +}, +"mixedAudio": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudio", +"description": "Output only. An audio response message composed of both the synthesized Dialogflow agent responses and responses defined via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"readOnly": true +}, +"outputAudioText": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText", +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Returns a response containing a custom, platform-specific payload.", +"type": "object" +}, +"playAudio": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", +"description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." +}, +"responseType": { +"description": "Response type.", +"enum": [ +"RESPONSE_TYPE_UNSPECIFIED", +"ENTRY_PROMPT", +"PARAMETER_PROMPT", +"HANDLER_PROMPT" +], +"enumDescriptions": [ +"Not specified.", +"The response is from an entry prompt in the page.", +"The response is from form-filling prompt in the page.", +"The response is from a transition route or an event handler in the page or flow or transition route group." +], +"type": "string" +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", +"description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageText", +"description": "Returns a text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess": { +"description": "Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates that the conversation succeeded. * In a webhook response when you determine that you handled the customer issue.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageEndInteraction": { +"description": "Indicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageEndInteraction", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard": { +"description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff": { +"description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageMixedAudio": { +"description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudio", +"properties": { +"segments": { +"description": "Segments this audio response is composed of.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment": { +"description": "Represents one segment of audio.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audio": { +"description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText": { +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"ssml": { +"description": "The SSML text to be synthesized. For more information, see [SSML](/speech/text-to-speech/docs/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessagePlayAudio": { +"description": "Specifies an audio clip to be played by the client as part of the response.", +"id": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audioUri": { +"description": "Required. URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall": { +"description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"text": { +"description": "Required. A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunContinuousTestMetadata": { +"description": "Metadata returned for the Environments.RunContinuousTest long running operation.", +"id": "GoogleCloudDialogflowCxV3RunContinuousTestMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunContinuousTestResponse": { +"description": "The response message for Environments.RunContinuousTest.", +"id": "GoogleCloudDialogflowCxV3RunContinuousTestResponse", +"properties": { +"continuousTestResult": { +"$ref": "GoogleCloudDialogflowCxV3ContinuousTestResult", +"description": "The result for a continuous test run." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunTestCaseMetadata": { +"description": "Metadata returned for the TestCases.RunTestCase long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3RunTestCaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunTestCaseResponse": { +"description": "The response message for TestCases.RunTestCase.", +"id": "GoogleCloudDialogflowCxV3RunTestCaseResponse", +"properties": { +"result": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult", +"description": "The result." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SessionInfo": { +"description": "Represents session information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3SessionInfo", +"properties": { +"parameters": { +"additionalProperties": { +"type": "any" +}, +"description": "Optional for WebhookRequest. Optional for WebhookResponse. All parameters collected from forms and intents during the session. Parameters can be created, updated, or removed by the webhook. To remove a parameter from the session, the webhook should explicitly set the parameter value to null in WebhookResponse. The map is keyed by parameters' display names.", +"type": "object" +}, +"session": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the session. This field can be used by the webhook to identify a session. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/` if environment is specified.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestCase": { +"description": "Represents a test case.", +"id": "GoogleCloudDialogflowCxV3TestCase", +"properties": { +"creationTime": { +"description": "Output only. When the test was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the test case, unique within the agent. Limit of 200 characters.", +"type": "string" +}, +"lastTestResult": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult", +"description": "The latest test result." +}, +"name": { +"description": "The unique identifier of the test case. TestCases.CreateTestCase will populate the name automatically. Otherwise use format: `projects//locations//agents//testCases/`.", +"type": "string" +}, +"notes": { +"description": "Additional freeform notes about the test case. Limit of 400 characters.", +"type": "string" +}, +"tags": { +"description": "Tags are short descriptions that users may apply to test cases for organizational and filtering purposes. Each tag should start with \"#\" and has a limit of 30 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"testCaseConversationTurns": { +"description": "The conversation turns uttered when the test case was created, in chronological order. These include the canonical set of agent utterances that should occur when the agent is working properly.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurn" +}, +"type": "array" +}, +"testConfig": { +"$ref": "GoogleCloudDialogflowCxV3TestConfig", +"description": "Config for the test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestCaseError": { +"description": "Error info for importing a test.", +"id": "GoogleCloudDialogflowCxV3TestCaseError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test case." +}, +"testCase": { +"$ref": "GoogleCloudDialogflowCxV3TestCase", +"description": "The test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestCaseResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3TestCaseResult", +"properties": { +"conversationTurns": { +"description": "The conversation turns uttered during the test case replay in chronological order.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurn" +}, +"type": "array" +}, +"environment": { +"description": "Environment where the test was run. If not set, it indicates the draft environment.", +"type": "string" +}, +"name": { +"description": "The resource name for the test case result. Format: `projects//locations//agents//testCases//results/`.", +"type": "string" +}, +"testResult": { +"description": "Whether the test case passed in the agent environment.", +"enum": [ +"TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"The test passed.", +"The test did not pass." +], +"type": "string" +}, +"testTime": { +"description": "The time that the test was run.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestConfig": { +"description": "Represents configurations for a test case.", +"id": "GoogleCloudDialogflowCxV3TestConfig", +"properties": { +"flow": { +"description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"page": { +"description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"trackingParameters": { +"description": "Session parameters to be compared when calculating differences.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestError": { +"description": "Error info for running a test.", +"id": "GoogleCloudDialogflowCxV3TestError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test." +}, +"testCase": { +"description": "The test case resource name.", +"type": "string" +}, +"testTime": { +"description": "The timestamp when the test was completed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestRunDifference": { +"description": "The description of differences between original and replayed agent output.", +"id": "GoogleCloudDialogflowCxV3TestRunDifference", +"properties": { +"description": { +"description": "A human readable description of the diff, showing the actual output vs expected output.", +"type": "string" +}, +"type": { +"description": "The type of diff.", +"enum": [ +"DIFF_TYPE_UNSPECIFIED", +"INTENT", +"PAGE", +"PARAMETERS", +"UTTERANCE", +"FLOW" +], +"enumDescriptions": [ +"Should never be used.", +"The intent.", +"The page.", +"The parameters.", +"The message utterance.", +"The flow." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TextInput": { +"description": "Represents the natural language text to be processed.", +"id": "GoogleCloudDialogflowCxV3TextInput", +"properties": { +"text": { +"description": "Required. The UTF-8 encoded natural language text to be processed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionRoute": { +"description": "A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3TransitionRoute", +"properties": { +"condition": { +"description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"description": { +"description": "Optional. The description of the transition route. The maximum length is 500 characters.", +"type": "string" +}, +"intent": { +"description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this transition route.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to call when the condition is satisfied. At least one of `trigger_fulfillment` and `target` must be specified. When both are defined, `trigger_fulfillment` is executed first." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TurnSignals": { +"description": "Collection of all signals that were extracted for a single turn of the conversation.", +"id": "GoogleCloudDialogflowCxV3TurnSignals", +"properties": { +"agentEscalated": { +"description": "Whether agent responded with LiveAgentHandoff fulfillment.", +"type": "boolean" +}, +"dtmfUsed": { +"description": "Whether user was using DTMF input.", +"type": "boolean" +}, +"failureReasons": { +"description": "Failure reasons of the turn.", +"items": { +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"FAILED_INTENT", +"FAILED_WEBHOOK" +], +"enumDescriptions": [ +"Failure reason is not assigned.", +"Whether NLU failed to recognize user intent.", +"Whether webhook failed during the turn." +], +"type": "string" +}, +"type": "array" +}, +"noMatch": { +"description": "Whether NLU predicted NO_MATCH.", +"type": "boolean" +}, +"noUserInput": { +"description": "Whether user provided no input.", +"type": "boolean" +}, +"reachedEndPage": { +"description": "Whether turn resulted in End Session page.", +"type": "boolean" +}, +"sentimentMagnitude": { +"description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"sentimentScore": { +"description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"userEscalated": { +"description": "Whether user was specifically asking for a live agent.", +"type": "boolean" +}, +"webhookStatuses": { +"description": "Human-readable statuses of the webhooks triggered during this turn.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Webhook": { +"description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", +"id": "GoogleCloudDialogflowCxV3Webhook", +"properties": { +"disabled": { +"description": "Indicates whether the webhook is disabled.", +"type": "boolean" +}, +"displayName": { +"description": "Required. The human-readable name of the webhook, unique within the agent.", +"type": "string" +}, +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", +"description": "Configuration for a generic web service." +}, +"name": { +"description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +}, +"serviceDirectory": { +"$ref": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", +"description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." +}, +"timeout": { +"description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookGenericWebService": { +"description": "Represents configuration for a generic web service.", +"id": "GoogleCloudDialogflowCxV3WebhookGenericWebService", +"properties": { +"allowedCaCerts": { +"description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"httpMethod": { +"description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method not specified.", +"HTTP POST Method.", +"HTTP GET Method.", +"HTTP HEAD Method.", +"HTTP PUT Method.", +"HTTP DELETE Method.", +"HTTP PATCH Method.", +"HTTP OPTIONS Method." +], +"type": "string" +}, +"oauthConfig": { +"$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig", +"description": "Optional. The OAuth configuration of the webhook. If specified, Dialogflow will initiate the OAuth client credential flow to exchange an access token from the 3rd party platform and put it in the auth header." +}, +"parameterMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", +"type": "object" +}, +"password": { +"deprecated": true, +"description": "The password for HTTP Basic authentication.", +"type": "string" +}, +"requestBody": { +"description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", +"type": "string" +}, +"requestHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "The HTTP request headers to send together with webhook requests.", +"type": "object" +}, +"serviceAgentAuth": { +"description": "Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.", +"enum": [ +"SERVICE_AGENT_AUTH_UNSPECIFIED", +"NONE", +"ID_TOKEN", +"ACCESS_TOKEN" +], +"enumDescriptions": [ +"Service agent auth type unspecified. Default to ID_TOKEN.", +"No token used.", +"Use [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. This can be used to access Cloud Function and Cloud Run after you grant Invoker role to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.", +"Use [access token](https://cloud.google.com/docs/authentication/token-types#access) generated from service agent. This can be used to access other Google Cloud APIs after you grant required roles to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`." +], +"type": "string" +}, +"uri": { +"description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", +"type": "string" +}, +"username": { +"deprecated": true, +"description": "The user name for HTTP Basic authentication.", +"type": "string" +}, +"webhookType": { +"description": "Optional. Type of the webhook.", +"enum": [ +"WEBHOOK_TYPE_UNSPECIFIED", +"STANDARD", +"FLEXIBLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents a standard webhook.", +"Represents a flexible webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig": { +"description": "Represents configuration of OAuth client credential flow for 3rd party API authentication.", +"id": "GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig", +"properties": { +"clientId": { +"description": "Required. The client ID provided by the 3rd party platform.", +"type": "string" +}, +"clientSecret": { +"description": "Required. The client secret provided by the 3rd party platform.", +"type": "string" +}, +"scopes": { +"description": "Optional. The OAuth scopes to grant.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tokenEndpoint": { +"description": "Required. The token endpoint provided by the 3rd party platform to exchange an access token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequest": { +"description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", +"id": "GoogleCloudDialogflowCxV3WebhookRequest", +"properties": { +"detectIntentResponseId": { +"description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", +"type": "string" +}, +"dtmfDigits": { +"description": "If DTMF was provided as input, this field will contain the DTMF digits.", +"type": "string" +}, +"fulfillmentInfo": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", +"description": "Always present. Information about the fulfillment that triggered this webhook call." +}, +"intentInfo": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfo", +"description": "Information about the last matched intent." +}, +"languageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"languageInfo": { +"$ref": "GoogleCloudDialogflowCxV3LanguageInfo", +"description": "Information about the language of the request." +}, +"messages": { +"description": "The list of rich message responses to present to the user. Webhook can choose to append or replace this list in WebhookResponse.fulfillment_response;", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3PageInfo", +"description": "Information about page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom data set in QueryParameters.payload.", +"type": "object" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult", +"description": "The sentiment analysis result of the current user request. The field is filled when sentiment analysis is configured to be enabled for the request." +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3SessionInfo", +"description": "Information about session status." +}, +"text": { +"description": "If natural language text was provided as input, this field will contain a copy of the text.", +"type": "string" +}, +"transcript": { +"description": "If natural language speech audio was provided as input, this field will contain the transcript for the audio.", +"type": "string" +}, +"triggerEvent": { +"description": "If an event was provided as input, this field will contain the name of the event.", +"type": "string" +}, +"triggerIntent": { +"description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo": { +"description": "Represents fulfillment information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", +"properties": { +"tag": { +"description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestIntentInfo": { +"description": "Represents intent information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfo", +"properties": { +"confidence": { +"description": "The confidence of the matched intent. Values range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"displayName": { +"description": "Always present. The display name of the last matched intent.", +"type": "string" +}, +"lastMatchedIntent": { +"description": "Always present. The unique identifier of the last matched intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue" +}, +"description": "Parameters identified as a result of intent matching. This is a map of the name of the identified parameter to the value of the parameter identified from the user's utterance. All parameters defined in the matched intent that are identified will be surfaced here.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue": { +"description": "Represents a value for an intent parameter.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue", +"properties": { +"originalValue": { +"description": "Always present. Original text value extracted from user utterance.", +"type": "string" +}, +"resolvedValue": { +"description": "Always present. Structured value for the parameter extracted from user utterance.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult": { +"description": "Represents the result of sentiment analysis.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookResponse": { +"description": "The response message for a webhook call.", +"id": "GoogleCloudDialogflowCxV3WebhookResponse", +"properties": { +"fulfillmentResponse": { +"$ref": "GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse", +"description": "The fulfillment response to send to the user. This field can be omitted by the webhook if it does not intend to send any response to the user." +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3PageInfo", +"description": "Information about page status. This field can be omitted by the webhook if it does not intend to modify page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Value to append directly to QueryResult.webhook_payloads.", +"type": "object" +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3SessionInfo", +"description": "Information about session status. This field can be omitted by the webhook if it does not intend to modify session status." +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse": { +"description": "Represents a fulfillment response to the user.", +"id": "GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse", +"properties": { +"mergeBehavior": { +"description": "Merge behavior for `messages`.", +"enum": [ +"MERGE_BEHAVIOR_UNSPECIFIED", +"APPEND", +"REPLACE" +], +"enumDescriptions": [ +"Not specified. `APPEND` will be used.", +"`messages` will be appended to the list of messages waiting to be sent to the user.", +"`messages` will replace the list of messages waiting to be sent to the user." +], +"type": "string" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig": { +"description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", +"id": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", +"properties": { +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", +"description": "Generic Service configuration of this webhook." +}, +"service": { +"description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettings": { +"description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"properties": { +"audioExportGcsDestination": { +"$ref": "GoogleCloudDialogflowCxV3beta1GcsDestination", +"description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" +}, +"dtmfSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", +"description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." +}, +"loggingSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", +"description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." +}, +"speechSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings", +"description": "Settings for speech to text detection. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings": { +"description": "Define behaviors for DTMF (dual tone multi frequency).", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", +"properties": { +"enabled": { +"description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", +"type": "boolean" +}, +"endpointingTimeoutDuration": { +"description": "Endpoint timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"finishDigit": { +"description": "The digit that terminates a DTMF digit sequence.", +"type": "string" +}, +"interdigitTimeoutDuration": { +"description": "Interdigit timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"maxDigits": { +"description": "Max length of DTMF digits.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings": { +"description": "Define behaviors on logging.", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", +"properties": { +"enableConsentBasedRedaction": { +"description": "Enables consent-based end-user input redaction, if true, a pre-defined session parameter `$session.params.conversation-redaction` will be used to determine if the utterance should be redacted.", +"type": "boolean" +}, +"enableInteractionLogging": { +"description": "Enables DF Interaction logging.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"description": "Enables Google Cloud Logging.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings": { +"description": "Define behaviors of speech to text detection.", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings", +"properties": { +"endpointerSensitivity": { +"description": "Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.", +"format": "int32", +"type": "integer" +}, +"models": { +"additionalProperties": { +"type": "string" +}, +"description": "Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "object" +}, +"noSpeechTimeout": { +"description": "Timeout before detecting no speech.", +"format": "google-duration", +"type": "string" +}, +"useTimeoutBasedEndpointing": { +"description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AudioInput": { +"description": "Represents the natural speech audio to be processed.", +"id": "GoogleCloudDialogflowCxV3beta1AudioInput", +"properties": { +"audio": { +"description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", +"format": "byte", +"type": "string" +}, +"config": { +"$ref": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", +"description": "Required. Instructs the speech recognizer how to process the speech audio." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1BargeInConfig": { +"description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", +"id": "GoogleCloudDialogflowCxV3beta1BargeInConfig", +"properties": { +"noBargeInDuration": { +"description": "Duration that is not eligible for barge-in at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +}, +"totalDuration": { +"description": "Total duration for the playback at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata": { +"description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1BatchRunTestCasesResponse": { +"description": "The response message for TestCases.BatchRunTestCases.", +"id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesResponse", +"properties": { +"results": { +"description": "The test case results. The detailed conversation turns are empty in this response.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ContinuousTestResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3beta1ContinuousTestResult", +"properties": { +"name": { +"description": "The resource name for the continuous test result. Format: `projects//locations//agents//environments//continuousTestResults/`.", +"type": "string" +}, +"result": { +"description": "The result of this continuous test run, i.e. whether all the tests in this continuous test run pass or not.", +"enum": [ +"AGGREGATED_TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"All the tests passed.", +"At least one test did not pass." +], +"type": "string" +}, +"runTime": { +"description": "Time when the continuous testing run starts.", +"format": "google-datetime", +"type": "string" +}, +"testCaseResults": { +"description": "A list of individual test case results names in this continuous test run.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationSignals": { +"description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationSignals", +"properties": { +"turnSignals": { +"$ref": "GoogleCloudDialogflowCxV3beta1TurnSignals", +"description": "Required. Turn signals for the current turn." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationTurn": { +"description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationTurn", +"properties": { +"userInput": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput", +"description": "The user input." +}, +"virtualAgentOutput": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput", +"description": "The virtual agent output." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput": { +"description": "The input from the human user.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput", +"properties": { +"enableSentimentAnalysis": { +"description": "Whether sentiment analysis is enabled.", +"type": "boolean" +}, +"injectedParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters that need to be injected into the conversation during intent detection.", +"type": "object" +}, +"input": { +"$ref": "GoogleCloudDialogflowCxV3beta1QueryInput", +"description": "Supports text input, event input, dtmf input in the test case." +}, +"isWebhookEnabled": { +"description": "If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput": { +"description": "The output from the virtual agent.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput", +"properties": { +"currentPage": { +"$ref": "GoogleCloudDialogflowCxV3beta1Page", +"description": "The Page on which the utterance was spoken. Only name and displayName will be set." +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. Input only. The diagnostic info output for the turn. Required to calculate the testing coverage.", +"type": "object" +}, +"differences": { +"description": "Output only. If this is part of a result conversation turn, the list of differences between the original run and the replay for this output, if any.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestRunDifference" +}, +"readOnly": true, +"type": "array" +}, +"sessionParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The session parameters available to the bot at this point.", +"type": "object" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "Response error from the agent in the test result. If set, other output is empty." +}, +"textResponses": { +"description": "The text responses from the agent for the turn.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageText" +}, +"type": "array" +}, +"triggeredIntent": { +"$ref": "GoogleCloudDialogflowCxV3beta1Intent", +"description": "The Intent that triggered the response. Only name and displayName will be set." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1CreateVersionOperationMetadata": { +"description": "Metadata associated with the long running operation for Versions.CreateVersion.", +"id": "GoogleCloudDialogflowCxV3beta1CreateVersionOperationMetadata", +"properties": { +"version": { +"description": "Name of the created version. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DataStoreConnection": { +"description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", +"id": "GoogleCloudDialogflowCxV3beta1DataStoreConnection", +"properties": { +"dataStore": { +"description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"type": "string" +}, +"dataStoreType": { +"description": "The type of the connected data store.", +"enum": [ +"DATA_STORE_TYPE_UNSPECIFIED", +"PUBLIC_WEB", +"UNSTRUCTURED", +"STRUCTURED" +], +"enumDescriptions": [ +"Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", +"A data store that contains public web content.", +"A data store that contains unstructured private data.", +"A data store that contains structured data (for example FAQ)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DeployFlowMetadata": { +"description": "Metadata returned for the Environments.DeployFlow long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1DeployFlowMetadata", +"properties": { +"testErrors": { +"description": "Errors of running deployment tests.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DeployFlowResponse": { +"description": "The response message for Environments.DeployFlow.", +"id": "GoogleCloudDialogflowCxV3beta1DeployFlowResponse", +"properties": { +"deployment": { +"description": "The name of the flow version deployment. Format: `projects//locations//agents//environments//deployments/`.", +"type": "string" +}, +"environment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Environment", +"description": "The updated environment where the flow is deployed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DtmfInput": { +"description": "Represents the input for dtmf event.", +"id": "GoogleCloudDialogflowCxV3beta1DtmfInput", +"properties": { +"digits": { +"description": "The dtmf digits.", +"type": "string" +}, +"finishDigit": { +"description": "The finish digit (if any).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Environment": { +"description": "Represents an environment for an agent. You can create multiple versions of your agent and publish them to separate environments. When you edit an agent, you are editing the draft agent. At any point, you can save the draft agent as an agent version, which is an immutable snapshot of your agent. When you save the draft agent, it is published to the default environment. When you create agent versions, you can publish them to custom environments. You can create a variety of custom environments for testing, development, production, etc.", +"id": "GoogleCloudDialogflowCxV3beta1Environment", +"properties": { +"description": { +"description": "The human-readable description of the environment. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the environment (unique in an agent). Limit of 64 characters.", +"type": "string" +}, +"name": { +"description": "The name of the environment. Format: `projects//locations//agents//environments/`.", +"type": "string" +}, +"testCasesConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig", +"description": "The test cases config for continuous tests of this environment." +}, +"updateTime": { +"description": "Output only. Update time of this environment.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"versionConfigs": { +"description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" +}, +"type": "array" +}, +"webhookConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", +"description": "The webhook configuration for this environment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig": { +"description": "The configuration for continuous tests.", +"id": "GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig", +"properties": { +"enableContinuousRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases periodically. Default false. If set to true, run once a day.", +"type": "boolean" +}, +"enablePredeploymentRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases before deploying a flow version to the environment. Default false.", +"type": "boolean" +}, +"testCases": { +"description": "A list of test case names to run. They should be under the same agent. Format of each test case name: `projects//locations//agents//testCases/`", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig": { +"description": "Configuration for the version.", +"id": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig", +"properties": { +"version": { +"description": "Required. Both flow and playbook versions are supported. Format for flow version: projects//locations//agents//flows//versions/. Format for playbook version: projects//locations//agents//playbooks//versions/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig": { +"description": "Configuration for webhooks.", +"id": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", +"properties": { +"webhookOverrides": { +"description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1Webhook" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EventHandler": { +"description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3beta1EventHandler", +"properties": { +"event": { +"description": "Required. The name of the event to handle.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this event handler.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"targetPlaybook": { +"description": "The target playbook to transition to. Format: `projects//locations//agents//playbooks/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EventInput": { +"description": "Represents the event to trigger.", +"id": "GoogleCloudDialogflowCxV3beta1EventInput", +"properties": { +"event": { +"description": "Name of the event.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowCxV3beta1ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", +"type": "string" +}, +"commitSha": { +"description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse": { +"description": "The response message for EntityTypes.ExportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse", +"properties": { +"entityTypesContent": { +"$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", +"description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." +}, +"entityTypesUri": { +"description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportFlowResponse": { +"description": "The response message for Flows.ExportFlow.", +"id": "GoogleCloudDialogflowCxV3beta1ExportFlowResponse", +"properties": { +"flowContent": { +"description": "Uncompressed raw byte content for flow.", +"format": "byte", +"type": "string" +}, +"flowUri": { +"description": "The URI to a file containing the exported flow. This field is populated only if `flow_uri` is specified in ExportFlowRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata": { +"description": "Metadata returned for the Intents.ExportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportIntentsResponse": { +"description": "The response message for Intents.ExportIntents.", +"id": "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse", +"properties": { +"intentsContent": { +"$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", +"description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." +}, +"intentsUri": { +"description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportTestCasesResponse": { +"description": "The response message for TestCases.ExportTestCases.", +"id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesResponse", +"properties": { +"content": { +"description": "Uncompressed raw byte content for test cases.", +"format": "byte", +"type": "string" +}, +"gcsUri": { +"description": "The URI to a file containing the exported test cases. This field is populated only if `gcs_uri` is specified in ExportTestCasesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Form": { +"description": "A form is a data model that groups related parameters that can be collected from the user. The process in which the agent prompts the user and collects parameter values from the user is called form filling. A form can be added to a page. When form filling is done, the filled parameters will be written to the session.", +"id": "GoogleCloudDialogflowCxV3beta1Form", +"properties": { +"parameters": { +"description": "Parameters to collect from the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FormParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FormParameter": { +"description": "Represents a form parameter.", +"id": "GoogleCloudDialogflowCxV3beta1FormParameter", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"defaultValue": { +"description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", +"type": "any" +}, +"displayName": { +"description": "Required. The human-readable name of the parameter, unique within the form.", +"type": "string" +}, +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"fillBehavior": { +"$ref": "GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior", +"description": "Required. Defines fill behavior for the parameter." +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +}, +"required": { +"description": "Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior": { +"description": "Configuration for how the filling of a parameter should be handled.", +"id": "GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior", +"properties": { +"initialPromptFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "Required. The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter." +}, +"repromptEventHandlers": { +"description": "The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are: * `sys.no-match-`, where N can be from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter` `initial_prompt_fulfillment` provides the first prompt for the parameter. If the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to the next no-match/no-input event, and so on. A `sys.no-match-default` or `sys.no-input-default` handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed. A `sys.invalid-parameter` handler can be defined to handle the case where the parameter values have been `invalidated` by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the `sys.invalid-parameter` handler (if defined) will be called to provide a prompt. If the event handler for the corresponding event can't be found on the parameter, `initial_prompt_fulfillment` will be re-prompted.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1EventHandler" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Fulfillment": { +"description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", +"id": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"conditionalCases": { +"description": "Conditional cases for this fulfillment.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases" +}, +"type": "array" +}, +"enableGenerativeFallback": { +"description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", +"type": "boolean" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage" +}, +"type": "array" +}, +"returnPartialResponses": { +"description": "Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.", +"type": "boolean" +}, +"setParameterActions": { +"description": "Set parameter values before executing the webhook.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction" +}, +"type": "array" +}, +"tag": { +"description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", +"type": "string" +}, +"webhook": { +"description": "The webhook to call. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases": { +"description": "A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases", +"properties": { +"cases": { +"description": "A list of cascading if-else conditions.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase": { +"description": "Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase", +"properties": { +"caseContent": { +"description": "A list of case content.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent" +}, +"type": "array" +}, +"condition": { +"description": "The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent": { +"description": "The list of messages or conditional cases to activate for this case.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent", +"properties": { +"additionalCases": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases", +"description": "Additional cases to be evaluated." +}, +"message": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage", +"description": "Returned message." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction": { +"description": "Setting a parameter value.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction", +"properties": { +"parameter": { +"description": "Display name of the parameter.", +"type": "string" +}, +"value": { +"description": "The new value of the parameter. A null value clears the parameter.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1GcsDestination": { +"description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3beta1GcsDestination", +"properties": { +"uri": { +"description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse": { +"description": "The response message for EntityTypes.ImportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." +}, +"entityTypes": { +"description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entityTypeDisplayNames": { +"description": "Display names of conflicting entity types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportFlowResponse": { +"description": "The response message for Flows.ImportFlow.", +"id": "GoogleCloudDialogflowCxV3beta1ImportFlowResponse", +"properties": { +"flow": { +"description": "The unique identifier of the new flow. Format: `projects//locations//agents//flows/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata": { +"description": "Metadata returned for the Intents.ImportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportIntentsResponse": { +"description": "The response message for Intents.ImportIntents.", +"id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." +}, +"intents": { +"description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intentDisplayNames": { +"description": "Display names of conflicting intents.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ImportTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata", +"properties": { +"errors": { +"description": "Errors for failed test cases.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportTestCasesResponse": { +"description": "The response message for TestCases.ImportTestCases.", +"id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesResponse", +"properties": { +"names": { +"description": "The unique identifiers of the new test cases. Format: `projects//locations//agents//testCases/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1InlineDestination": { +"description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3beta1InlineDestination", +"properties": { +"content": { +"description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", +"format": "byte", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1InputAudioConfig": { +"description": "Instructs the speech recognizer on how to process the audio content.", +"id": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the audio content to process.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"AUDIO_ENCODING_LINEAR_16", +"AUDIO_ENCODING_FLAC", +"AUDIO_ENCODING_MULAW", +"AUDIO_ENCODING_AMR", +"AUDIO_ENCODING_AMR_WB", +"AUDIO_ENCODING_OGG_OPUS", +"AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE", +"AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"[`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio Codec) is the recommended encoding because it is lossless (therefore recognition is not compromised) and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be 16000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Dialogflow API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"bargeInConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1BargeInConfig", +"description": "Configuration of barge-in behavior during the streaming of input audio." +}, +"enableWordInfo": { +"description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", +"type": "boolean" +}, +"model": { +"description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "string" +}, +"modelVariant": { +"description": "Optional. Which variant of the Speech model to use.", +"enum": [ +"SPEECH_MODEL_VARIANT_UNSPECIFIED", +"USE_BEST_AVAILABLE", +"USE_STANDARD", +"USE_ENHANCED" +], +"enumDescriptions": [ +"No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", +"Use the best available variant of the Speech model that the caller is eligible for.", +"Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", +"Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." +], +"type": "string" +}, +"optOutConformerModelMigration": { +"description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", +"type": "boolean" +}, +"phraseHints": { +"description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.", +"format": "int32", +"type": "integer" +}, +"singleUtterance": { +"description": "Optional. If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Intent": { +"description": "An intent represents a user's intent to interact with a conversational agent. You can provide information for the Dialogflow API to use to match user input to an intent by adding training phrases (i.e., examples of user input) to your intent.", +"id": "GoogleCloudDialogflowCxV3beta1Intent", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the intent, unique within the agent.", +"type": "string" +}, +"isFallback": { +"description": "Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes. Prefix \"sys-\" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. \"sys-head\" means the intent is a head intent. \"sys-contextual\" means the intent is a contextual intent.", +"type": "object" +}, +"name": { +"description": "The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"description": "The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentParameter" +}, +"type": "array" +}, +"priority": { +"description": "The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"trainingPhrases": { +"description": "The collection of training phrases the agent is trained on to identify the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentInput": { +"description": "Represents the intent to trigger programmatically rather than as a result of natural language processing.", +"id": "GoogleCloudDialogflowCxV3beta1IntentInput", +"properties": { +"intent": { +"description": "Required. The unique identifier of the intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentParameter": { +"description": "Represents an intent parameter.", +"id": "GoogleCloudDialogflowCxV3beta1IntentParameter", +"properties": { +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier of the parameter. This field is used by training phrases to annotate their parts.", +"type": "string" +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on to identify the intent.", +"id": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase", +"properties": { +"id": { +"description": "Output only. The unique identifier of the training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `parameter_id` field is set.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart" +}, +"type": "array" +}, +"repeatCount": { +"description": "Indicates how many times this example was added to the intent.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart", +"properties": { +"parameterId": { +"description": "The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings": { +"description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", +"id": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", +"properties": { +"dataStoreConnections": { +"description": "Optional. List of related data store connections.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnection" +}, +"type": "array" +}, +"enabled": { +"description": "Whether Knowledge Connector is enabled or not.", +"type": "boolean" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1LanguageInfo": { +"description": "Represents the language information of the request.", +"id": "GoogleCloudDialogflowCxV3beta1LanguageInfo", +"properties": { +"confidenceScore": { +"description": "The confidence score of the detected language between 0 and 1.", +"format": "float", +"type": "number" +}, +"inputLanguageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"resolvedLanguageCode": { +"description": "The language code detected for this request based on the user conversation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Page": { +"description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", +"id": "GoogleCloudDialogflowCxV3beta1Page", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"description": { +"description": "The description of the page. The maximum length is 500 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the page, unique within the flow.", +"type": "string" +}, +"entryFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to call when the session is entering the page." +}, +"eventHandlers": { +"description": "Handlers associated with the page to handle events such as webhook errors, no match or no input.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1EventHandler" +}, +"type": "array" +}, +"form": { +"$ref": "GoogleCloudDialogflowCxV3beta1Form", +"description": "The form associated with the page, used for collecting parameters relevant to the page." +}, +"knowledgeConnectorSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", +"description": "Optional. Knowledge connector configuration." +}, +"name": { +"description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"transitionRouteGroups": { +"description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", +"items": { +"type": "string" +}, +"type": "array" +}, +"transitionRoutes": { +"description": "A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: * TransitionRoutes defined in the page with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in flow with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in the page with only condition specified. * TransitionRoutes defined in the transition route groups with only condition specified.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TransitionRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1PageInfo": { +"description": "Represents page information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1PageInfo", +"properties": { +"currentPage": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the current page. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"displayName": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The display name of the current page.", +"type": "string" +}, +"formInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfo", +"description": "Optional for both WebhookRequest and WebhookResponse. Information about the form." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1PageInfoFormInfo": { +"description": "Represents form information.", +"id": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfo", +"properties": { +"parameterInfo": { +"description": "Optional for both WebhookRequest and WebhookResponse. The parameters contained in the form. Note that the webhook cannot add or remove any form parameter.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo": { +"description": "Represents parameter information.", +"id": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo", +"properties": { +"displayName": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The human-readable name of the parameter, unique within the form. This field cannot be modified by the webhook.", +"type": "string" +}, +"justCollected": { +"description": "Optional for WebhookRequest. Ignored for WebhookResponse. Indicates if the parameter value was just collected on the last conversation turn.", +"type": "boolean" +}, +"required": { +"description": "Optional for both WebhookRequest and WebhookResponse. Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +}, +"state": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The state of the parameter. This field can be set to INVALID by the webhook to invalidate the parameter; other values set by the webhook will be ignored.", +"enum": [ +"PARAMETER_STATE_UNSPECIFIED", +"EMPTY", +"INVALID", +"FILLED" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Indicates that the parameter does not have a value.", +"Indicates that the parameter value is invalid. This field can be used by the webhook to invalidate the parameter and ask the server to collect it from the user again.", +"Indicates that the parameter has a value." +], +"type": "string" +}, +"value": { +"description": "Optional for both WebhookRequest and WebhookResponse. The value of the parameter. This field can be set by the webhook to change the parameter value.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1QueryInput": { +"description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", +"id": "GoogleCloudDialogflowCxV3beta1QueryInput", +"properties": { +"audio": { +"$ref": "GoogleCloudDialogflowCxV3beta1AudioInput", +"description": "The natural language speech audio to be processed." +}, +"dtmf": { +"$ref": "GoogleCloudDialogflowCxV3beta1DtmfInput", +"description": "The DTMF event to be handled." +}, +"event": { +"$ref": "GoogleCloudDialogflowCxV3beta1EventInput", +"description": "The event to be triggered." +}, +"intent": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentInput", +"description": "The intent to be triggered." +}, +"languageCode": { +"description": "Required. The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3beta1TextInput", +"description": "The natural language text to be processed." +}, +"toolCallResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1ToolCallResult", +"description": "The results of a tool executed by the client." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessage": { +"description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessage", +"properties": { +"channel": { +"description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", +"type": "string" +}, +"conversationSuccess": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", +"description": "Indicates that the conversation succeeded." +}, +"endInteraction": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction", +"description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", +"readOnly": true +}, +"knowledgeInfoCard": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", +"description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." +}, +"liveAgentHandoff": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", +"description": "Hands off conversation to a human agent." +}, +"mixedAudio": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio", +"description": "Output only. An audio response message composed of both the synthesized Dialogflow agent responses and responses defined via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"readOnly": true +}, +"outputAudioText": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText", +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Returns a response containing a custom, platform-specific payload.", +"type": "object" +}, +"playAudio": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio", +"description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall", +"description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageText", +"description": "Returns a text response." +}, +"toolCall": { +"$ref": "GoogleCloudDialogflowCxV3beta1ToolCall", +"description": "Returns the definition of a tool call that should be executed by the client." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess": { +"description": "Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates that the conversation succeeded. * In a webhook response when you determine that you handled the customer issue.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction": { +"description": "Indicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard": { +"description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff": { +"description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio": { +"description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio", +"properties": { +"segments": { +"description": "Segments this audio response is composed of.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment": { +"description": "Represents one segment of audio.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audio": { +"description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText": { +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"ssml": { +"description": "The SSML text to be synthesized. For more information, see [SSML](/speech/text-to-speech/docs/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio": { +"description": "Specifies an audio clip to be played by the client as part of the response.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audioUri": { +"description": "Required. URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall": { +"description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"text": { +"description": "Required. A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunContinuousTestMetadata": { +"description": "Metadata returned for the Environments.RunContinuousTest long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1RunContinuousTestMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunContinuousTestResponse": { +"description": "The response message for Environments.RunContinuousTest.", +"id": "GoogleCloudDialogflowCxV3beta1RunContinuousTestResponse", +"properties": { +"continuousTestResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1ContinuousTestResult", +"description": "The result for a continuous test run." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunTestCaseMetadata": { +"description": "Metadata returned for the TestCases.RunTestCase long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3beta1RunTestCaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunTestCaseResponse": { +"description": "The response message for TestCases.RunTestCase.", +"id": "GoogleCloudDialogflowCxV3beta1RunTestCaseResponse", +"properties": { +"result": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseResult", +"description": "The result." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1SessionInfo": { +"description": "Represents session information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1SessionInfo", +"properties": { +"parameters": { +"additionalProperties": { +"type": "any" +}, +"description": "Optional for WebhookRequest. Optional for WebhookResponse. All parameters collected from forms and intents during the session. Parameters can be created, updated, or removed by the webhook. To remove a parameter from the session, the webhook should explicitly set the parameter value to null in WebhookResponse. The map is keyed by parameters' display names.", +"type": "object" +}, +"session": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the session. This field can be used by the webhook to identify a session. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/` if environment is specified.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestCase": { +"description": "Represents a test case.", +"id": "GoogleCloudDialogflowCxV3beta1TestCase", +"properties": { +"creationTime": { +"description": "Output only. When the test was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the test case, unique within the agent. Limit of 200 characters.", +"type": "string" +}, +"lastTestResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseResult", +"description": "The latest test result." +}, +"name": { +"description": "The unique identifier of the test case. TestCases.CreateTestCase will populate the name automatically. Otherwise use format: `projects//locations//agents//testCases/`.", +"type": "string" +}, +"notes": { +"description": "Additional freeform notes about the test case. Limit of 400 characters.", +"type": "string" +}, +"tags": { +"description": "Tags are short descriptions that users may apply to test cases for organizational and filtering purposes. Each tag should start with \"#\" and has a limit of 30 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"testCaseConversationTurns": { +"description": "The conversation turns uttered when the test case was created, in chronological order. These include the canonical set of agent utterances that should occur when the agent is working properly.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurn" +}, +"type": "array" +}, +"testConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestConfig", +"description": "Config for the test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestCaseError": { +"description": "Error info for importing a test.", +"id": "GoogleCloudDialogflowCxV3beta1TestCaseError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test case." +}, +"testCase": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCase", +"description": "The test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestCaseResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3beta1TestCaseResult", +"properties": { +"conversationTurns": { +"description": "The conversation turns uttered during the test case replay in chronological order.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurn" +}, +"type": "array" +}, +"environment": { +"description": "Environment where the test was run. If not set, it indicates the draft environment.", +"type": "string" +}, +"name": { +"description": "The resource name for the test case result. Format: `projects//locations//agents//testCases//results/`.", +"type": "string" +}, +"testResult": { +"description": "Whether the test case passed in the agent environment.", +"enum": [ +"TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"The test passed.", +"The test did not pass." +], +"type": "string" +}, +"testTime": { +"description": "The time that the test was run.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestConfig": { +"description": "Represents configurations for a test case.", +"id": "GoogleCloudDialogflowCxV3beta1TestConfig", +"properties": { +"flow": { +"description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"page": { +"description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"trackingParameters": { +"description": "Session parameters to be compared when calculating differences.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestError": { +"description": "Error info for running a test.", +"id": "GoogleCloudDialogflowCxV3beta1TestError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test." +}, +"testCase": { +"description": "The test case resource name.", +"type": "string" +}, +"testTime": { +"description": "The timestamp when the test was completed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestRunDifference": { +"description": "The description of differences between original and replayed agent output.", +"id": "GoogleCloudDialogflowCxV3beta1TestRunDifference", +"properties": { +"description": { +"description": "A human readable description of the diff, showing the actual output vs expected output.", +"type": "string" +}, +"type": { +"description": "The type of diff.", +"enum": [ +"DIFF_TYPE_UNSPECIFIED", +"INTENT", +"PAGE", +"PARAMETERS", +"UTTERANCE", +"FLOW" +], +"enumDescriptions": [ +"Should never be used.", +"The intent.", +"The page.", +"The parameters.", +"The message utterance.", +"The flow." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TextInput": { +"description": "Represents the natural language text to be processed.", +"id": "GoogleCloudDialogflowCxV3beta1TextInput", +"properties": { +"text": { +"description": "Required. The UTF-8 encoded natural language text to be processed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ToolCall": { +"description": "Represents a call of a specific tool's action with the specified inputs.", +"id": "GoogleCloudDialogflowCxV3beta1ToolCall", +"properties": { +"action": { +"description": "Required. The name of the tool's action associated with this call.", +"type": "string" +}, +"inputParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The action's input parameters.", +"type": "object" +}, +"tool": { +"description": "Required. The tool associated with this call. Format: `projects//locations//agents//tools/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ToolCallResult": { +"description": "The result of calling a tool's action that has been executed by the client.", +"id": "GoogleCloudDialogflowCxV3beta1ToolCallResult", +"properties": { +"action": { +"description": "Required. The name of the tool's action associated with this call.", +"type": "string" +}, +"error": { +"$ref": "GoogleCloudDialogflowCxV3beta1ToolCallResultError", +"description": "The tool call's error." +}, +"outputParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The tool call's output parameters.", +"type": "object" +}, +"tool": { +"description": "Required. The tool associated with this call. Format: `projects//locations//agents//tools/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ToolCallResultError": { +"description": "An error produced by the tool call.", +"id": "GoogleCloudDialogflowCxV3beta1ToolCallResultError", +"properties": { +"message": { +"description": "Optional. The error message of the function.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TransitionRoute": { +"description": "A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3beta1TransitionRoute", +"properties": { +"condition": { +"description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"description": { +"description": "Optional. The description of the transition route. The maximum length is 500 characters.", +"type": "string" +}, +"intent": { +"description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this transition route.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to call when the condition is satisfied. At least one of `trigger_fulfillment` and `target` must be specified. When both are defined, `trigger_fulfillment` is executed first." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TurnSignals": { +"description": "Collection of all signals that were extracted for a single turn of the conversation.", +"id": "GoogleCloudDialogflowCxV3beta1TurnSignals", +"properties": { +"agentEscalated": { +"description": "Whether agent responded with LiveAgentHandoff fulfillment.", +"type": "boolean" +}, +"dtmfUsed": { +"description": "Whether user was using DTMF input.", +"type": "boolean" +}, +"failureReasons": { +"description": "Failure reasons of the turn.", +"items": { +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"FAILED_INTENT", +"FAILED_WEBHOOK" +], +"enumDescriptions": [ +"Failure reason is not assigned.", +"Whether NLU failed to recognize user intent.", +"Whether webhook failed during the turn." +], +"type": "string" +}, +"type": "array" +}, +"noMatch": { +"description": "Whether NLU predicted NO_MATCH.", +"type": "boolean" +}, +"noUserInput": { +"description": "Whether user provided no input.", +"type": "boolean" +}, +"reachedEndPage": { +"description": "Whether turn resulted in End Session page.", +"type": "boolean" +}, +"sentimentMagnitude": { +"description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"sentimentScore": { +"description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"userEscalated": { +"description": "Whether user was specifically asking for a live agent.", +"type": "boolean" +}, +"webhookStatuses": { +"description": "Human-readable statuses of the webhooks triggered during this turn.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Webhook": { +"description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", +"id": "GoogleCloudDialogflowCxV3beta1Webhook", +"properties": { +"disabled": { +"description": "Indicates whether the webhook is disabled.", +"type": "boolean" +}, +"displayName": { +"description": "Required. The human-readable name of the webhook, unique within the agent.", +"type": "string" +}, +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", +"description": "Configuration for a generic web service." +}, +"name": { +"description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +}, +"serviceDirectory": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", +"description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." +}, +"timeout": { +"description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookGenericWebService": { +"description": "Represents configuration for a generic web service.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", +"properties": { +"allowedCaCerts": { +"description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"httpMethod": { +"description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method not specified.", +"HTTP POST Method.", +"HTTP GET Method.", +"HTTP HEAD Method.", +"HTTP PUT Method.", +"HTTP DELETE Method.", +"HTTP PATCH Method.", +"HTTP OPTIONS Method." +], +"type": "string" +}, +"oauthConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig", +"description": "Optional. The OAuth configuration of the webhook. If specified, Dialogflow will initiate the OAuth client credential flow to exchange an access token from the 3rd party platform and put it in the auth header." +}, +"parameterMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", +"type": "object" +}, +"password": { +"deprecated": true, +"description": "The password for HTTP Basic authentication.", +"type": "string" +}, +"requestBody": { +"description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", +"type": "string" +}, +"requestHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "The HTTP request headers to send together with webhook requests.", +"type": "object" +}, +"serviceAgentAuth": { +"description": "Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.", +"enum": [ +"SERVICE_AGENT_AUTH_UNSPECIFIED", +"NONE", +"ID_TOKEN", +"ACCESS_TOKEN" +], +"enumDescriptions": [ +"Service agent auth type unspecified. Default to ID_TOKEN.", +"No token used.", +"Use [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. This can be used to access Cloud Function and Cloud Run after you grant Invoker role to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.", +"Use [access token](https://cloud.google.com/docs/authentication/token-types#access) generated from service agent. This can be used to access other Google Cloud APIs after you grant required roles to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`." +], +"type": "string" +}, +"uri": { +"description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", +"type": "string" +}, +"username": { +"deprecated": true, +"description": "The user name for HTTP Basic authentication.", +"type": "string" +}, +"webhookType": { +"description": "Optional. Type of the webhook.", +"enum": [ +"WEBHOOK_TYPE_UNSPECIFIED", +"STANDARD", +"FLEXIBLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents a standard webhook.", +"Represents a flexible webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig": { +"description": "Represents configuration of OAuth client credential flow for 3rd party API authentication.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig", +"properties": { +"clientId": { +"description": "Required. The client ID provided by the 3rd party platform.", +"type": "string" +}, +"clientSecret": { +"description": "Required. The client secret provided by the 3rd party platform.", +"type": "string" +}, +"scopes": { +"description": "Optional. The OAuth scopes to grant.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tokenEndpoint": { +"description": "Required. The token endpoint provided by the 3rd party platform to exchange an access token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequest": { +"description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequest", +"properties": { +"detectIntentResponseId": { +"description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", +"type": "string" +}, +"dtmfDigits": { +"description": "If DTMF was provided as input, this field will contain the DTMF digits.", +"type": "string" +}, +"fulfillmentInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", +"description": "Always present. Information about the fulfillment that triggered this webhook call." +}, +"intentInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo", +"description": "Information about the last matched intent." +}, +"languageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"languageInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1LanguageInfo", +"description": "Information about the language of the request." +}, +"messages": { +"description": "The list of rich message responses to present to the user. Webhook can choose to append or replace this list in WebhookResponse.fulfillment_response;", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage" +}, +"type": "array" +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfo", +"description": "Information about page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom data set in QueryParameters.payload.", +"type": "object" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult", +"description": "The sentiment analysis result of the current user request. The field is filled when sentiment analysis is configured to be enabled for the request." +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1SessionInfo", +"description": "Information about session status." +}, +"text": { +"description": "If natural language text was provided as input, this field will contain a copy of the text.", +"type": "string" +}, +"transcript": { +"description": "If natural language speech audio was provided as input, this field will contain the transcript for the audio.", +"type": "string" +}, +"triggerEvent": { +"description": "If an event was provided as input, this field will contain the name of the event.", +"type": "string" +}, +"triggerIntent": { +"description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo": { +"description": "Represents fulfillment information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", +"properties": { +"tag": { +"description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo": { +"description": "Represents intent information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo", +"properties": { +"confidence": { +"description": "The confidence of the matched intent. Values range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"displayName": { +"description": "Always present. The display name of the last matched intent.", +"type": "string" +}, +"lastMatchedIntent": { +"description": "Always present. The unique identifier of the last matched intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue" +}, +"description": "Parameters identified as a result of intent matching. This is a map of the name of the identified parameter to the value of the parameter identified from the user's utterance. All parameters defined in the matched intent that are identified will be surfaced here.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue": { +"description": "Represents a value for an intent parameter.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue", +"properties": { +"originalValue": { +"description": "Always present. Original text value extracted from user utterance.", +"type": "string" +}, +"resolvedValue": { +"description": "Always present. Structured value for the parameter extracted from user utterance.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult": { +"description": "Represents the result of sentiment analysis.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookResponse": { +"description": "The response message for a webhook call.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookResponse", +"properties": { +"fulfillmentResponse": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse", +"description": "The fulfillment response to send to the user. This field can be omitted by the webhook if it does not intend to send any response to the user." +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfo", +"description": "Information about page status. This field can be omitted by the webhook if it does not intend to modify page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Value to append directly to QueryResult.webhook_payloads.", +"type": "object" +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1SessionInfo", +"description": "Information about session status. This field can be omitted by the webhook if it does not intend to modify session status." +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse": { +"description": "Represents a fulfillment response to the user.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse", +"properties": { +"mergeBehavior": { +"description": "Merge behavior for `messages`.", +"enum": [ +"MERGE_BEHAVIOR_UNSPECIFIED", +"APPEND", +"REPLACE" +], +"enumDescriptions": [ +"Not specified. `APPEND` will be used.", +"`messages` will be appended to the list of messages waiting to be sent to the user.", +"`messages` will replace the list of messages waiting to be sent to the user." +], +"type": "string" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig": { +"description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", +"properties": { +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", +"description": "Generic Service configuration of this webhook." +}, +"service": { +"description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Agent": { +"description": "A Dialogflow agent is a virtual agent that handles conversations with your end-users. It is a natural language understanding module that understands the nuances of human language. Dialogflow translates end-user text or audio during a conversation to structured data that your apps and services can understand. You design and build a Dialogflow agent to handle the types of conversations required for your system. For more information about agents, see the [Agent guide](https://cloud.google.com/dialogflow/docs/agents-overview). ", +"id": "GoogleCloudDialogflowV2Agent", +"properties": { +"apiVersion": { +"description": "Optional. API version displayed in Dialogflow console. If not specified, V2 API is assumed. Clients are free to query different service endpoints for different API versions. However, bots connectors and webhook calls will follow the specified API version.", +"enum": [ +"API_VERSION_UNSPECIFIED", +"API_VERSION_V1", +"API_VERSION_V2", +"API_VERSION_V2_BETA_1" +], +"enumDescriptions": [ +"Not specified.", +"Legacy V1 API.", +"V2 API.", +"V2beta1 API." +], +"type": "string" +}, +"avatarUri": { +"description": "Optional. The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted [Web Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) integration.", +"type": "string" +}, +"classificationThreshold": { +"description": "Optional. To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. If the returned score value is less than the threshold value, then a fallback intent will be triggered or, if there are no fallback intents defined, no intent will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used.", +"format": "float", +"type": "number" +}, +"defaultLanguageCode": { +"description": "Required. The default language of the agent as a language tag. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. This field cannot be set by the `Update` method.", +"type": "string" +}, +"description": { +"description": "Optional. The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The name of this agent.", +"type": "string" +}, +"enableLogging": { +"description": "Optional. Determines whether this agent should log conversation queries.", +"type": "boolean" +}, +"matchMode": { +"deprecated": true, +"description": "Optional. Determines how intents are detected from user queries.", +"enum": [ +"MATCH_MODE_UNSPECIFIED", +"MATCH_MODE_HYBRID", +"MATCH_MODE_ML_ONLY" +], +"enumDescriptions": [ +"Not specified.", +"Best for agents with a small number of examples in intents and/or wide use of templates syntax and composite entities.", +"Can be used for agents with a large number of examples in intents, especially the ones using @sys.any or very large custom entities." +], +"type": "string" +}, +"parent": { +"description": "Required. The project of this agent. Format: `projects/`.", +"type": "string" +}, +"supportedLanguageCodes": { +"description": "Optional. The list of all languages supported by this agent (except for the `default_language_code`).", +"items": { +"type": "string" +}, +"type": "array" +}, +"tier": { +"description": "Optional. The agent tier. If not specified, TIER_STANDARD is assumed.", +"enum": [ +"TIER_UNSPECIFIED", +"TIER_STANDARD", +"TIER_ENTERPRISE", +"TIER_ENTERPRISE_PLUS" +], +"enumDeprecated": [ +false, +false, +false, +true +], +"enumDescriptions": [ +"Not specified. This value should never be used.", +"Trial Edition, previously known as Standard Edition.", +"Essentials Edition, previously known as Enterprise Essential Edition.", +"Essentials Edition (same as TIER_ENTERPRISE), previously known as Enterprise Plus Edition." +], +"type": "string" +}, +"timeZone": { +"description": "Required. The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AgentAssistantFeedback": { +"description": "Detail feedback of Agent Assist result.", +"id": "GoogleCloudDialogflowV2AgentAssistantFeedback", +"properties": { +"answerRelevance": { +"description": "Optional. Whether or not the suggested answer is relevant. For example: * Query: \"Can I change my mailing address?\" * Suggested document says: \"Items must be returned/exchanged within 60 days of the purchase date.\" * answer_relevance: AnswerRelevance.IRRELEVANT", +"enum": [ +"ANSWER_RELEVANCE_UNSPECIFIED", +"IRRELEVANT", +"RELEVANT" +], +"enumDescriptions": [ +"Answer relevance unspecified.", +"Answer is irrelevant to query.", +"Answer is relevant to query." +], +"type": "string" +}, +"documentCorrectness": { +"description": "Optional. Whether or not the information in the document is correct. For example: * Query: \"Can I return the package in 2 days once received?\" * Suggested document says: \"Items must be returned/exchanged within 60 days of the purchase date.\" * Ground truth: \"No return or exchange is allowed.\" * [document_correctness]: INCORRECT", +"enum": [ +"DOCUMENT_CORRECTNESS_UNSPECIFIED", +"INCORRECT", +"CORRECT" +], +"enumDescriptions": [ +"Document correctness unspecified.", +"Information in document is incorrect.", +"Information in document is correct." +], +"type": "string" +}, +"documentEfficiency": { +"description": "Optional. Whether or not the suggested document is efficient. For example, if the document is poorly written, hard to understand, hard to use or too long to find useful information, document_efficiency is DocumentEfficiency.INEFFICIENT.", +"enum": [ +"DOCUMENT_EFFICIENCY_UNSPECIFIED", +"INEFFICIENT", +"EFFICIENT" +], +"enumDescriptions": [ +"Document efficiency unspecified.", +"Document is inefficient.", +"Document is efficient." +], +"type": "string" +}, +"knowledgeAssistFeedback": { +"$ref": "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeAssistFeedback", +"description": "Optional. Feedback for knowledge assist." +}, +"knowledgeSearchFeedback": { +"$ref": "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback", +"description": "Optional. Feedback for knowledge search." +}, +"summarizationFeedback": { +"$ref": "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback", +"description": "Optional. Feedback for conversation summarization." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeAssistFeedback": { +"description": "Feedback for knowledge assist.", +"id": "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeAssistFeedback", +"properties": { +"answerCopied": { +"description": "Whether the suggested answer was copied by the human agent. If the value is set to be true, AnswerFeedback.clicked will be updated to be true.", +"type": "boolean" +}, +"clickedUris": { +"description": "The URIs clicked by the human agent. The value is appended for each UpdateAnswerRecordRequest. If the value is not empty, AnswerFeedback.clicked will be updated to be true.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback": { +"description": "Feedback for knowledge search.", +"id": "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback", +"properties": { +"answerCopied": { +"description": "Whether the answer was copied by the human agent or not. If the value is set to be true, AnswerFeedback.clicked will be updated to be true.", +"type": "boolean" +}, +"clickedUris": { +"description": "The URIs clicked by the human agent. The value is appended for each UpdateAnswerRecordRequest. If the value is not empty, AnswerFeedback.clicked will be updated to be true.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback": { +"description": "Feedback for conversation summarization.", +"id": "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback", +"properties": { +"startTime": { +"description": "Timestamp when composing of the summary starts.", +"format": "google-datetime", +"type": "string" +}, +"submitTime": { +"description": "Timestamp when the summary was submitted.", +"format": "google-datetime", +"type": "string" +}, +"summaryText": { +"description": "Text of actual submitted summary.", +"type": "string" +}, +"textSections": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Actual text sections of submitted summary.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AgentAssistantRecord": { +"description": "Represents a record of a human agent assist answer.", +"id": "GoogleCloudDialogflowV2AgentAssistantRecord", +"properties": { +"articleSuggestionAnswer": { +"$ref": "GoogleCloudDialogflowV2ArticleAnswer", +"description": "Output only. The article suggestion answer.", +"readOnly": true +}, +"dialogflowAssistAnswer": { +"$ref": "GoogleCloudDialogflowV2DialogflowAssistAnswer", +"description": "Output only. Dialogflow assist answer.", +"readOnly": true +}, +"faqAnswer": { +"$ref": "GoogleCloudDialogflowV2FaqAnswer", +"description": "Output only. The FAQ answer.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AnalyzeContentRequest": { +"description": "The request message for Participants.AnalyzeContent.", +"id": "GoogleCloudDialogflowV2AnalyzeContentRequest", +"properties": { +"assistQueryParams": { +"$ref": "GoogleCloudDialogflowV2AssistQueryParameters", +"description": "Parameters for a human assist query." +}, +"cxParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Additional parameters to be put into Dialogflow CX session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. Note: this field should only be used if you are connecting to a Dialogflow CX agent.", +"type": "object" +}, +"eventInput": { +"$ref": "GoogleCloudDialogflowV2EventInput", +"description": "An input event to send to Dialogflow." +}, +"queryParams": { +"$ref": "GoogleCloudDialogflowV2QueryParameters", +"description": "Parameters for a Dialogflow virtual-agent query." +}, +"replyAudioConfig": { +"$ref": "GoogleCloudDialogflowV2OutputAudioConfig", +"description": "Speech synthesis configuration. The speech synthesis settings for a virtual agent that may be configured for the associated conversation profile are not used when calling AnalyzeContent. If this configuration is not supplied, speech synthesis is disabled." +}, +"requestId": { +"description": "A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"type": "string" +}, +"suggestionInput": { +"$ref": "GoogleCloudDialogflowV2SuggestionInput", +"description": "An input representing the selection of a suggestion." +}, +"textInput": { +"$ref": "GoogleCloudDialogflowV2TextInput", +"description": "The natural language text to be processed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AnalyzeContentResponse": { +"description": "The response message for Participants.AnalyzeContent.", +"id": "GoogleCloudDialogflowV2AnalyzeContentResponse", +"properties": { +"automatedAgentReply": { +"$ref": "GoogleCloudDialogflowV2AutomatedAgentReply", +"description": "Only set if a Dialogflow automated agent has responded. Note that in AutomatedAgentReply.DetectIntentResponse, Sessions.DetectIntentResponse.output_audio and Sessions.DetectIntentResponse.output_audio_config are always empty, use reply_audio instead." +}, +"dtmfParameters": { +"$ref": "GoogleCloudDialogflowV2DtmfParameters", +"description": "Indicates the parameters of DTMF." +}, +"endUserSuggestionResults": { +"description": "The suggestions for end user. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.end_user_suggestion_config. Same as human_agent_suggestion_results, any failure of Agent Assist features will not lead to the overall failure of an AnalyzeContent API call. Instead, the features will fail silently with the error field set in the corresponding SuggestionResult.", +"items": { +"$ref": "GoogleCloudDialogflowV2SuggestionResult" +}, +"type": "array" +}, +"humanAgentSuggestionResults": { +"description": "The suggestions for most recent human agent. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.human_agent_suggestion_config. Note that any failure of Agent Assist features will not lead to the overall failure of an AnalyzeContent API call. Instead, the features will fail silently with the error field set in the corresponding SuggestionResult.", +"items": { +"$ref": "GoogleCloudDialogflowV2SuggestionResult" +}, +"type": "array" +}, +"message": { +"$ref": "GoogleCloudDialogflowV2Message", +"description": "Message analyzed by CCAI." +}, +"replyAudio": { +"$ref": "GoogleCloudDialogflowV2OutputAudio", +"description": "The audio data bytes encoded as specified in the request. This field is set if: - `reply_audio_config` was specified in the request, or - The automated agent responded with audio to play to the user. In such case, `reply_audio.config` contains settings used to synthesize the speech. In some scenarios, multiple output audio fields may be present in the response structure. In these cases, only the top-most-level audio output has content." +}, +"replyText": { +"description": "The output text content. This field is set if the automated agent responded with text to show to the user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AnnotatedMessagePart": { +"description": "Represents a part of a message possibly annotated with an entity. The part can be an entity or purely a part of the message between two entities or message start/end.", +"id": "GoogleCloudDialogflowV2AnnotatedMessagePart", +"properties": { +"entityType": { +"description": "The [Dialogflow system entity type](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. If this is empty, Dialogflow could not annotate the phrase part with a system entity.", +"type": "string" +}, +"formattedValue": { +"description": "The [Dialogflow system entity formatted value ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. For example for a system entity of type `@sys.unit-currency`, this may contain: { \"amount\": 5, \"currency\": \"USD\" } ", +"type": "any" +}, +"text": { +"description": "A part of a message possibly annotated with an entity.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AnswerFeedback": { +"description": "Represents feedback the customer has about the quality & correctness of a certain answer in a conversation.", +"id": "GoogleCloudDialogflowV2AnswerFeedback", +"properties": { +"agentAssistantDetailFeedback": { +"$ref": "GoogleCloudDialogflowV2AgentAssistantFeedback", +"description": "Detail feedback of agent assist suggestions." +}, +"clickTime": { +"description": "Time when the answer/item was clicked.", +"format": "google-datetime", +"type": "string" +}, +"clicked": { +"description": "Indicates whether the answer/item was clicked by the human agent or not. Default to false. For knowledge search and knowledge assist, the answer record is considered to be clicked if the answer was copied or any URI was clicked.", +"type": "boolean" +}, +"correctnessLevel": { +"description": "The correctness level of the specific answer.", +"enum": [ +"CORRECTNESS_LEVEL_UNSPECIFIED", +"NOT_CORRECT", +"PARTIALLY_CORRECT", +"FULLY_CORRECT" +], +"enumDescriptions": [ +"Correctness level unspecified.", +"Answer is totally wrong.", +"Answer is partially correct.", +"Answer is fully correct." +], +"type": "string" +}, +"displayTime": { +"description": "Time when the answer/item was displayed.", +"format": "google-datetime", +"type": "string" +}, +"displayed": { +"description": "Indicates whether the answer/item was displayed to the human agent in the agent desktop UI. Default to false.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AnswerRecord": { +"description": "Answer records are records to manage answer history and feedbacks for Dialogflow. Currently, answer record includes: - human agent assistant article suggestion - human agent assistant faq article It doesn't include: - `DetectIntent` intent matching - `DetectIntent` knowledge Answer records are not related to the conversation history in the Dialogflow Console. A Record is generated even when the end-user disables conversation history in the console. Records are created when there's a human agent assistant suggestion generated. A typical workflow for customers provide feedback to an answer is: 1. For human agent assistant, customers get suggestion via ListSuggestions API. Together with the answers, AnswerRecord.name are returned to the customers. 2. The customer uses the AnswerRecord.name to call the AnswerRecords.UpdateAnswerRecord method to send feedback about a specific answer that they believe is wrong.", +"id": "GoogleCloudDialogflowV2AnswerRecord", +"properties": { +"agentAssistantRecord": { +"$ref": "GoogleCloudDialogflowV2AgentAssistantRecord", +"description": "Output only. The record for human agent assistant.", +"readOnly": true +}, +"answerFeedback": { +"$ref": "GoogleCloudDialogflowV2AnswerFeedback", +"description": "Required. The AnswerFeedback for this record. You can set this with AnswerRecords.UpdateAnswerRecord in order to give us feedback about this answer." +}, +"name": { +"description": "The unique identifier of this answer record. Format: `projects//locations//answerRecords/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ArticleAnswer": { +"description": "Represents article answer.", +"id": "GoogleCloudDialogflowV2ArticleAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "Article match confidence. The system's confidence score that this article is a good match for this conversation, as a value from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"snippets": { +"description": "Article snippets.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "The article title.", +"type": "string" +}, +"uri": { +"description": "The article URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ArticleSuggestionModelMetadata": { +"description": "Metadata for article suggestion models.", +"id": "GoogleCloudDialogflowV2ArticleSuggestionModelMetadata", +"properties": { +"trainingModelType": { +"description": "Optional. Type of the article suggestion model. If not provided, model_type is used.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"SMART_REPLY_DUAL_ENCODER_MODEL", +"SMART_REPLY_BERT_MODEL" +], +"enumDescriptions": [ +"ModelType unspecified.", +"ModelType smart reply dual encoder model.", +"ModelType smart reply bert model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AssistQueryParameters": { +"description": "Represents the parameters of human assist query.", +"id": "GoogleCloudDialogflowV2AssistQueryParameters", +"properties": { +"documentsMetadataFilters": { +"additionalProperties": { +"type": "string" +}, +"description": "Key-value filters on the metadata of documents returned by article suggestion. If specified, article suggestion only returns suggested documents that match all filters in their Document.metadata. Multiple values for a metadata key should be concatenated by comma. For example, filters to match all documents that have 'US' or 'CA' in their market metadata values and 'agent' in their user metadata values will be ``` documents_metadata_filters { key: \"market\" value: \"US,CA\" } documents_metadata_filters { key: \"user\" value: \"agent\" } ```", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AutomatedAgentConfig": { +"description": "Defines the Automated Agent to connect to a conversation.", +"id": "GoogleCloudDialogflowV2AutomatedAgentConfig", +"properties": { +"agent": { +"description": "Required. ID of the Dialogflow agent environment to use. This project needs to either be the same project as the conversation or you need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API Service Agent` role in this project. - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not specified, the default `draft` environment is used. Refer to [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) for more details. - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment is used.", +"type": "string" +}, +"sessionTtl": { +"description": "Optional. Configure lifetime of the Dialogflow session. By default, a Dialogflow CX session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AutomatedAgentReply": { +"description": "Represents a response from an automated agent.", +"id": "GoogleCloudDialogflowV2AutomatedAgentReply", +"properties": { +"allowCancellation": { +"description": "Indicates whether the partial automated agent reply is interruptible when a later reply message arrives. e.g. if the agent specified some music as partial response, it can be cancelled.", +"type": "boolean" +}, +"automatedAgentReplyType": { +"description": "AutomatedAgentReply type.", +"enum": [ +"AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED", +"PARTIAL", +"FINAL" +], +"enumDescriptions": [ +"Not specified. This should never happen.", +"Partial reply. e.g. Aggregated responses in a `Fulfillment` that enables `return_partial_response` can be returned as partial reply. WARNING: partial reply is not eligible for barge-in.", +"Final reply." +], +"type": "string" +}, +"cxCurrentPage": { +"description": "The unique identifier of the current Dialogflow CX conversation page. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"detectIntentResponse": { +"$ref": "GoogleCloudDialogflowV2DetectIntentResponse", +"description": "Response of the Dialogflow Sessions.DetectIntent call." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchCreateEntitiesRequest": { +"description": "The request message for EntityTypes.BatchCreateEntities.", +"id": "GoogleCloudDialogflowV2BatchCreateEntitiesRequest", +"properties": { +"entities": { +"description": "Required. The entities to create.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityTypeEntity" +}, +"type": "array" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchDeleteEntitiesRequest": { +"description": "The request message for EntityTypes.BatchDeleteEntities.", +"id": "GoogleCloudDialogflowV2BatchDeleteEntitiesRequest", +"properties": { +"entityValues": { +"description": "Required. The reference `values` of the entities to delete. Note that these are not fully-qualified names, i.e. they don't start with `projects/`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest": { +"description": "The request message for EntityTypes.BatchDeleteEntityTypes.", +"id": "GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest", +"properties": { +"entityTypeNames": { +"description": "Required. The names entity types to delete. All names must point to the same agent as `parent`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchDeleteIntentsRequest": { +"description": "The request message for Intents.BatchDeleteIntents.", +"id": "GoogleCloudDialogflowV2BatchDeleteIntentsRequest", +"properties": { +"intents": { +"description": "Required. The collection of intents to delete. Only intent `name` must be filled in.", +"items": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateEntitiesRequest": { +"description": "The request message for EntityTypes.BatchUpdateEntities.", +"id": "GoogleCloudDialogflowV2BatchUpdateEntitiesRequest", +"properties": { +"entities": { +"description": "Required. The entities to update or create.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityTypeEntity" +}, +"type": "array" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest": { +"description": "The request message for EntityTypes.BatchUpdateEntityTypes.", +"id": "GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest", +"properties": { +"entityTypeBatchInline": { +"$ref": "GoogleCloudDialogflowV2EntityTypeBatch", +"description": "The collection of entity types to update or create." +}, +"entityTypeBatchUri": { +"description": "The URI to a Google Cloud Storage file containing entity types to update or create. The file format can either be a serialized proto (of EntityBatch type) or a JSON object. Note: The URI must start with \"gs://\".", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse": { +"description": "The response message for EntityTypes.BatchUpdateEntityTypes.", +"id": "GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse", +"properties": { +"entityTypes": { +"description": "The collection of updated or created entity types.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateIntentsRequest": { +"id": "GoogleCloudDialogflowV2BatchUpdateIntentsRequest", +"properties": { +"intentBatchInline": { +"$ref": "GoogleCloudDialogflowV2IntentBatch", +"description": "The collection of intents to update or create." +}, +"intentBatchUri": { +"description": "The URI to a Google Cloud Storage file containing intents to update or create. The file format can either be a serialized proto (of IntentBatch type) or JSON object. Note: The URI must start with \"gs://\".", +"type": "string" +}, +"intentView": { +"description": "Optional. The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"type": "string" +}, +"languageCode": { +"description": "Optional. The language used to access language-specific data. If not specified, the agent's default language is used. For more information, see [Multilingual intent and entity data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity).", +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateIntentsResponse": { +"description": "The response message for Intents.BatchUpdateIntents.", +"id": "GoogleCloudDialogflowV2BatchUpdateIntentsResponse", +"properties": { +"intents": { +"description": "The collection of updated or created intents.", +"items": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ClearSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfiles.ClearSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2ClearSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to remove the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to remove.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model for chat.", +"Run smart reply model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest": { +"description": "The request message for ConversationProfiles.ClearSuggestionFeatureConfig.", +"id": "GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest", +"properties": { +"participantRole": { +"description": "Required. The participant role to remove the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to remove.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model for chat.", +"Run smart reply model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CompleteConversationRequest": { +"description": "The request message for Conversations.CompleteConversation.", +"id": "GoogleCloudDialogflowV2CompleteConversationRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2Context": { +"description": "Dialogflow contexts are similar to natural language context. If a person says to you \"they are orange\", you need context in order to understand what \"they\" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).", +"id": "GoogleCloudDialogflowV2Context", +"properties": { +"lifespanCount": { +"description": "Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Conversation": { +"description": "Represents a conversation. A conversation is an interaction between an agent, including live agents and Dialogflow agents, and a support customer. Conversations can include phone calls and text-based chat sessions.", +"id": "GoogleCloudDialogflowV2Conversation", +"properties": { +"conversationProfile": { +"description": "Required. The Conversation Profile to be used to configure this Conversation. This field cannot be updated. Format: `projects//locations//conversationProfiles/`.", +"type": "string" +}, +"conversationStage": { +"description": "Optional. The stage of a conversation. It indicates whether the virtual agent or a human agent is handling the conversation. If the conversation is created with the conversation profile that has Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created with the conversation profile that has Dialogflow config set but explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE, it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to ConversationStage.HUMAN_ASSIST_STAGE.", +"enum": [ +"CONVERSATION_STAGE_UNSPECIFIED", +"VIRTUAL_AGENT_STAGE", +"HUMAN_ASSIST_STAGE" +], +"enumDescriptions": [ +"Unknown. Should never be used after a conversation is successfully created.", +"The conversation should return virtual agent responses into the conversation.", +"The conversation should not provide responses, just listen and provide suggestions." +], +"type": "string" +}, +"endTime": { +"description": "Output only. The time the conversation was finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lifecycleState": { +"description": "Output only. The current state of the Conversation.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"IN_PROGRESS", +"COMPLETED" +], +"enumDescriptions": [ +"Unknown.", +"Conversation is currently open for media analysis.", +"Conversation has been completed." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Identifier. The unique identifier of this conversation. Format: `projects//locations//conversations/`.", +"readOnly": true, +"type": "string" +}, +"phoneNumber": { +"$ref": "GoogleCloudDialogflowV2ConversationPhoneNumber", +"description": "Output only. It will not be empty if the conversation is to be connected over telephony.", +"readOnly": true +}, +"startTime": { +"description": "Output only. The time the conversation was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"telephonyConnectionInfo": { +"$ref": "GoogleCloudDialogflowV2ConversationTelephonyConnectionInfo", +"description": "Output only. The telephony connection information.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationContext": { +"description": "Context of the conversation, including transcripts.", +"id": "GoogleCloudDialogflowV2ConversationContext", +"properties": { +"messageEntries": { +"description": "Optional. List of message transcripts in the conversation.", +"items": { +"$ref": "GoogleCloudDialogflowV2MessageEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationDataset": { +"description": "Represents a conversation dataset that a user imports raw data into. The data inside ConversationDataset can not be changed after ImportConversationData finishes (and calling ImportConversationData on a dataset that already has data is not allowed).", +"id": "GoogleCloudDialogflowV2ConversationDataset", +"properties": { +"conversationCount": { +"description": "Output only. The number of conversations this conversation dataset contains.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"conversationInfo": { +"$ref": "GoogleCloudDialogflowV2ConversationInfo", +"description": "Output only. Metadata set during conversation data import.", +"readOnly": true +}, +"createTime": { +"description": "Output only. Creation time of this dataset.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. The description of the dataset. Maximum of 10000 bytes.", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the dataset. Maximum of 64 bytes.", +"type": "string" +}, +"inputConfig": { +"$ref": "GoogleCloudDialogflowV2InputConfig", +"description": "Output only. Input configurations set during conversation data import.", +"readOnly": true +}, +"name": { +"description": "Output only. ConversationDataset resource name. Format: `projects//locations//conversationDatasets/`", +"readOnly": true, +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. A read only boolean field reflecting Zone Isolation status of the dataset.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. A read only boolean field reflecting Zone Separation status of the dataset.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationEvent": { +"description": "Represents a notification sent to Pub/Sub subscribers for conversation lifecycle events.", +"id": "GoogleCloudDialogflowV2ConversationEvent", +"properties": { +"conversation": { +"description": "The unique identifier of the conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"errorStatus": { +"$ref": "GoogleRpcStatus", +"description": "More detailed information about an error. Only set for type UNRECOVERABLE_ERROR_IN_PHONE_CALL." +}, +"newMessagePayload": { +"$ref": "GoogleCloudDialogflowV2Message", +"description": "Payload of NEW_MESSAGE event." +}, +"newRecognitionResultPayload": { +"$ref": "GoogleCloudDialogflowV2StreamingRecognitionResult", +"description": "Payload of NEW_RECOGNITION_RESULT event." +}, +"type": { +"description": "The type of the event that this notification refers to.", +"enum": [ +"TYPE_UNSPECIFIED", +"CONVERSATION_STARTED", +"CONVERSATION_FINISHED", +"HUMAN_INTERVENTION_NEEDED", +"NEW_MESSAGE", +"NEW_RECOGNITION_RESULT", +"UNRECOVERABLE_ERROR" +], +"enumDescriptions": [ +"Type not set.", +"A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", +"An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", +"An existing conversation has received notification from Dialogflow that human intervention is required.", +"An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", +"An existing conversation has received a new speech recognition result. This is mainly for delivering intermediate transcripts. The notification is configured in ConversationProfile.new_recognition_event_notification_config.", +"Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationInfo": { +"description": "Represents metadata of a conversation.", +"id": "GoogleCloudDialogflowV2ConversationInfo", +"properties": { +"languageCode": { +"description": "Optional. The language code of the conversation data within this dataset. See https://cloud.google.com/apis/design/standard_fields for more information. Supports all UTF-8 languages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationModel": { +"description": "Represents a conversation model.", +"id": "GoogleCloudDialogflowV2ConversationModel", +"properties": { +"articleSuggestionModelMetadata": { +"$ref": "GoogleCloudDialogflowV2ArticleSuggestionModelMetadata", +"description": "Metadata for article suggestion models." +}, +"createTime": { +"description": "Output only. Creation time of this model.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"datasets": { +"description": "Required. Datasets used to create model.", +"items": { +"$ref": "GoogleCloudDialogflowV2InputDataset" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the model. At most 64 bytes long.", +"type": "string" +}, +"languageCode": { +"description": "Language code for the conversation model. If not specified, the language is en-US. Language at ConversationModel should be set for all non en-us languages. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"name": { +"description": "ConversationModel resource name. Format: `projects//conversationModels/`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. A read only boolean field reflecting Zone Isolation status of the model.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. A read only boolean field reflecting Zone Separation status of the model.", +"readOnly": true, +"type": "boolean" +}, +"smartReplyModelMetadata": { +"$ref": "GoogleCloudDialogflowV2SmartReplyModelMetadata", +"description": "Metadata for smart reply models." +}, +"state": { +"description": "Output only. State of the model. A model can only serve prediction requests after it gets deployed.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"UNDEPLOYED", +"DEPLOYING", +"DEPLOYED", +"UNDEPLOYING", +"DELETING", +"FAILED", +"PENDING" +], +"enumDescriptions": [ +"Should not be used, an un-set enum has this value by default.", +"Model being created.", +"Model is not deployed but ready to deploy.", +"Model is deploying.", +"Model is deployed and ready to use.", +"Model is undeploying.", +"Model is deleting.", +"Model is in error state. Not ready to deploy and use.", +"Model is being created but the training has not started, The model may remain in this state until there is enough capacity to start training." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationModelEvaluation": { +"description": "Represents evaluation result of a conversation model.", +"id": "GoogleCloudDialogflowV2ConversationModelEvaluation", +"properties": { +"createTime": { +"description": "Output only. Creation time of this model.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. The display name of the model evaluation. At most 64 bytes long.", +"type": "string" +}, +"evaluationConfig": { +"$ref": "GoogleCloudDialogflowV2EvaluationConfig", +"description": "Optional. The configuration of the evaluation task." +}, +"name": { +"description": "The resource name of the evaluation. Format: `projects//conversationModels//evaluations/`", +"type": "string" +}, +"rawHumanEvalTemplateCsv": { +"description": "Output only. Human eval template in csv format. It tooks real-world conversations provided through input dataset, generates example suggestions for customer to verify quality of the model. For Smart Reply, the generated csv file contains columns of Context, (Suggestions,Q1,Q2)*3, Actual reply. Context contains at most 10 latest messages in the conversation prior to the current suggestion. Q1: \"Would you send it as the next message of agent?\" Evaluated based on whether the suggest is appropriate to be sent by agent in current context. Q2: \"Does the suggestion move the conversation closer to resolution?\" Evaluated based on whether the suggestion provide solutions, or answers customer's question or collect information from customer to resolve the customer's issue. Actual reply column contains the actual agent reply sent in the context.", +"readOnly": true, +"type": "string" +}, +"smartReplyMetrics": { +"$ref": "GoogleCloudDialogflowV2SmartReplyMetrics", +"description": "Output only. Only available when model is for smart reply.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationPhoneNumber": { +"description": "Represents a phone number for telephony integration. It allows for connecting a particular conversation over telephony.", +"id": "GoogleCloudDialogflowV2ConversationPhoneNumber", +"properties": { +"countryCode": { +"description": "Output only. Desired country code for the phone number.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"phoneNumber": { +"description": "Output only. The phone number to connect to this conversation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationProfile": { +"description": "Defines the services to connect to incoming Dialogflow conversations.", +"id": "GoogleCloudDialogflowV2ConversationProfile", +"properties": { +"automatedAgentConfig": { +"$ref": "GoogleCloudDialogflowV2AutomatedAgentConfig", +"description": "Configuration for an automated agent to use with this profile." +}, +"createTime": { +"description": "Output only. Create time of the conversation profile.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Human readable name for this profile. Max length 1024 bytes.", +"type": "string" +}, +"humanAgentAssistantConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfig", +"description": "Configuration for agent assistance to use with this profile." +}, +"humanAgentHandoffConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentHandoffConfig", +"description": "Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access." +}, +"languageCode": { +"description": "Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-US languages. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"loggingConfig": { +"$ref": "GoogleCloudDialogflowV2LoggingConfig", +"description": "Configuration for logging conversation lifecycle events." +}, +"name": { +"description": "The unique identifier of this conversation profile. Format: `projects//locations//conversationProfiles/`.", +"type": "string" +}, +"newMessageEventNotificationConfig": { +"$ref": "GoogleCloudDialogflowV2NotificationConfig", +"description": "Configuration for publishing new message events. Event will be sent in format of ConversationEvent" +}, +"newRecognitionResultNotificationConfig": { +"$ref": "GoogleCloudDialogflowV2NotificationConfig", +"description": "Optional. Configuration for publishing transcription intermediate results. Event will be sent in format of ConversationEvent. If configured, the following information will be populated as ConversationEvent Pub/Sub message attributes: - \"participant_id\" - \"participant_role\" - \"message_id\"" +}, +"notificationConfig": { +"$ref": "GoogleCloudDialogflowV2NotificationConfig", +"description": "Configuration for publishing conversation lifecycle events." +}, +"securitySettings": { +"description": "Name of the CX SecuritySettings reference for the agent. Format: `projects//locations//securitySettings/`.", +"type": "string" +}, +"sttConfig": { +"$ref": "GoogleCloudDialogflowV2SpeechToTextConfig", +"description": "Settings for speech transcription." +}, +"timeZone": { +"description": "The time zone of this conversational profile from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. Defaults to America/New_York.", +"type": "string" +}, +"ttsConfig": { +"$ref": "GoogleCloudDialogflowV2SynthesizeSpeechConfig", +"description": "Configuration for Text-to-Speech synthesization. Used by Phone Gateway to specify synthesization options. If agent defines synthesization options as well, agent settings overrides the option here." +}, +"updateTime": { +"description": "Output only. Update time of the conversation profile.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationTelephonyConnectionInfo": { +"description": "The information about phone calls connected via phone gateway to the conversation.", +"id": "GoogleCloudDialogflowV2ConversationTelephonyConnectionInfo", +"properties": { +"dialedNumber": { +"description": "Output only. The number dialed to connect this call in E.164 format.", +"readOnly": true, +"type": "string" +}, +"extraMimeContents": { +"description": "Output only. The mime content from the initial SIP INVITE.", +"items": { +"$ref": "GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoMimeContent" +}, +"readOnly": true, +"type": "array" +}, +"sdp": { +"description": "Optional. SDP of the call. It's initially the SDP answer to the endpoint, but maybe later updated for the purpose of making the link active, etc.", +"type": "string" +}, +"sipHeaders": { +"description": "Output only. The SIP headers from the initial SIP INVITE.", +"items": { +"$ref": "GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoSipHeader" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoMimeContent": { +"description": "The mime content from the initial SIP INVITE.", +"id": "GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoMimeContent", +"properties": { +"content": { +"description": "Optional. The content payload.", +"format": "byte", +"type": "string" +}, +"mimeType": { +"description": "Optional. The mime type of the content.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoSipHeader": { +"description": "The SIP headers from the initial SIP INVITE.", +"id": "GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoSipHeader", +"properties": { +"name": { +"description": "Optional. The name of the header.", +"type": "string" +}, +"value": { +"description": "Optional. The value of the header.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata": { +"description": "Metadata for CreateConversationDataset.", +"id": "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata", +"properties": { +"conversationDataset": { +"description": "The resource name of the conversation dataset that will be created. Format: `projects//locations//conversationDatasets/`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata": { +"description": "Metadata for a ConversationModels.CreateConversationModelEvaluation operation.", +"id": "GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//locations//conversationModels/`", +"type": "string" +}, +"conversationModelEvaluation": { +"description": "The resource name of the conversation model. Format: `projects//locations//conversationModels//evaluations/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when the request to create conversation model was submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of CreateConversationModel operation.", +"enum": [ +"STATE_UNSPECIFIED", +"INITIALIZING", +"RUNNING", +"CANCELLED", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Operation status not specified.", +"The operation is being prepared.", +"The operation is running.", +"The operation is cancelled.", +"The operation has succeeded.", +"The operation has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationModelEvaluationRequest": { +"description": "The request message for ConversationModels.CreateConversationModelEvaluation", +"id": "GoogleCloudDialogflowV2CreateConversationModelEvaluationRequest", +"properties": { +"conversationModelEvaluation": { +"$ref": "GoogleCloudDialogflowV2ConversationModelEvaluation", +"description": "Required. The conversation model evaluation to be created." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.CreateConversationModel operation.", +"id": "GoogleCloudDialogflowV2CreateConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when the request to create conversation model is submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of CreateConversationModel operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"SUCCEEDED", +"FAILED", +"CANCELLED", +"CANCELLING", +"TRAINING" +], +"enumDescriptions": [ +"Invalid.", +"Request is submitted, but training has not started yet. The model may remain in this state until there is enough capacity to start training.", +"The training has succeeded.", +"The training has succeeded.", +"The training has been cancelled.", +"The training is in cancelling state.", +"Custom model is training." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeleteConversationDatasetOperationMetadata": { +"description": "Metadata for DeleteConversationDataset.", +"id": "GoogleCloudDialogflowV2DeleteConversationDatasetOperationMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeleteConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.DeleteConversationModel operation.", +"id": "GoogleCloudDialogflowV2DeleteConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when delete conversation model request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeployConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.DeployConversationModel operation.", +"id": "GoogleCloudDialogflowV2DeployConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when request to deploy conversation model was submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeployConversationModelRequest": { +"description": "The request message for ConversationModels.DeployConversationModel", +"id": "GoogleCloudDialogflowV2DeployConversationModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2DetectIntentRequest": { +"description": "The request to detect user's intent.", +"id": "GoogleCloudDialogflowV2DetectIntentRequest", +"properties": { +"inputAudio": { +"description": "The natural language speech audio to be processed. This field should be populated iff `query_input` is set to an input audio config. A single request can contain up to 1 minute of speech audio data.", +"format": "byte", +"type": "string" +}, +"outputAudioConfig": { +"$ref": "GoogleCloudDialogflowV2OutputAudioConfig", +"description": "Instructs the speech synthesizer how to generate the output audio. If this field is not set and agent-level speech synthesizer is not configured, no output audio is generated." +}, +"outputAudioConfigMask": { +"description": "Mask for output_audio_config indicating which settings in this request-level config should override speech synthesizer settings defined at agent-level. If unspecified or empty, output_audio_config replaces the agent-level config in its entirety.", +"format": "google-fieldmask", +"type": "string" +}, +"queryInput": { +"$ref": "GoogleCloudDialogflowV2QueryInput", +"description": "Required. The input specification. It can be set to: 1. an audio config which instructs the speech recognizer how to process the speech audio, 2. a conversational query in the form of text, or 3. an event that specifies which intent to trigger." +}, +"queryParams": { +"$ref": "GoogleCloudDialogflowV2QueryParameters", +"description": "The parameters of this query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DetectIntentResponse": { +"description": "The message returned from the DetectIntent method.", +"id": "GoogleCloudDialogflowV2DetectIntentResponse", +"properties": { +"outputAudio": { +"description": "The audio data bytes encoded as specified in the request. Note: The output audio is generated based on the values of default platform text responses found in the `query_result.fulfillment_messages` field. If multiple default text responses exist, they will be concatenated when generating audio. If no default platform text responses exist, the generated audio content will be empty. In some scenarios, multiple output audio fields may be present in the response structure. In these cases, only the top-most-level audio output has content.", +"format": "byte", +"type": "string" +}, +"outputAudioConfig": { +"$ref": "GoogleCloudDialogflowV2OutputAudioConfig", +"description": "The config used by the speech synthesizer to generate the output audio." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2QueryResult", +"description": "The selected results of the conversational query or event processing. See `alternative_query_results` for additional potential results." +}, +"responseId": { +"description": "The unique identifier of the response. It can be used to locate a response in the training example set or for reporting issues.", +"type": "string" +}, +"webhookStatus": { +"$ref": "GoogleRpcStatus", +"description": "Specifies the status of the webhook request." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DialogflowAssistAnswer": { +"description": "Represents a Dialogflow assist answer.", +"id": "GoogleCloudDialogflowV2DialogflowAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"intentSuggestion": { +"$ref": "GoogleCloudDialogflowV2IntentSuggestion", +"description": "An intent suggestion generated from conversation." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2QueryResult", +"description": "Result from v2 agent." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Document": { +"description": "A knowledge document to be used by a KnowledgeBase. For more information, see the [knowledge base guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; only use `projects.knowledgeBases.documents`.", +"id": "GoogleCloudDialogflowV2Document", +"properties": { +"contentUri": { +"description": "The URI where the file content is located. For documents stored in Google Cloud Storage, these URIs must have the form `gs:///`. NOTE: External URLs must correspond to public webpages, i.e., they must be indexed by Google Search. In particular, URLs for showing documents in Google Cloud Storage (i.e. the URL in your browser) are not supported. Instead use the `gs://` format URI described above.", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the document. The name must be 1024 bytes or less; otherwise, the creation request fails.", +"type": "string" +}, +"enableAutoReload": { +"description": "Optional. If true, we try to automatically reload the document every day (at a time picked by the system). If false or unspecified, we don't try to automatically reload the document. Currently you can only enable automatic reload for documents sourced from a public url, see `source` field for the source types. Reload status can be tracked in `latest_reload_status`. If a reload fails, we will keep the document unchanged. If a reload fails with internal errors, the system will try to reload the document on the next day. If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the system will not try to reload the document anymore. You need to manually reload the document successfully by calling `ReloadDocument` and clear the errors.", +"type": "boolean" +}, +"knowledgeTypes": { +"description": "Required. The knowledge type of document content.", +"items": { +"enum": [ +"KNOWLEDGE_TYPE_UNSPECIFIED", +"FAQ", +"EXTRACTIVE_QA", +"ARTICLE_SUGGESTION", +"AGENT_FACING_SMART_REPLY" +], +"enumDescriptions": [ +"The type is unspecified or arbitrary.", +"The document content contains question and answer pairs as either HTML or CSV. Typical FAQ HTML formats are parsed accurately, but unusual formats may fail to be parsed. CSV must have questions in the first column and answers in the second, with no header. Because of this explicit format, they are always parsed accurately.", +"Documents for which unstructured text is extracted and used for question answering.", +"The entire document content as a whole can be used for query results. Only for Contact Center Solutions on Dialogflow.", +"The document contains agent-facing Smart Reply entries." +], +"type": "string" +}, +"type": "array" +}, +"latestReloadStatus": { +"$ref": "GoogleCloudDialogflowV2DocumentReloadStatus", +"description": "Output only. The time and status of the latest reload. This reload may have been triggered automatically or manually and may not have succeeded.", +"readOnly": true +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Metadata for the document. The metadata supports arbitrary key-value pairs. Suggested use cases include storing a document's title, an external URL distinct from the document's content_uri, etc. The max size of a `key` or a `value` of the metadata is 1024 bytes.", +"type": "object" +}, +"mimeType": { +"description": "Required. The MIME type of this document.", +"type": "string" +}, +"name": { +"description": "Optional. The document resource name. The name must be empty when creating a document. Format: `projects//locations//knowledgeBases//documents/`.", +"type": "string" +}, +"rawContent": { +"description": "The raw content of the document. This field is only permitted for EXTRACTIVE_QA and FAQ knowledge types.", +"format": "byte", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the document.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"UPDATING", +"RELOADING", +"DELETING" +], +"enumDescriptions": [ +"The document state is unspecified.", +"The document creation is in progress.", +"The document is active and ready to use.", +"The document updation is in progress.", +"The document is reloading.", +"The document deletion is in progress." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DocumentReloadStatus": { +"description": "The status of a reload attempt.", +"id": "GoogleCloudDialogflowV2DocumentReloadStatus", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of a reload attempt or the initial load." +}, +"time": { +"description": "The time of a reload attempt. This reload may have been triggered automatically or manually and may not have succeeded.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DtmfParameters": { +"description": "The message in the response that indicates the parameters of DTMF.", +"id": "GoogleCloudDialogflowV2DtmfParameters", +"properties": { +"acceptsDtmfInput": { +"description": "Indicates whether DTMF input can be handled in the next request.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EncryptionSpec": { +"description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", +"id": "GoogleCloudDialogflowV2EncryptionSpec", +"properties": { +"kmsKey": { +"description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EntityType": { +"description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", +"id": "GoogleCloudDialogflowV2EntityType", +"properties": { +"autoExpansionMode": { +"description": "Optional. Indicates whether the entity type can be automatically expanded.", +"enum": [ +"AUTO_EXPANSION_MODE_UNSPECIFIED", +"AUTO_EXPANSION_MODE_DEFAULT" +], +"enumDescriptions": [ +"Auto expansion disabled for the entity.", +"Allows an agent to recognize values that have not been explicitly listed in the entity." +], +"type": "string" +}, +"displayName": { +"description": "Required. The name of the entity type.", +"type": "string" +}, +"enableFuzzyExtraction": { +"description": "Optional. Enables fuzzy entity extraction during classification.", +"type": "boolean" +}, +"entities": { +"description": "Optional. The collection of entity entries associated with the entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityTypeEntity" +}, +"type": "array" +}, +"kind": { +"description": "Required. Indicates the kind of entity type.", +"enum": [ +"KIND_UNSPECIFIED", +"KIND_MAP", +"KIND_LIST", +"KIND_REGEXP" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Map entity types allow mapping of a group of synonyms to a reference value.", +"List entity types contain a set of entries that do not map to reference values. However, list entity types can contain references to other entity types (with or without aliases).", +"Regexp entity types allow to specify regular expressions in entries values." +], +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes methods. Format: `projects//agent/entityTypes/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EntityTypeBatch": { +"description": "This message is a wrapper around a collection of entity types.", +"id": "GoogleCloudDialogflowV2EntityTypeBatch", +"properties": { +"entityTypes": { +"description": "A collection of entity types.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EntityTypeEntity": { +"description": "An **entity entry** for an associated entity type.", +"id": "GoogleCloudDialogflowV2EntityTypeEntity", +"properties": { +"synonyms": { +"description": "Required. A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Required. The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Environment": { +"description": "You can create multiple versions of your agent and publish them to separate environments. When you edit an agent, you are editing the draft agent. At any point, you can save the draft agent as an agent version, which is an immutable snapshot of your agent. When you save the draft agent, it is published to the default environment. When you create agent versions, you can publish them to custom environments. You can create a variety of custom environments for: - testing - development - production - etc. For more information, see the [versions and environments guide](https://cloud.google.com/dialogflow/docs/agents-versions).", +"id": "GoogleCloudDialogflowV2Environment", +"properties": { +"agentVersion": { +"description": "Optional. The agent version loaded into this environment. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"type": "string" +}, +"description": { +"description": "Optional. The developer-provided description for this environment. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"fulfillment": { +"$ref": "GoogleCloudDialogflowV2Fulfillment", +"description": "Optional. The fulfillment settings to use for this environment." +}, +"name": { +"description": "Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.", +"enum": [ +"STATE_UNSPECIFIED", +"STOPPED", +"LOADING", +"RUNNING" +], +"enumDescriptions": [ +"Not specified. This value is not used.", +"Stopped.", +"Loading.", +"Running." +], +"readOnly": true, +"type": "string" +}, +"textToSpeechSettings": { +"$ref": "GoogleCloudDialogflowV2TextToSpeechSettings", +"description": "Optional. Text to speech settings for this environment." +}, +"updateTime": { +"description": "Output only. The last update time of this environment. This field is read-only, i.e., it cannot be set by create and update methods.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EnvironmentHistory": { +"description": "The response message for Environments.GetEnvironmentHistory.", +"id": "GoogleCloudDialogflowV2EnvironmentHistory", +"properties": { +"entries": { +"description": "Output only. The list of agent environments. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2EnvironmentHistoryEntry" +}, +"readOnly": true, +"type": "array" +}, +"nextPageToken": { +"description": "Output only. Token to retrieve the next page of results, or empty if there are no more results in the list.", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "Output only. The name of the environment this history is for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EnvironmentHistoryEntry": { +"description": "Represents an environment history entry.", +"id": "GoogleCloudDialogflowV2EnvironmentHistoryEntry", +"properties": { +"agentVersion": { +"description": "The agent version loaded into this environment history entry.", +"type": "string" +}, +"createTime": { +"description": "The creation time of this environment history entry.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "The developer-provided description for this environment history entry.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EvaluationConfig": { +"description": "The configuration for model evaluation.", +"id": "GoogleCloudDialogflowV2EvaluationConfig", +"properties": { +"datasets": { +"description": "Required. Datasets used for evaluation.", +"items": { +"$ref": "GoogleCloudDialogflowV2InputDataset" +}, +"type": "array" +}, +"smartComposeConfig": { +"$ref": "GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfig", +"description": "Configuration for smart compose model evalution." +}, +"smartReplyConfig": { +"$ref": "GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfig", +"description": "Configuration for smart reply model evalution." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfig": { +"description": "Smart compose specific configuration for evaluation job.", +"id": "GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfig", +"properties": { +"allowlistDocument": { +"description": "The allowlist document resource name. Format: `projects//knowledgeBases//documents/`. Only used for smart compose model.", +"type": "string" +}, +"maxResultCount": { +"description": "Required. The model to be evaluated can return multiple results with confidence score on each query. These results will be sorted by the descending order of the scores and we only keep the first max_result_count results as the final results to evaluate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfig": { +"description": "Smart reply specific configuration for evaluation job.", +"id": "GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfig", +"properties": { +"allowlistDocument": { +"description": "The allowlist document resource name. Format: `projects//knowledgeBases//documents/`. Only used for smart reply model.", +"type": "string" +}, +"maxResultCount": { +"description": "Required. The model to be evaluated can return multiple results with confidence score on each query. These results will be sorted by the descending order of the scores and we only keep the first max_result_count results as the final results to evaluate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EventInput": { +"description": "Events allow for matching intents by event name instead of the natural language input. For instance, input `` can trigger a personalized welcome response. The parameter `name` may be used by the agent in the response: `\"Hello #welcome_event.name! What can I do for you today?\"`.", +"id": "GoogleCloudDialogflowV2EventInput", +"properties": { +"languageCode": { +"description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of the event.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ExportAgentRequest": { +"description": "The request message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowV2ExportAgentRequest", +"properties": { +"agentUri": { +"description": "Required. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowV2ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Zip compressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in `ExportAgentRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ExportDocumentRequest": { +"description": "Request message for Documents.ExportDocument.", +"id": "GoogleCloudDialogflowV2ExportDocumentRequest", +"properties": { +"exportFullContent": { +"description": "When enabled, export the full content of the document including empirical probability.", +"type": "boolean" +}, +"gcsDestination": { +"$ref": "GoogleCloudDialogflowV2GcsDestination", +"description": "Cloud Storage file path to export the document." +}, +"smartMessagingPartialUpdate": { +"description": "When enabled, export the smart messaging allowlist document for partial update.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ExportOperationMetadata": { +"description": "Metadata related to the Export Data Operations (e.g. ExportDocument).", +"id": "GoogleCloudDialogflowV2ExportOperationMetadata", +"properties": { +"exportedGcsDestination": { +"$ref": "GoogleCloudDialogflowV2GcsDestination", +"description": "Cloud Storage file path of the exported data." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2FaqAnswer": { +"description": "Represents answer from \"frequently asked questions\".", +"id": "GoogleCloudDialogflowV2FaqAnswer", +"properties": { +"answer": { +"description": "The piece of text from the `source` knowledge base document.", +"type": "string" +}, +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "The system's confidence score that this Knowledge answer is a good match for this conversational query, range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +}, +"source": { +"description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//locations//agent/knowledgeBases//documents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2FewShotExample": { +"description": "Providing examples in the generator (i.e. building a few-shot generator) helps convey the desired format of the LLM response.", +"id": "GoogleCloudDialogflowV2FewShotExample", +"properties": { +"conversationContext": { +"$ref": "GoogleCloudDialogflowV2ConversationContext", +"description": "Optional. Conversation transcripts." +}, +"extraInfo": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Key is the placeholder field name in input, value is the value of the placeholder. E.g. instruction contains \"@price\", and ingested data has <\"price\", \"10\">", +"type": "object" +}, +"output": { +"$ref": "GoogleCloudDialogflowV2GeneratorSuggestion", +"description": "Required. Example output of the model." +}, +"summarizationSectionList": { +"$ref": "GoogleCloudDialogflowV2SummarizationSectionList", +"description": "Summarization sections." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Fulfillment": { +"description": "By default, your agent responds to a matched intent with a static response. As an alternative, you can provide a more dynamic response by using fulfillment. When you enable fulfillment for an intent, Dialogflow responds to that intent by calling a service that you define. For example, if an end-user wants to schedule a haircut on Friday, your service can check your database and respond to the end-user with availability information for Friday. For more information, see the [fulfillment guide](https://cloud.google.com/dialogflow/docs/fulfillment-overview).", +"id": "GoogleCloudDialogflowV2Fulfillment", +"properties": { +"displayName": { +"description": "Optional. The human-readable name of the fulfillment, unique within the agent. This field is not used for Fulfillment in an Environment.", +"type": "string" +}, +"enabled": { +"description": "Optional. Whether fulfillment is enabled.", +"type": "boolean" +}, +"features": { +"description": "Optional. The field defines whether the fulfillment is enabled for certain features.", +"items": { +"$ref": "GoogleCloudDialogflowV2FulfillmentFeature" +}, +"type": "array" +}, +"genericWebService": { +"$ref": "GoogleCloudDialogflowV2FulfillmentGenericWebService", +"description": "Configuration for a generic web service." +}, +"name": { +"description": "Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2FulfillmentFeature": { +"description": "Whether fulfillment is enabled for the specific feature.", +"id": "GoogleCloudDialogflowV2FulfillmentFeature", +"properties": { +"type": { +"description": "The type of the feature that enabled for fulfillment.", +"enum": [ +"TYPE_UNSPECIFIED", +"SMALLTALK" +], +"enumDescriptions": [ +"Feature type not specified.", +"Fulfillment is enabled for SmallTalk." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2FulfillmentGenericWebService": { +"description": "Represents configuration for a generic web service. Dialogflow supports two mechanisms for authentications: - Basic authentication with username and password. - Authentication with additional authentication headers. More information could be found at: https://cloud.google.com/dialogflow/docs/fulfillment-configure.", +"id": "GoogleCloudDialogflowV2FulfillmentGenericWebService", +"properties": { +"isCloudFunction": { +"deprecated": true, +"description": "Optional. Indicates if generic web service is created through Cloud Functions integration. Defaults to false. is_cloud_function is deprecated. Cloud functions can be configured by its uri as a regular web service now.", +"type": "boolean" +}, +"password": { +"description": "Optional. The password for HTTP Basic authentication.", +"type": "string" +}, +"requestHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The HTTP request headers to send together with fulfillment requests.", +"type": "object" +}, +"uri": { +"description": "Required. The fulfillment URI for receiving POST requests. It must use https protocol.", +"type": "string" +}, +"username": { +"description": "Optional. The user name for HTTP Basic authentication.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GcsDestination": { +"description": "Google Cloud Storage location for the output.", +"id": "GoogleCloudDialogflowV2GcsDestination", +"properties": { +"uri": { +"description": "The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GcsSources": { +"description": "Google Cloud Storage location for the inputs.", +"id": "GoogleCloudDialogflowV2GcsSources", +"properties": { +"uris": { +"description": "Required. Google Cloud Storage URIs for the inputs. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GenerateStatelessSuggestionRequest": { +"description": "The request message for Conversations.GenerateStatelessSuggestion.", +"id": "GoogleCloudDialogflowV2GenerateStatelessSuggestionRequest", +"properties": { +"conversationContext": { +"$ref": "GoogleCloudDialogflowV2ConversationContext", +"description": "Optional. Context of the conversation, including transcripts." +}, +"generator": { +"$ref": "GoogleCloudDialogflowV2Generator", +"description": "Uncreated generator. It should be a complete generator that includes all information about the generator." +}, +"generatorName": { +"description": "The resource name of the existing created generator. Format: `projects//locations//generators/`", +"type": "string" +}, +"triggerEvents": { +"description": "Optional. A list of trigger events. Generator will be triggered only if it's trigger event is included here.", +"items": { +"enum": [ +"TRIGGER_EVENT_UNSPECIFIED", +"END_OF_UTTERANCE", +"MANUAL_CALL" +], +"enumDescriptions": [ +"Default value for TriggerEvent.", +"Triggers when each chat message or voice utterance ends.", +"Triggers on the conversation manually by API calls, such as Conversations.GenerateStatelessSuggestion and Conversations.GenerateSuggestions." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GenerateStatelessSuggestionResponse": { +"description": "The response message for Conversations.GenerateStatelessSuggestion.", +"id": "GoogleCloudDialogflowV2GenerateStatelessSuggestionResponse", +"properties": { +"generatorSuggestion": { +"$ref": "GoogleCloudDialogflowV2GeneratorSuggestion", +"description": "Required. Generated suggestion for a conversation." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GenerateStatelessSummaryRequest": { +"description": "The request message for Conversations.GenerateStatelessSummary.", +"id": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest", +"properties": { +"conversationProfile": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile", +"description": "Required. A ConversationProfile containing information required for Summary generation. Required fields: {language_code, security_settings} Optional fields: {agent_assistant_config}" +}, +"latestMessage": { +"description": "Optional. The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.", +"type": "string" +}, +"maxContextSize": { +"description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.", +"format": "int32", +"type": "integer" +}, +"statelessConversation": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation", +"description": "Required. The conversation to suggest a summary for." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation": { +"description": "The minimum amount of information required to generate a Summary without having a Conversation resource created.", +"id": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation", +"properties": { +"messages": { +"description": "Required. The messages that the Summary will be generated from. It is expected that this message content is already redacted and does not contain any PII. Required fields: {content, language_code, participant, participant_role} Optional fields: {send_time} If send_time is not provided, then the messages must be provided in chronological order.", +"items": { +"$ref": "GoogleCloudDialogflowV2Message" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GenerateStatelessSummaryResponse": { +"description": "The response message for Conversations.GenerateStatelessSummary.", +"id": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message used to compile the suggestion. It may be smaller than the GenerateStatelessSummaryRequest.max_context_size field in the request if there weren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used as context for compiling suggestion. The format is specific to the user and the names of the messages provided.", +"type": "string" +}, +"summary": { +"$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary", +"description": "Generated summary." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary": { +"description": "Generated summary for a conversation.", +"id": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary", +"properties": { +"baselineModelVersion": { +"description": "The baseline model version used to generate this summary. It is empty if a baseline model was not used to generate this summary.", +"type": "string" +}, +"text": { +"description": "The summary content that is concatenated into one string.", +"type": "string" +}, +"textSections": { +"additionalProperties": { +"type": "string" +}, +"description": "The summary content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Generator": { +"description": "LLM generator.", +"id": "GoogleCloudDialogflowV2Generator", +"properties": { +"createTime": { +"description": "Output only. Creation time of this generator.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Human readable description of the generator.", +"type": "string" +}, +"inferenceParameter": { +"$ref": "GoogleCloudDialogflowV2InferenceParameter", +"description": "Optional. Inference parameters for this generator." +}, +"name": { +"description": "Output only. Identifier. The resource name of the generator. Format: `projects//locations//generators/`", +"readOnly": true, +"type": "string" +}, +"summarizationContext": { +"$ref": "GoogleCloudDialogflowV2SummarizationContext", +"description": "Input of prebuilt Summarization feature." +}, +"triggerEvent": { +"description": "Optional. The trigger event of the generator. It defines when the generator is triggered in a conversation.", +"enum": [ +"TRIGGER_EVENT_UNSPECIFIED", +"END_OF_UTTERANCE", +"MANUAL_CALL" +], +"enumDescriptions": [ +"Default value for TriggerEvent.", +"Triggers when each chat message or voice utterance ends.", +"Triggers on the conversation manually by API calls, such as Conversations.GenerateStatelessSuggestion and Conversations.GenerateSuggestions." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time of this generator.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GeneratorSuggestion": { +"description": "Suggestion generated using a Generator.", +"id": "GoogleCloudDialogflowV2GeneratorSuggestion", +"properties": { +"summarySuggestion": { +"$ref": "GoogleCloudDialogflowV2SummarySuggestion", +"description": "Optional. Suggested summary." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfig": { +"description": "Defines the Human Agent Assist to connect to a conversation.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfig", +"properties": { +"endUserSuggestionConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig", +"description": "Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access." +}, +"humanAgentSuggestionConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig", +"description": "Configuration for agent assistance of human agent participant." +}, +"messageAnalysisConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfig", +"description": "Configuration for message analysis." +}, +"notificationConfig": { +"$ref": "GoogleCloudDialogflowV2NotificationConfig", +"description": "Pub/Sub topic on which to publish new agent assistant events." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig": { +"description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig", +"properties": { +"baselineModelVersion": { +"description": "Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0", +"type": "string" +}, +"model": { +"description": "Conversation model resource name. Format: `projects//conversationModels/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfig": { +"description": "Config to process conversation.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfig", +"properties": { +"recentSentencesCount": { +"description": "Number of recent non-small-talk sentences to use as context for article and FAQ suggestion", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfig": { +"description": "Configuration for analyses to run on each conversation message.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfig", +"properties": { +"enableEntityExtraction": { +"description": "Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.", +"type": "boolean" +}, +"enableSentimentAnalysis": { +"description": "Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig": { +"description": "Detail human agent assistant config.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig", +"properties": { +"disableHighLatencyFeaturesSyncDelivery": { +"description": "Optional. When disable_high_latency_features_sync_delivery is true and using the AnalyzeContent API, we will not deliver the responses from high latency features in the API response. The human_agent_assistant_config.notification_config must be configured and enable_event_based_suggestion must be set to true to receive the responses from high latency features in Pub/Sub. High latency feature(s): KNOWLEDGE_ASSIST", +"type": "boolean" +}, +"featureConfigs": { +"description": "Configuration of different suggestion features. One feature can have only one config.", +"items": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig" +}, +"type": "array" +}, +"generators": { +"description": "Optional. List of various generator resource names used in the conversation profile.", +"items": { +"type": "string" +}, +"type": "array" +}, +"groupSuggestionResponses": { +"description": "If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig": { +"description": "Config for suggestion features.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig", +"properties": { +"conversationModelConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig", +"description": "Configs of custom conversation model." +}, +"conversationProcessConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfig", +"description": "Configs for processing conversation." +}, +"disableAgentQueryLogging": { +"description": "Optional. Disable the logging of search queries sent by human agents. It can prevent those queries from being stored at answer records. Supported features: KNOWLEDGE_SEARCH.", +"type": "boolean" +}, +"enableConversationAugmentedQuery": { +"description": "Optional. Enable including conversation context during query answer generation. Supported features: KNOWLEDGE_SEARCH.", +"type": "boolean" +}, +"enableEventBasedSuggestion": { +"description": "Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST.", +"type": "boolean" +}, +"enableQuerySuggestionOnly": { +"description": "Optional. Enable query suggestion only. Supported features: KNOWLEDGE_ASSIST", +"type": "boolean" +}, +"enableQuerySuggestionWhenNoAnswer": { +"description": "Optional. Enable query suggestion even if we can't find its answer. By default, queries are suggested only if we find its answer. Supported features: KNOWLEDGE_ASSIST", +"type": "boolean" +}, +"queryConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig", +"description": "Configs of query." +}, +"suggestionFeature": { +"$ref": "GoogleCloudDialogflowV2SuggestionFeature", +"description": "The suggestion feature." +}, +"suggestionTriggerSettings": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings", +"description": "Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig": { +"description": "Config for suggestion query.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig", +"properties": { +"confidenceThreshold": { +"description": "Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION.", +"format": "float", +"type": "number" +}, +"contextFilterSettings": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettings", +"description": "Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped." +}, +"contextSize": { +"description": "Optional. The number of recent messages to include in the context. Supported features: KNOWLEDGE_ASSIST.", +"format": "int32", +"type": "integer" +}, +"dialogflowQuerySource": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource", +"description": "Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST." +}, +"documentQuerySource": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySource", +"description": "Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE." +}, +"knowledgeBaseQuerySource": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySource", +"description": "Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ." +}, +"maxResults": { +"description": "Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.", +"format": "int32", +"type": "integer" +}, +"sections": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections", +"description": "Optional. The customized sections chosen to return when requesting a summary of a conversation." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettings": { +"description": "Settings that determine how to filter recent conversation context when generating suggestions.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettings", +"properties": { +"dropHandoffMessages": { +"description": "If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.", +"type": "boolean" +}, +"dropIvrMessages": { +"description": "If set to true, all messages from ivr stage are dropped.", +"type": "boolean" +}, +"dropVirtualAgentMessages": { +"description": "If set to true, all messages from virtual agent are dropped.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource": { +"description": "Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource", +"properties": { +"agent": { +"description": "Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.", +"type": "string" +}, +"humanAgentSideConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig", +"description": "Optional. The Dialogflow assist configuration for human agent." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig": { +"description": "The configuration used for human agent side Dialogflow assist suggestion.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig", +"properties": { +"agent": { +"description": "Optional. The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: `projects//locations//agent`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySource": { +"description": "Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySource", +"properties": { +"documents": { +"description": "Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySource": { +"description": "Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySource", +"properties": { +"knowledgeBases": { +"description": "Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections": { +"description": "Custom sections to return when requesting a summary of a conversation. This is only supported when `baseline_model_version` == '2.0'. Supported features: CONVERSATION_SUMMARIZATION, CONVERSATION_SUMMARIZATION_VOICE.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections", +"properties": { +"sectionTypes": { +"description": "The selected sections chosen to return when requesting a summary of a conversation. A duplicate selected section will be treated as a single selected section. If section types are not provided, the default will be {SITUATION, ACTION, RESULT}.", +"items": { +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"SITUATION", +"ACTION", +"RESOLUTION", +"REASON_FOR_CANCELLATION", +"CUSTOMER_SATISFACTION", +"ENTITIES" +], +"enumDescriptions": [ +"Undefined section type, does not return anything.", +"What the customer needs help with or has question about. Section name: \"situation\".", +"What the agent does to help the customer. Section name: \"action\".", +"Result of the customer service. A single word describing the result of the conversation. Section name: \"resolution\".", +"Reason for cancellation if the customer requests for a cancellation. \"N/A\" otherwise. Section name: \"reason_for_cancellation\".", +"\"Unsatisfied\" or \"Satisfied\" depending on the customer's feelings at the end of the conversation. Section name: \"customer_satisfaction\".", +"Key entities extracted from the conversation, such as ticket number, order number, dollar amount, etc. Section names are prefixed by \"entities/\"." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings": { +"description": "Settings of suggestion trigger.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings", +"properties": { +"noSmalltalk": { +"description": "Do not trigger if last utterance is small talk.", +"type": "boolean" +}, +"onlyEndUser": { +"description": "Only trigger suggestion if participant role of last utterance is END_USER.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantEvent": { +"description": "Represents a notification sent to Cloud Pub/Sub subscribers for human agent assistant events in a specific conversation.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantEvent", +"properties": { +"conversation": { +"description": "The conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"participant": { +"description": "The participant that the suggestion is compiled for. Format: `projects//conversations//participants/`. It will not be set in legacy workflow.", +"type": "string" +}, +"suggestionResults": { +"description": "The suggestion results payload that this notification refers to.", +"items": { +"$ref": "GoogleCloudDialogflowV2SuggestionResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentHandoffConfig": { +"description": "Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access.", +"id": "GoogleCloudDialogflowV2HumanAgentHandoffConfig", +"properties": { +"livePersonConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfig", +"description": "Uses [LivePerson](https://www.liveperson.com)." +}, +"salesforceLiveAgentConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfig", +"description": "Uses Salesforce Live Agent." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfig": { +"description": "Configuration specific to [LivePerson](https://www.liveperson.com).", +"id": "GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfig", +"properties": { +"accountNumber": { +"description": "Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfig": { +"description": "Configuration specific to Salesforce Live Agent.", +"id": "GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfig", +"properties": { +"buttonId": { +"description": "Required. Live Agent chat button ID.", +"type": "string" +}, +"deploymentId": { +"description": "Required. Live Agent deployment ID.", +"type": "string" +}, +"endpointDomain": { +"description": "Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.", +"type": "string" +}, +"organizationId": { +"description": "Required. The organization ID of the Salesforce account.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportAgentRequest": { +"description": "The request message for Agents.ImportAgent.", +"id": "GoogleCloudDialogflowV2ImportAgentRequest", +"properties": { +"agentContent": { +"description": "Zip compressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a Google Cloud Storage file containing the agent to import. Note: The URI must start with \"gs://\". Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportConversationDataOperationMetadata": { +"description": "Metadata for a ConversationDatasets.ImportConversationData operation.", +"id": "GoogleCloudDialogflowV2ImportConversationDataOperationMetadata", +"properties": { +"conversationDataset": { +"description": "The resource name of the imported conversation dataset. Format: `projects//locations//conversationDatasets/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when import conversation data request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"partialFailures": { +"description": "Partial failures are failures that don't fail the whole long running operation, e.g. single files that couldn't be read.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportConversationDataOperationResponse": { +"description": "Response used for ConversationDatasets.ImportConversationData long running operation.", +"id": "GoogleCloudDialogflowV2ImportConversationDataOperationResponse", +"properties": { +"conversationDataset": { +"description": "The resource name of the imported conversation dataset. Format: `projects//locations//conversationDatasets/`", +"type": "string" +}, +"importCount": { +"description": "Number of conversations imported successfully.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportConversationDataRequest": { +"description": "The request message for ConversationDatasets.ImportConversationData.", +"id": "GoogleCloudDialogflowV2ImportConversationDataRequest", +"properties": { +"inputConfig": { +"$ref": "GoogleCloudDialogflowV2InputConfig", +"description": "Required. Configuration describing where to import data from." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportDocumentTemplate": { +"description": "The template used for importing documents.", +"id": "GoogleCloudDialogflowV2ImportDocumentTemplate", +"properties": { +"knowledgeTypes": { +"description": "Required. The knowledge type of document content.", +"items": { +"enum": [ +"KNOWLEDGE_TYPE_UNSPECIFIED", +"FAQ", +"EXTRACTIVE_QA", +"ARTICLE_SUGGESTION", +"AGENT_FACING_SMART_REPLY" +], +"enumDescriptions": [ +"The type is unspecified or arbitrary.", +"The document content contains question and answer pairs as either HTML or CSV. Typical FAQ HTML formats are parsed accurately, but unusual formats may fail to be parsed. CSV must have questions in the first column and answers in the second, with no header. Because of this explicit format, they are always parsed accurately.", +"Documents for which unstructured text is extracted and used for question answering.", +"The entire document content as a whole can be used for query results. Only for Contact Center Solutions on Dialogflow.", +"The document contains agent-facing Smart Reply entries." +], +"type": "string" +}, +"type": "array" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Metadata for the document. The metadata supports arbitrary key-value pairs. Suggested use cases include storing a document's title, an external URL distinct from the document's content_uri, etc. The max size of a `key` or a `value` of the metadata is 1024 bytes.", +"type": "object" +}, +"mimeType": { +"description": "Required. The MIME type of the document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportDocumentsRequest": { +"description": "Request message for Documents.ImportDocuments.", +"id": "GoogleCloudDialogflowV2ImportDocumentsRequest", +"properties": { +"documentTemplate": { +"$ref": "GoogleCloudDialogflowV2ImportDocumentTemplate", +"description": "Required. Document template used for importing all the documents." +}, +"gcsSource": { +"$ref": "GoogleCloudDialogflowV2GcsSources", +"description": "Optional. The Google Cloud Storage location for the documents. The path can include a wildcard. These URIs may have the forms `gs:///`. `gs:////*.`." +}, +"importGcsCustomMetadata": { +"description": "Whether to import custom metadata from Google Cloud Storage. Only valid when the document source is Google Cloud Storage URI.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportDocumentsResponse": { +"description": "Response message for Documents.ImportDocuments.", +"id": "GoogleCloudDialogflowV2ImportDocumentsResponse", +"properties": { +"warnings": { +"description": "Includes details about skipped documents or any other warnings.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InferenceParameter": { +"description": "The parameters of inference.", +"id": "GoogleCloudDialogflowV2InferenceParameter", +"properties": { +"maxOutputTokens": { +"description": "Optional. Maximum number of the output tokens for the generator.", +"format": "int32", +"type": "integer" +}, +"temperature": { +"description": "Optional. Controls the randomness of LLM predictions. Low temperature = less random. High temperature = more random. If unset (or 0), uses a default value of 0.", +"format": "double", +"type": "number" +}, +"topK": { +"description": "Optional. Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model's vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature). For each token selection step, the top K tokens with the highest probabilities are sampled. Then tokens are further filtered based on topP with the final token selected using temperature sampling. Specify a lower value for less random responses and a higher value for more random responses. Acceptable value is [1, 40], default to 40.", +"format": "int32", +"type": "integer" +}, +"topP": { +"description": "Optional. Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value. For example, if tokens A, B, and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, then the model will select either A or B as the next token (using temperature) and doesn't consider C. The default top-p value is 0.95. Specify a lower value for less random responses and a higher value for more random responses. Acceptable value is [0.0, 1.0], default to 0.95.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata": { +"description": "Metadata for initializing a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata", +"properties": { +"request": { +"$ref": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", +"description": "Output only. The original request for initialization.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InitializeEncryptionSpecRequest": { +"description": "The request to initialize a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", +"properties": { +"encryptionSpec": { +"$ref": "GoogleCloudDialogflowV2EncryptionSpec", +"description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InputAudioConfig": { +"description": "Instructs the speech recognizer how to process the audio content.", +"id": "GoogleCloudDialogflowV2InputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the audio content to process.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"AUDIO_ENCODING_LINEAR_16", +"AUDIO_ENCODING_FLAC", +"AUDIO_ENCODING_MULAW", +"AUDIO_ENCODING_AMR", +"AUDIO_ENCODING_AMR_WB", +"AUDIO_ENCODING_OGG_OPUS", +"AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE", +"AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"[`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio Codec) is the recommended encoding because it is lossless (therefore recognition is not compromised) and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be 16000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Dialogflow API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"disableNoSpeechRecognizedEvent": { +"description": "Only used in Participants.AnalyzeContent and Participants.StreamingAnalyzeContent. If `false` and recognition doesn't return any result, trigger `NO_SPEECH_RECOGNIZED` event to Dialogflow agent.", +"type": "boolean" +}, +"enableAutomaticPunctuation": { +"description": "Enable automatic punctuation option at the speech backend.", +"type": "boolean" +}, +"enableWordInfo": { +"description": "If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", +"type": "boolean" +}, +"languageCode": { +"description": "Required. The language of the supplied audio. Dialogflow does not do translations. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"model": { +"description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models).", +"type": "string" +}, +"modelVariant": { +"description": "Which variant of the Speech model to use.", +"enum": [ +"SPEECH_MODEL_VARIANT_UNSPECIFIED", +"USE_BEST_AVAILABLE", +"USE_STANDARD", +"USE_ENHANCED" +], +"enumDescriptions": [ +"No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", +"Use the best available variant of the Speech model that the caller is eligible for. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible for enhanced models.", +"Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", +"Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants. * If the API caller isn't eligible for enhanced models, Dialogflow returns an error. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible." +], +"type": "string" +}, +"optOutConformerModelMigration": { +"description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow ES Speech model migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration).", +"type": "boolean" +}, +"phraseHints": { +"deprecated": true, +"description": "A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details. This field is deprecated. Please use [`speech_contexts`]() instead. If you specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will treat the [`phrase_hints`]() as a single additional [`SpeechContext`]().", +"items": { +"type": "string" +}, +"type": "array" +}, +"phraseSets": { +"description": "A collection of phrase set resources to use for speech adaptation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "Required. Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.", +"format": "int32", +"type": "integer" +}, +"singleUtterance": { +"description": "If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods. Note: When specified, InputAudioConfig.single_utterance takes precedence over StreamingDetectIntentRequest.single_utterance.", +"type": "boolean" +}, +"speechContexts": { +"description": "Context information to assist speech recognition. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", +"items": { +"$ref": "GoogleCloudDialogflowV2SpeechContext" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InputConfig": { +"description": "Represents the configuration of importing a set of conversation files in Google Cloud Storage.", +"id": "GoogleCloudDialogflowV2InputConfig", +"properties": { +"gcsSource": { +"$ref": "GoogleCloudDialogflowV2GcsSources", +"description": "The Cloud Storage URI has the form gs:////agent*.json. Wildcards are allowed and will be expanded into all matched JSON files, which will be read as one conversation per file." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InputDataset": { +"description": "InputDataset used to create model or do evaluation. NextID:5", +"id": "GoogleCloudDialogflowV2InputDataset", +"properties": { +"dataset": { +"description": "Required. ConversationDataset resource name. Format: `projects//locations//conversationDatasets/`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Intent": { +"description": "An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview).", +"id": "GoogleCloudDialogflowV2Intent", +"properties": { +"action": { +"description": "Optional. The name of the action associated with the intent. Note: The action name must not contain whitespaces.", +"type": "string" +}, +"defaultResponsePlatforms": { +"description": "Optional. The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform).", +"items": { +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Default platform.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Google Hangouts." +], +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The name of this intent.", +"type": "string" +}, +"endInteraction": { +"description": "Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.", +"type": "boolean" +}, +"events": { +"description": "Optional. The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of the contexts must be present in the active user session for an event to trigger this intent. Event names are limited to 150 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"followupIntentInfo": { +"description": "Output only. Read-only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentFollowupIntentInfo" +}, +"readOnly": true, +"type": "array" +}, +"inputContextNames": { +"description": "Optional. The list of context names required for this intent to be triggered. Format: `projects//agent/sessions/-/contexts/`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"isFallback": { +"description": "Optional. Indicates whether this is a fallback intent.", +"type": "boolean" +}, +"liveAgentHandoff": { +"description": "Optional. Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.", +"type": "boolean" +}, +"messages": { +"description": "Optional. The collection of rich messages corresponding to the `Response` field in the Dialogflow console.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessage" +}, +"type": "array" +}, +"mlDisabled": { +"description": "Optional. Indicates whether Machine Learning is disabled for the intent. Note: If `ml_disabled` setting is set to true, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off.", +"type": "boolean" +}, +"name": { +"description": "Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format: `projects//agent/intents/`.", +"type": "string" +}, +"outputContexts": { +"description": "Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"parameters": { +"description": "Optional. The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentParameter" +}, +"type": "array" +}, +"parentFollowupIntentName": { +"description": "Read-only after creation. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"priority": { +"description": "Optional. The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"resetContexts": { +"description": "Optional. Indicates whether to delete all contexts in the current session when this intent is matched.", +"type": "boolean" +}, +"rootFollowupIntentName": { +"description": "Output only. Read-only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. We populate this field only in the output. Format: `projects//agent/intents/`.", +"readOnly": true, +"type": "string" +}, +"trainingPhrases": { +"description": "Optional. The collection of examples that the agent is trained on.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentTrainingPhrase" +}, +"type": "array" +}, +"webhookState": { +"description": "Optional. Indicates whether webhooks are enabled for the intent.", +"enum": [ +"WEBHOOK_STATE_UNSPECIFIED", +"WEBHOOK_STATE_ENABLED", +"WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING" +], +"enumDescriptions": [ +"Webhook is disabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent. Also, each slot filling prompt is forwarded to the webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentBatch": { +"description": "This message is a wrapper around a collection of intents.", +"id": "GoogleCloudDialogflowV2IntentBatch", +"properties": { +"intents": { +"description": "A collection of intents.", +"items": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentFollowupIntentInfo": { +"description": "Represents a single followup intent in the chain.", +"id": "GoogleCloudDialogflowV2IntentFollowupIntentInfo", +"properties": { +"followupIntentName": { +"description": "The unique identifier of the followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"parentFollowupIntentName": { +"description": "The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessage": { +"description": "A rich response message. Corresponds to the intent `Response` field in the Dialogflow console. For more information, see [Rich response messages](https://cloud.google.com/dialogflow/docs/intents-rich-messages).", +"id": "GoogleCloudDialogflowV2IntentMessage", +"properties": { +"basicCard": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCard", +"description": "The basic card response for Actions on Google." +}, +"browseCarouselCard": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard", +"description": "Browse carousel card for Actions on Google." +}, +"card": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCard", +"description": "The card response." +}, +"carouselSelect": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCarouselSelect", +"description": "The carousel card response for Actions on Google." +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "The image response." +}, +"linkOutSuggestion": { +"$ref": "GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion", +"description": "The link out suggestion chip for Actions on Google." +}, +"listSelect": { +"$ref": "GoogleCloudDialogflowV2IntentMessageListSelect", +"description": "The list card response for Actions on Google." +}, +"mediaContent": { +"$ref": "GoogleCloudDialogflowV2IntentMessageMediaContent", +"description": "The media content card for Actions on Google." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A custom platform-specific response.", +"type": "object" +}, +"platform": { +"description": "Optional. The platform that this message is intended for.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Default platform.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Google Hangouts." +], +"type": "string" +}, +"quickReplies": { +"$ref": "GoogleCloudDialogflowV2IntentMessageQuickReplies", +"description": "The quick replies response." +}, +"simpleResponses": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSimpleResponses", +"description": "The voice and text-only responses for Actions on Google." +}, +"suggestions": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSuggestions", +"description": "The suggestion chips for Actions on Google." +}, +"tableCard": { +"$ref": "GoogleCloudDialogflowV2IntentMessageTableCard", +"description": "Table card for Actions on Google." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2IntentMessageText", +"description": "The text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBasicCard": { +"description": "The basic card message. Useful for displaying information.", +"id": "GoogleCloudDialogflowV2IntentMessageBasicCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCardButton" +}, +"type": "array" +}, +"formattedText": { +"description": "Required, unless image is present. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. The image for the card." +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBasicCardButton": { +"description": "The button object that appears at the bottom of a card.", +"id": "GoogleCloudDialogflowV2IntentMessageBasicCardButton", +"properties": { +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction", +"description": "Required. Action to take when a user taps on the button." +}, +"title": { +"description": "Required. The title of the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction": { +"description": "Opens the given URI.", +"id": "GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction", +"properties": { +"uri": { +"description": "Required. The HTTP or HTTPS scheme URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard": { +"description": "Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel", +"id": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard", +"properties": { +"imageDisplayOptions": { +"description": "Optional. Settings for displaying the image. Applies to every image in items.", +"enum": [ +"IMAGE_DISPLAY_OPTIONS_UNSPECIFIED", +"GRAY", +"WHITE", +"CROPPED", +"BLURRED_BACKGROUND" +], +"enumDescriptions": [ +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with white bars.", +"Image is scaled such that the image width and height match or exceed the container dimensions. This may crop the top and bottom of the image if the scaled image height is greater than the container height, or crop the left and right of the image if the scaled image width is greater than the container width. This is similar to \"Zoom Mode\" on a widescreen TV when playing a 4:3 video.", +"Pad the gaps between image and image frame with a blurred copy of the same image." +], +"type": "string" +}, +"items": { +"description": "Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem": { +"description": "Browsing carousel tile", +"id": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem", +"properties": { +"description": { +"description": "Optional. Description of the carousel item. Maximum of four lines of text.", +"type": "string" +}, +"footer": { +"description": "Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Hero image for the carousel item." +}, +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"description": "Required. Action to present to the user." +}, +"title": { +"description": "Required. Title of the carousel item. Maximum of two lines of text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction": { +"description": "Actions on Google action to open a given url.", +"id": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"properties": { +"url": { +"description": "Required. URL", +"type": "string" +}, +"urlTypeHint": { +"description": "Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.", +"enum": [ +"URL_TYPE_HINT_UNSPECIFIED", +"AMP_ACTION", +"AMP_CONTENT" +], +"enumDescriptions": [ +"Unspecified", +"Url would be an amp action", +"URL that points directly to AMP content, or to a canonical URL which refers to AMP content via ." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCard": { +"description": "The card response message.", +"id": "GoogleCloudDialogflowV2IntentMessageCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCardButton" +}, +"type": "array" +}, +"imageUri": { +"description": "Optional. The public URI to an image file for the card.", +"type": "string" +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCardButton": { +"description": "Contains information about a button.", +"id": "GoogleCloudDialogflowV2IntentMessageCardButton", +"properties": { +"postback": { +"description": "Optional. The text to send back to the Dialogflow API or a URI to open.", +"type": "string" +}, +"text": { +"description": "Optional. The text to show on the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCarouselSelect": { +"description": "The card for presenting a carousel of options to select from.", +"id": "GoogleCloudDialogflowV2IntentMessageCarouselSelect", +"properties": { +"items": { +"description": "Required. Carousel items.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCarouselSelectItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCarouselSelectItem": { +"description": "An item in the carousel.", +"id": "GoogleCloudDialogflowV2IntentMessageCarouselSelectItem", +"properties": { +"description": { +"description": "Optional. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSelectItemInfo", +"description": "Required. Additional info about the option item." +}, +"title": { +"description": "Required. Title of the carousel item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageColumnProperties": { +"description": "Column properties for TableCard.", +"id": "GoogleCloudDialogflowV2IntentMessageColumnProperties", +"properties": { +"header": { +"description": "Required. Column heading.", +"type": "string" +}, +"horizontalAlignment": { +"description": "Optional. Defines text alignment for all cells in this column.", +"enum": [ +"HORIZONTAL_ALIGNMENT_UNSPECIFIED", +"LEADING", +"CENTER", +"TRAILING" +], +"enumDescriptions": [ +"Text is aligned to the leading edge of the column.", +"Text is aligned to the leading edge of the column.", +"Text is centered in the column.", +"Text is aligned to the trailing edge of the column." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageImage": { +"description": "The image response message.", +"id": "GoogleCloudDialogflowV2IntentMessageImage", +"properties": { +"accessibilityText": { +"description": "Optional. A text description of the image to be used for accessibility, e.g., screen readers.", +"type": "string" +}, +"imageUri": { +"description": "Optional. The public URI to an image file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion": { +"description": "The suggestion chip message that allows the user to jump out to the app or website associated with this agent.", +"id": "GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion", +"properties": { +"destinationName": { +"description": "Required. The name of the app or site this chip is linking to.", +"type": "string" +}, +"uri": { +"description": "Required. The URI of the app or site to open when the user taps the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageListSelect": { +"description": "The card for presenting a list of options to select from.", +"id": "GoogleCloudDialogflowV2IntentMessageListSelect", +"properties": { +"items": { +"description": "Required. List items.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageListSelectItem" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle of the list.", +"type": "string" +}, +"title": { +"description": "Optional. The overall title of the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageListSelectItem": { +"description": "An item in the list.", +"id": "GoogleCloudDialogflowV2IntentMessageListSelectItem", +"properties": { +"description": { +"description": "Optional. The main text describing the item.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSelectItemInfo", +"description": "Required. Additional information about this option." +}, +"title": { +"description": "Required. The title of the list item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageMediaContent": { +"description": "The media content card for Actions on Google.", +"id": "GoogleCloudDialogflowV2IntentMessageMediaContent", +"properties": { +"mediaObjects": { +"description": "Required. List of media objects.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject" +}, +"type": "array" +}, +"mediaType": { +"description": "Optional. What type of media is the content (ie \"audio\").", +"enum": [ +"RESPONSE_MEDIA_TYPE_UNSPECIFIED", +"AUDIO" +], +"enumDescriptions": [ +"Unspecified.", +"Response media type is audio." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject": { +"description": "Response media object for media content card.", +"id": "GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject", +"properties": { +"contentUrl": { +"description": "Required. Url where the media is stored.", +"type": "string" +}, +"description": { +"description": "Optional. Description of media card.", +"type": "string" +}, +"icon": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Icon to display above media content." +}, +"largeImage": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Image to display above media content." +}, +"name": { +"description": "Required. Name of media card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageQuickReplies": { +"description": "The quick replies response message.", +"id": "GoogleCloudDialogflowV2IntentMessageQuickReplies", +"properties": { +"quickReplies": { +"description": "Optional. The collection of quick replies.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Optional. The title of the collection of quick replies.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSelectItemInfo": { +"description": "Additional info about the select item for when it is triggered in a dialog.", +"id": "GoogleCloudDialogflowV2IntentMessageSelectItemInfo", +"properties": { +"key": { +"description": "Required. A unique key that will be sent back to the agent if this response is given.", +"type": "string" +}, +"synonyms": { +"description": "Optional. A list of synonyms that can also be used to trigger this item in dialog.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSimpleResponse": { +"description": "The simple response message containing speech or text.", +"id": "GoogleCloudDialogflowV2IntentMessageSimpleResponse", +"properties": { +"displayText": { +"description": "Optional. The text to display.", +"type": "string" +}, +"ssml": { +"description": "One of text_to_speech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with text_to_speech.", +"type": "string" +}, +"textToSpeech": { +"description": "One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSimpleResponses": { +"description": "The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`.", +"id": "GoogleCloudDialogflowV2IntentMessageSimpleResponses", +"properties": { +"simpleResponses": { +"description": "Required. The list of simple responses.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSimpleResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSuggestion": { +"description": "The suggestion chip message that the user can tap to quickly post a reply to the conversation.", +"id": "GoogleCloudDialogflowV2IntentMessageSuggestion", +"properties": { +"title": { +"description": "Required. The text shown the in the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSuggestions": { +"description": "The collection of suggestions.", +"id": "GoogleCloudDialogflowV2IntentMessageSuggestions", +"properties": { +"suggestions": { +"description": "Required. The list of suggested replies.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSuggestion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageTableCard": { +"description": "Table card for Actions on Google.", +"id": "GoogleCloudDialogflowV2IntentMessageTableCard", +"properties": { +"buttons": { +"description": "Optional. List of buttons for the card.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCardButton" +}, +"type": "array" +}, +"columnProperties": { +"description": "Optional. Display properties for the columns in this table.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageColumnProperties" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Image which should be displayed on the card." +}, +"rows": { +"description": "Optional. Rows in this table of data.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageTableCardRow" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle to the title.", +"type": "string" +}, +"title": { +"description": "Required. Title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageTableCardCell": { +"description": "Cell of TableCardRow.", +"id": "GoogleCloudDialogflowV2IntentMessageTableCardCell", +"properties": { +"text": { +"description": "Required. Text in this cell.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageTableCardRow": { +"description": "Row of TableCard.", +"id": "GoogleCloudDialogflowV2IntentMessageTableCardRow", +"properties": { +"cells": { +"description": "Optional. List of cells that make up this row.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageTableCardCell" +}, +"type": "array" +}, +"dividerAfter": { +"description": "Optional. Whether to add a visual divider after this row.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowV2IntentMessageText", +"properties": { +"text": { +"description": "Optional. The collection of the agent's responses.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentParameter": { +"description": "Represents intent parameters.", +"id": "GoogleCloudDialogflowV2IntentParameter", +"properties": { +"defaultValue": { +"description": "Optional. The default value to use when the `value` yields an empty result. Default values can be extracted from contexts by using the following syntax: `#context_name.parameter_name`.", +"type": "string" +}, +"displayName": { +"description": "Required. The name of the parameter.", +"type": "string" +}, +"entityTypeDisplayName": { +"description": "Optional. The name of the entity type, prefixed with `@`, that describes values of the parameter. If the parameter is required, this must be provided.", +"type": "string" +}, +"isList": { +"description": "Optional. Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"mandatory": { +"description": "Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value.", +"type": "boolean" +}, +"name": { +"description": "The unique identifier of this parameter.", +"type": "string" +}, +"prompts": { +"description": "Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Optional. The definition of the parameter value. It can be: - a constant string, - a parameter value defined as `$parameter_name`, - an original parameter value defined as `$parameter_name.original`, - a parameter value from some context defined as `#context_name.parameter_name`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentSuggestion": { +"description": "Represents an intent suggestion.", +"id": "GoogleCloudDialogflowV2IntentSuggestion", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "The display name of the intent.", +"type": "string" +}, +"intentV2": { +"description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on.", +"id": "GoogleCloudDialogflowV2IntentTrainingPhrase", +"properties": { +"name": { +"description": "Output only. The unique identifier of this training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `entity_type`, `alias`, and `user_defined` fields are all set.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentTrainingPhrasePart" +}, +"type": "array" +}, +"timesAddedCount": { +"description": "Optional. Indicates how many times this example was added to the intent. Each time a developer adds an existing sample by editing an intent or training, this counter is increased.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "Required. The type of the training phrase.", +"enum": [ +"TYPE_UNSPECIFIED", +"EXAMPLE", +"TEMPLATE" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"Not specified. This value should never be used.", +"Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", +"Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases that you've created in template mode, those will continue to work." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowV2IntentTrainingPhrasePart", +"properties": { +"alias": { +"description": "Optional. The parameter name for the value extracted from the annotated part of the example. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"entityType": { +"description": "Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +}, +"userDefined": { +"description": "Optional. Indicates whether the text was manually annotated. This field is set to true when the Dialogflow Console is used to manually annotate the part. When creating an annotated part with the API, you must set this to true.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswer": { +"description": "Represents a Knowledge Assist answer.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of the answer record. Format: `projects//locations//answer Records/`.", +"type": "string" +}, +"suggestedQuery": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery", +"description": "The query suggested based on the context. Suggestion is made only if it is different from the previous suggestion." +}, +"suggestedQueryAnswer": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer", +"description": "The answer generated for the suggested query. Whether or not an answer is generated depends on how confident we are about the generated query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer": { +"description": "Represents an answer from Knowledge. Currently supports FAQ and Generative answers.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer", +"properties": { +"answerText": { +"description": "The piece of text from the `source` that answers this suggested query.", +"type": "string" +}, +"faqSource": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"description": "Populated if the prediction came from FAQ." +}, +"generativeSource": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"description": "Populated if the prediction was Generative." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource": { +"description": "Details about source of FAQ answer.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"properties": { +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource": { +"description": "Details about source of Generative answer.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"properties": { +"snippets": { +"description": "All snippets used for this Generative Prediction, with their source URI and data.", +"items": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet": { +"description": "Snippet Source for a Generative Prediction.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Metadata of the document.", +"type": "object" +}, +"text": { +"description": "Text taken from that URI.", +"type": "string" +}, +"title": { +"description": "Title of the document.", +"type": "string" +}, +"uri": { +"description": "URI the data is sourced from.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery": { +"description": "Represents a suggested query.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery", +"properties": { +"queryText": { +"description": "Suggested query text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeBase": { +"description": "A knowledge base represents a collection of knowledge documents that you provide to Dialogflow. Your knowledge documents contain information that may be useful during conversations with end-users. Some Dialogflow features use knowledge bases when looking for a response to an end-user input. For more information, see the [knowledge base guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). Note: The `projects.agent.knowledgeBases` resource is deprecated; only use `projects.knowledgeBases`.", +"id": "GoogleCloudDialogflowV2KnowledgeBase", +"properties": { +"displayName": { +"description": "Required. The display name of the knowledge base. The name must be 1024 bytes or less; otherwise, the creation request fails.", +"type": "string" +}, +"languageCode": { +"description": "Language which represents the KnowledgeBase. When the KnowledgeBase is created/updated, expect this to be present for non en-us languages. When unspecified, the default language code en-us applies.", +"type": "string" +}, +"name": { +"description": "The knowledge base resource name. The name must be empty when creating a knowledge base. Format: `projects//locations//knowledgeBases/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeOperationMetadata": { +"description": "Metadata in google::longrunning::Operation for Knowledge operations.", +"id": "GoogleCloudDialogflowV2KnowledgeOperationMetadata", +"properties": { +"exportOperationMetadata": { +"$ref": "GoogleCloudDialogflowV2ExportOperationMetadata", +"description": "Metadata for the Export Data Operation such as the destination of export." +}, +"knowledgeBase": { +"description": "The name of the knowledge base interacted with during the operation.", +"type": "string" +}, +"state": { +"description": "Output only. The current state of this operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"State unspecified.", +"The operation has been created.", +"The operation is currently running.", +"The operation is done, either cancelled or completed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListAnswerRecordsResponse": { +"description": "Response message for AnswerRecords.ListAnswerRecords.", +"id": "GoogleCloudDialogflowV2ListAnswerRecordsResponse", +"properties": { +"answerRecords": { +"description": "The list of answer records.", +"items": { +"$ref": "GoogleCloudDialogflowV2AnswerRecord" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Or empty if there are no more results. Pass this value in the ListAnswerRecordsRequest.page_token field in the subsequent call to `ListAnswerRecords` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListContextsResponse": { +"description": "The response message for Contexts.ListContexts.", +"id": "GoogleCloudDialogflowV2ListContextsResponse", +"properties": { +"contexts": { +"description": "The list of contexts. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListConversationDatasetsResponse": { +"description": "The response message for ConversationDatasets.ListConversationDatasets.", +"id": "GoogleCloudDialogflowV2ListConversationDatasetsResponse", +"properties": { +"conversationDatasets": { +"description": "The list of datasets to return.", +"items": { +"$ref": "GoogleCloudDialogflowV2ConversationDataset" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to use to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListConversationModelEvaluationsResponse": { +"description": "The response message for ConversationModels.ListConversationModelEvaluations", +"id": "GoogleCloudDialogflowV2ListConversationModelEvaluationsResponse", +"properties": { +"conversationModelEvaluations": { +"description": "The list of evaluations to return.", +"items": { +"$ref": "GoogleCloudDialogflowV2ConversationModelEvaluation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListConversationModelsResponse": { +"description": "The response message for ConversationModels.ListConversationModels", +"id": "GoogleCloudDialogflowV2ListConversationModelsResponse", +"properties": { +"conversationModels": { +"description": "The list of models to return.", +"items": { +"$ref": "GoogleCloudDialogflowV2ConversationModel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListConversationProfilesResponse": { +"description": "The response message for ConversationProfiles.ListConversationProfiles.", +"id": "GoogleCloudDialogflowV2ListConversationProfilesResponse", +"properties": { +"conversationProfiles": { +"description": "The list of project conversation profiles. There is a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2ConversationProfile" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListConversationsResponse": { +"description": "The response message for Conversations.ListConversations.", +"id": "GoogleCloudDialogflowV2ListConversationsResponse", +"properties": { +"conversations": { +"description": "The list of conversations. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Conversation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListDocumentsResponse": { +"description": "Response message for Documents.ListDocuments.", +"id": "GoogleCloudDialogflowV2ListDocumentsResponse", +"properties": { +"documents": { +"description": "The list of documents.", +"items": { +"$ref": "GoogleCloudDialogflowV2Document" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListEntityTypesResponse": { +"description": "The response message for EntityTypes.ListEntityTypes.", +"id": "GoogleCloudDialogflowV2ListEntityTypesResponse", +"properties": { +"entityTypes": { +"description": "The list of agent entity types. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListEnvironmentsResponse": { +"description": "The response message for Environments.ListEnvironments.", +"id": "GoogleCloudDialogflowV2ListEnvironmentsResponse", +"properties": { +"environments": { +"description": "The list of agent environments. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Environment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListGeneratorsResponse": { +"description": "Response of ListGenerators.", +"id": "GoogleCloudDialogflowV2ListGeneratorsResponse", +"properties": { +"generators": { +"description": "List of generators retrieved.", +"items": { +"$ref": "GoogleCloudDialogflowV2Generator" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListIntentsResponse": { +"description": "The response message for Intents.ListIntents.", +"id": "GoogleCloudDialogflowV2ListIntentsResponse", +"properties": { +"intents": { +"description": "The list of agent intents. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListKnowledgeBasesResponse": { +"description": "Response message for KnowledgeBases.ListKnowledgeBases.", +"id": "GoogleCloudDialogflowV2ListKnowledgeBasesResponse", +"properties": { +"knowledgeBases": { +"description": "The list of knowledge bases.", +"items": { +"$ref": "GoogleCloudDialogflowV2KnowledgeBase" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListMessagesResponse": { +"description": "The response message for Conversations.ListMessages.", +"id": "GoogleCloudDialogflowV2ListMessagesResponse", +"properties": { +"messages": { +"description": "The list of messages. There will be a maximum number of items returned based on the page_size field in the request. `messages` is sorted by `create_time` in descending order.", +"items": { +"$ref": "GoogleCloudDialogflowV2Message" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListParticipantsResponse": { +"description": "The response message for Participants.ListParticipants.", +"id": "GoogleCloudDialogflowV2ListParticipantsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results or empty if there are no more results in the list.", +"type": "string" +}, +"participants": { +"description": "The list of participants. There is a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Participant" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListSessionEntityTypesResponse": { +"description": "The response message for SessionEntityTypes.ListSessionEntityTypes.", +"id": "GoogleCloudDialogflowV2ListSessionEntityTypesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"sessionEntityTypes": { +"description": "The list of session entity types. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ListVersionsResponse": { +"description": "The response message for Versions.ListVersions.", +"id": "GoogleCloudDialogflowV2ListVersionsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"versions": { +"description": "The list of agent versions. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2LoggingConfig": { +"description": "Defines logging behavior for conversation lifecycle events.", +"id": "GoogleCloudDialogflowV2LoggingConfig", +"properties": { +"enableStackdriverLogging": { +"description": "Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Message": { +"description": "Represents a message posted into a conversation.", +"id": "GoogleCloudDialogflowV2Message", +"properties": { +"content": { +"description": "Required. The message content.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the message was created in Contact Center AI.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Optional. The message language. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"messageAnnotation": { +"$ref": "GoogleCloudDialogflowV2MessageAnnotation", +"description": "Output only. The annotation for the message.", +"readOnly": true +}, +"name": { +"description": "Optional. The unique identifier of the message. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"participant": { +"description": "Output only. The participant that sends this message.", +"readOnly": true, +"type": "string" +}, +"participantRole": { +"description": "Output only. The role of the participant.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"readOnly": true, +"type": "string" +}, +"sendTime": { +"description": "Optional. The time when the message was sent.", +"format": "google-datetime", +"type": "string" +}, +"sentimentAnalysis": { +"$ref": "GoogleCloudDialogflowV2SentimentAnalysisResult", +"description": "Output only. The sentiment analysis result for the message.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2MessageAnnotation": { +"description": "Represents the result of annotation for the message.", +"id": "GoogleCloudDialogflowV2MessageAnnotation", +"properties": { +"containEntities": { +"description": "Indicates whether the text message contains entities.", +"type": "boolean" +}, +"parts": { +"description": "The collection of annotated message parts ordered by their position in the message. You can recover the annotated message by concatenating [AnnotatedMessagePart.text].", +"items": { +"$ref": "GoogleCloudDialogflowV2AnnotatedMessagePart" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2MessageEntry": { +"description": "Represents a message entry of a conversation.", +"id": "GoogleCloudDialogflowV2MessageEntry", +"properties": { +"createTime": { +"description": "Optional. Create time of the message entry.", +"format": "google-datetime", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language of the text. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.", +"type": "string" +}, +"role": { +"description": "Optional. Participant role of the message.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"text": { +"description": "Optional. Transcript content of the message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2NotificationConfig": { +"description": "Defines notification behavior.", +"id": "GoogleCloudDialogflowV2NotificationConfig", +"properties": { +"messageFormat": { +"description": "Format of message.", +"enum": [ +"MESSAGE_FORMAT_UNSPECIFIED", +"PROTO", +"JSON" +], +"enumDescriptions": [ +"If it is unspecified, PROTO will be used.", +"Pub/Sub message will be serialized proto.", +"Pub/Sub message will be json." +], +"type": "string" +}, +"topic": { +"description": "Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. For telephony integration to receive notification, make sure either this topic is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. For chat integration to receive notification, make sure API caller has been granted the `Dialogflow Service Agent` role for the topic. Format: `projects//locations//topics/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2OriginalDetectIntentRequest": { +"description": "Represents the contents of the original request that was passed to the `[Streaming]DetectIntent` call.", +"id": "GoogleCloudDialogflowV2OriginalDetectIntentRequest", +"properties": { +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field is set to the value of the `QueryParameters.payload` field passed in the request. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: { \"telephony\": { \"caller_id\": \"+18558363987\" } } Note: The caller ID field (`caller_id`) will be redacted for Trial Edition agents and populated with the caller ID in [E.164 format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents.", +"type": "object" +}, +"source": { +"description": "The source of this request, e.g., `google`, `facebook`, `slack`. It is set by Dialogflow-owned servers.", +"type": "string" +}, +"version": { +"description": "Optional. The version of the protocol used for this request. This field is AoG-specific.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2OutputAudio": { +"description": "Represents the natural language speech audio to be played to the end user.", +"id": "GoogleCloudDialogflowV2OutputAudio", +"properties": { +"audio": { +"description": "The natural language speech audio.", +"format": "byte", +"type": "string" +}, +"config": { +"$ref": "GoogleCloudDialogflowV2OutputAudioConfig", +"description": "Instructs the speech synthesizer how to generate the speech audio." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2OutputAudioConfig": { +"description": "Instructs the speech synthesizer on how to generate the output audio content. If this audio config is supplied in a request, it overrides all existing text-to-speech settings applied to the agent.", +"id": "GoogleCloudDialogflowV2OutputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the synthesized audio content.", +"enum": [ +"OUTPUT_AUDIO_ENCODING_UNSPECIFIED", +"OUTPUT_AUDIO_ENCODING_LINEAR_16", +"OUTPUT_AUDIO_ENCODING_MP3", +"OUTPUT_AUDIO_ENCODING_MP3_64_KBPS", +"OUTPUT_AUDIO_ENCODING_OGG_OPUS", +"OUTPUT_AUDIO_ENCODING_MULAW", +"OUTPUT_AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Audio content returned as LINEAR16 also contains a WAV header.", +"MP3 audio at 32kbps.", +"MP3 audio at 64kbps.", +"Opus encoded audio wrapped in an ogg container. The result will be a file which can be played natively on Android, and in browsers (at least Chrome and Firefox). The quality of the encoding is considerably higher than MP3 while using approximately the same bitrate.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"sampleRateHertz": { +"description": "The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. If this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality).", +"format": "int32", +"type": "integer" +}, +"synthesizeSpeechConfig": { +"$ref": "GoogleCloudDialogflowV2SynthesizeSpeechConfig", +"description": "Configuration of how speech should be synthesized." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Participant": { +"description": "Represents a conversation participant (human agent, virtual agent, end-user).", +"id": "GoogleCloudDialogflowV2Participant", +"properties": { +"documentsMetadataFilters": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Key-value filters on the metadata of documents returned by article suggestion. If specified, article suggestion only returns suggested documents that match all filters in their Document.metadata. Multiple values for a metadata key should be concatenated by comma. For example, filters to match all documents that have 'US' or 'CA' in their market metadata values and 'agent' in their user metadata values will be ``` documents_metadata_filters { key: \"market\" value: \"US,CA\" } documents_metadata_filters { key: \"user\" value: \"agent\" } ```", +"type": "object" +}, +"name": { +"description": "Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.", +"type": "string" +}, +"obfuscatedExternalUserId": { +"description": "Optional. Obfuscated user id that should be associated with the created participant. You can specify a user id as follows: 1. If you set this field in CreateParticipantRequest or UpdateParticipantRequest, Dialogflow adds the obfuscated user id with the participant. 2. If you set this field in AnalyzeContent or StreamingAnalyzeContent, Dialogflow will update Participant.obfuscated_external_user_id. Dialogflow returns an error if you try to add a user id for a non-END_USER participant. Dialogflow uses this user id for billing and measurement purposes. For example, Dialogflow determines whether a user in one conversation returned in a later conversation. Note: * Please never pass raw user ids to Dialogflow. Always obfuscate your user id first. * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a hash function like SHA-512. * The length of the user id must be <= 256 characters.", +"type": "string" +}, +"role": { +"description": "Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"sipRecordingMediaLabel": { +"description": "Optional. Label applied to streams representing this participant in SIPREC XML metadata and SDP. This is used to assign transcriptions from that media stream to this participant. This field can be updated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2QueryInput": { +"description": "Represents the query input. It can contain either: 1. An audio config which instructs the speech recognizer how to process the speech audio. 2. A conversational query in the form of text. 3. An event that specifies which intent to trigger.", +"id": "GoogleCloudDialogflowV2QueryInput", +"properties": { +"audioConfig": { +"$ref": "GoogleCloudDialogflowV2InputAudioConfig", +"description": "Instructs the speech recognizer how to process the speech audio." +}, +"event": { +"$ref": "GoogleCloudDialogflowV2EventInput", +"description": "The event to be processed." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2TextInput", +"description": "The natural language text to be processed. Text length must not exceed 256 character for virtual agent interactions." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2QueryParameters": { +"description": "Represents the parameters of the conversational query.", +"id": "GoogleCloudDialogflowV2QueryParameters", +"properties": { +"contexts": { +"description": "The collection of contexts to be activated before this query is executed.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"geoLocation": { +"$ref": "GoogleTypeLatLng", +"description": "The geo location of this conversational query." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "This field can be used to pass custom data to your webhook. Arbitrary JSON objects are supported. If supplied, the value is used to populate the `WebhookRequest.original_detect_intent_request.payload` field sent to your webhook.", +"type": "object" +}, +"platform": { +"description": "The platform of the virtual agent response messages. If not empty, only emits messages from this platform in the response. Valid values are the enum names of platform.", +"type": "string" +}, +"resetContexts": { +"description": "Specifies whether to delete all contexts in the current session before the new ones are activated.", +"type": "boolean" +}, +"sentimentAnalysisRequestConfig": { +"$ref": "GoogleCloudDialogflowV2SentimentAnalysisRequestConfig", +"description": "Configures the type of sentiment analysis to perform. If not provided, sentiment analysis is not performed." +}, +"sessionEntityTypes": { +"description": "Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session of this query.", +"items": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"type": "array" +}, +"timeZone": { +"description": "The time zone of this conversational query from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. If not provided, the time zone specified in agent settings is used.", +"type": "string" +}, +"webhookHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "This field can be used to pass HTTP headers for a webhook call. These headers will be sent to webhook along with the headers that have been configured through the Dialogflow web console. The headers defined within this field will overwrite the headers configured through the Dialogflow console if there is a conflict. Header names are case-insensitive. Google's specified headers are not allowed. Including: \"Host\", \"Content-Length\", \"Connection\", \"From\", \"User-Agent\", \"Accept-Encoding\", \"If-Modified-Since\", \"If-None-Match\", \"X-Forwarded-For\", etc.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2QueryResult": { +"description": "Represents the result of conversational query or event processing.", +"id": "GoogleCloudDialogflowV2QueryResult", +"properties": { +"action": { +"description": "The action name from the matched intent.", +"type": "string" +}, +"allRequiredParamsPresent": { +"description": "This field is set to: - `false` if the matched intent has required parameters and not all of the required parameter values have been collected. - `true` if all required parameter values have been collected, or if the matched intent doesn't contain any required parameters.", +"type": "boolean" +}, +"cancelsSlotFilling": { +"description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", +"type": "boolean" +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors", +"type": "object" +}, +"fulfillmentMessages": { +"description": "The collection of rich messages to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "The text to be pronounced to the user or shown on the screen. Note: This is a legacy field, `fulfillment_messages` should be preferred.", +"type": "string" +}, +"intent": { +"$ref": "GoogleCloudDialogflowV2Intent", +"description": "The intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name`, `display_name`, `end_interaction` and `is_fallback`." +}, +"intentDetectionConfidence": { +"description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. If there are `multiple knowledge_answers` messages, this value is set to the greatest `knowledgeAnswers.match_confidence` value in the list.", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.", +"type": "string" +}, +"outputContexts": { +"description": "The collection of output contexts. If applicable, `output_contexts.parameters` contains entries with name `.original` containing the original parameter values before the query.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"queryText": { +"description": "The original conversational query text: - If natural language text was provided as input, `query_text` contains a copy of the input. - If natural language speech audio was provided as input, `query_text` contains the speech recognition result. If speech recognizer produced multiple alternatives, a particular one is picked. - If automatic spell correction is enabled, `query_text` will contain the corrected user input.", +"type": "string" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowV2SentimentAnalysisResult", +"description": "The sentiment analysis result, which depends on the `sentiment_analysis_request_config` specified in the request." +}, +"speechRecognitionConfidence": { +"description": "The Speech recognition confidence between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be accurate or set. In particular this field isn't set for StreamingDetectIntent since the streaming endpoint has separate confidence estimates per portion of the audio in StreamingRecognitionResult.", +"format": "float", +"type": "number" +}, +"webhookPayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `payload` field returned in the webhook response.", +"type": "object" +}, +"webhookSource": { +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `source` field returned in the webhook response.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ReloadDocumentRequest": { +"description": "Request message for Documents.ReloadDocument.", +"id": "GoogleCloudDialogflowV2ReloadDocumentRequest", +"properties": { +"contentUri": { +"description": "Optional. The path of gcs source file for reloading document content. For now, only gcs uri is supported. For documents stored in Google Cloud Storage, these URIs must have the form `gs:///`.", +"type": "string" +}, +"importGcsCustomMetadata": { +"description": "Optional. Whether to import custom metadata from Google Cloud Storage. Only valid when the document source is Google Cloud Storage URI.", +"type": "boolean" +}, +"smartMessagingPartialUpdate": { +"description": "Optional. When enabled, the reload request is to apply partial update to the smart messaging allowlist.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2RestoreAgentRequest": { +"description": "The request message for Agents.RestoreAgent.", +"id": "GoogleCloudDialogflowV2RestoreAgentRequest", +"properties": { +"agentContent": { +"description": "Zip compressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a Google Cloud Storage file containing the agent to restore. Note: The URI must start with \"gs://\". Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchAgentsResponse": { +"description": "The response message for Agents.SearchAgents.", +"id": "GoogleCloudDialogflowV2SearchAgentsResponse", +"properties": { +"agents": { +"description": "The list of agents. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowV2Agent" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeAnswer": { +"description": "Represents a SearchKnowledge answer.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeAnswer", +"properties": { +"answer": { +"description": "The piece of text from the knowledge base documents that answers the search query", +"type": "string" +}, +"answerRecord": { +"description": "The name of the answer record. Format: `projects//locations//answer Records/`", +"type": "string" +}, +"answerSources": { +"description": "All sources used to generate the answer.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource" +}, +"type": "array" +}, +"answerType": { +"description": "The type of the answer.", +"enum": [ +"ANSWER_TYPE_UNSPECIFIED", +"FAQ", +"GENERATIVE", +"INTENT" +], +"enumDescriptions": [ +"The answer has a unspecified type.", +"The answer is from FAQ documents.", +"The answer is from generative model.", +"The answer is from intent matching." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource": { +"description": "The sources of the answers.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Metadata associated with the article.", +"type": "object" +}, +"snippet": { +"description": "The relevant snippet of the article.", +"type": "string" +}, +"title": { +"description": "The title of the article.", +"type": "string" +}, +"uri": { +"description": "The URI of the article.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequest": { +"description": "The request message for Conversations.SearchKnowledge.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequest", +"properties": { +"conversation": { +"description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", +"type": "string" +}, +"conversationProfile": { +"description": "Required. The conversation profile used to configure the search. Format: `projects//locations//conversationProfiles/`.", +"type": "string" +}, +"endUserMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Information about the end-user to improve the relevance and accuracy of generative answers. This will be interpreted and used by a language model, so, for good results, the data should be self-descriptive, and in a simple structure. Example: ```json { \"subscription plan\": \"Business Premium Plus\", \"devices owned\": [ {\"model\": \"Google Pixel 7\"}, {\"model\": \"Google Pixel Tablet\"} ] } ```", +"type": "object" +}, +"exactSearch": { +"description": "Optional. Whether to search the query exactly without query rewrite.", +"type": "boolean" +}, +"latestMessage": { +"description": "Optional. The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", +"type": "string" +}, +"query": { +"$ref": "GoogleCloudDialogflowV2TextInput", +"description": "Required. The natural language text query for knowledge search." +}, +"querySource": { +"description": "Optional. The source of the query in the request.", +"enum": [ +"QUERY_SOURCE_UNSPECIFIED", +"AGENT_QUERY", +"SUGGESTED_QUERY" +], +"enumDescriptions": [ +"Unknown query source.", +"The query is from agents.", +"The query is a suggested query from Participants.SuggestKnowledgeAssist." +], +"type": "string" +}, +"searchConfig": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfig", +"description": "Optional. Configuration specific to search queries with data stores." +}, +"sessionId": { +"description": "Required. The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfig": { +"description": "Configuration specific to search queries with data stores.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfig", +"properties": { +"boostSpecs": { +"description": "Optional. Boost specifications for data stores.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecs" +}, +"type": "array" +}, +"filterSpecs": { +"description": "Optional. Filter specification for data store queries.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigFilterSpecs" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecs": { +"description": "Boost specifications for data stores.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecs", +"properties": { +"dataStores": { +"description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"items": { +"type": "string" +}, +"type": "array" +}, +"spec": { +"description": "Optional. A list of boosting specifications.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpec": { +"description": "Boost specification to boost certain documents. A copy of google.cloud.discoveryengine.v1main.BoostSpec, field documentation is available at https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1alpha/BoostSpec", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpec", +"properties": { +"conditionBoostSpecs": { +"description": "Optional. Condition boost specifications. If a document matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpec": { +"description": "Boost applies to documents which match a condition.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpec", +"properties": { +"boost": { +"description": "Optional. Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the document a big promotion. However, it does not necessarily mean that the boosted document will be the top result at all times, nor that other documents will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant documents. Setting to -1.0 gives the document a big demotion. However, results that are deeply relevant might still be shown. The document will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", +"format": "float", +"type": "number" +}, +"boostControlSpec": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpec", +"description": "Optional. Complex specification for custom ranking based on customer defined attribute value." +}, +"condition": { +"description": "Optional. An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. Examples: * To boost documents with document ID \"doc_1\" or \"doc_2\", and color \"Red\" or \"Blue\": * (id: ANY(\"doc_1\", \"doc_2\")) AND (color: ANY(\"Red\",\"Blue\"))", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpec": { +"description": "Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpec", +"properties": { +"attributeType": { +"description": "Optional. The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (time.now() - datetime_field_value).", +"enum": [ +"ATTRIBUTE_TYPE_UNSPECIFIED", +"NUMERICAL", +"FRESHNESS" +], +"enumDescriptions": [ +"Unspecified AttributeType.", +"The value of the numerical field will be used to dynamically update the boost amount. In this case, the attribute_value (the x value) of the control point will be the actual value of the numerical field for which the boost_amount is specified.", +"For the freshness use case the attribute value will be the duration between the current time and the date in the datetime field specified. The value must be formatted as an XSD `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value). The pattern for this is: `nDnM]`. E.g. `5D`, `3DT12H30M`, `T24H`." +], +"type": "string" +}, +"controlPoints": { +"description": "Optional. The control points used to define the curve. The monotonic function (defined through the interpolation_type above) passes through the control points listed here.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpecControlPoint" +}, +"type": "array" +}, +"fieldName": { +"description": "Optional. The name of the field whose value will be used to determine the boost amount.", +"type": "string" +}, +"interpolationType": { +"description": "Optional. The interpolation type to be applied to connect the control points listed below.", +"enum": [ +"INTERPOLATION_TYPE_UNSPECIFIED", +"LINEAR" +], +"enumDescriptions": [ +"Interpolation type is unspecified. In this case, it defaults to Linear.", +"Piecewise linear interpolation will be applied." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpecControlPoint": { +"description": "The control points used to define the curve. The curve defined through these control points can only be monotonically increasing or decreasing(constant values are acceptable).", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpecControlPoint", +"properties": { +"attributeValue": { +"description": "Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value). The pattern for this is: `nDnM]`.", +"type": "string" +}, +"boostAmount": { +"description": "Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigFilterSpecs": { +"description": "Filter specification for data store queries.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigFilterSpecs", +"properties": { +"dataStores": { +"description": "Optional. The data store where the filter configuration is applied. Full resource name of data store, such as projects/{project}/locations/{location}/collections/{collectionId}/ dataStores/{dataStoreId}.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Optional. The filter expression to be applied. Expression syntax is documented at https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SearchKnowledgeResponse": { +"description": "The response message for Conversations.SearchKnowledge.", +"id": "GoogleCloudDialogflowV2SearchKnowledgeResponse", +"properties": { +"answers": { +"description": "Most relevant snippets extracted from articles in the given knowledge base, ordered by confidence.", +"items": { +"$ref": "GoogleCloudDialogflowV2SearchKnowledgeAnswer" +}, +"type": "array" +}, +"rewrittenQuery": { +"description": "The rewritten query used to search knowledge.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Sentiment": { +"description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result.", +"id": "GoogleCloudDialogflowV2Sentiment", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SentimentAnalysisRequestConfig": { +"description": "Configures the types of sentiment analysis to perform.", +"id": "GoogleCloudDialogflowV2SentimentAnalysisRequestConfig", +"properties": { +"analyzeQueryTextSentiment": { +"description": "Instructs the service to perform sentiment analysis on `query_text`. If not provided, sentiment analysis is not performed on `query_text`.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SentimentAnalysisResult": { +"description": "The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral. For DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config", +"id": "GoogleCloudDialogflowV2SentimentAnalysisResult", +"properties": { +"queryTextSentiment": { +"$ref": "GoogleCloudDialogflowV2Sentiment", +"description": "The sentiment analysis result for `query_text`." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SessionEntityType": { +"description": "A session represents a conversation between a Dialogflow agent and an end-user. You can create special entities, called session entities, during a session. Session entities can extend or replace custom entity types and only exist during the session that they were created for. All session data, including session entities, is stored by Dialogflow for 20 minutes. For more information, see the [session entity guide](https://cloud.google.com/dialogflow/docs/entities-session).", +"id": "GoogleCloudDialogflowV2SessionEntityType", +"properties": { +"entities": { +"description": "Required. The collection of entities associated with this session entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityTypeEntity" +}, +"type": "array" +}, +"entityOverrideMode": { +"description": "Required. Indicates whether the additional data should override or supplement the custom entity type definition.", +"enum": [ +"ENTITY_OVERRIDE_MODE_UNSPECIFIED", +"ENTITY_OVERRIDE_MODE_OVERRIDE", +"ENTITY_OVERRIDE_MODE_SUPPLEMENT" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"The collection of session entities overrides the collection of entities in the corresponding custom entity type.", +"The collection of session entities extends the collection of entities in the corresponding custom entity type. Note: Even in this override mode calls to `ListSessionEntityTypes`, `GetSessionEntityType`, `CreateSessionEntityType` and `UpdateSessionEntityType` only return the additional entities added in this session entity type. If you want to get the supplemented list, please call EntityTypes.GetEntityType on the custom entity type and merge." +], +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of this session entity type. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SetSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfiles.SetSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2SetSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to add or update the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to add or update.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model for chat.", +"Run smart reply model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest": { +"description": "The request message for ConversationProfiles.SetSuggestionFeatureConfig.", +"id": "GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest", +"properties": { +"participantRole": { +"description": "Required. The participant role to add or update the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureConfig": { +"$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig", +"description": "Required. The suggestion feature config to add or update." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SmartReplyAnswer": { +"description": "Represents a smart reply answer.", +"id": "GoogleCloudDialogflowV2SmartReplyAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "Smart reply confidence. The system's confidence score that this reply is a good match for this conversation, as a value from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"reply": { +"description": "The content of the reply.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SmartReplyMetrics": { +"description": "The evaluation metrics for smart reply model.", +"id": "GoogleCloudDialogflowV2SmartReplyMetrics", +"properties": { +"allowlistCoverage": { +"description": "Percentage of target participant messages in the evaluation dataset for which similar messages have appeared at least once in the allowlist. Should be [0, 1].", +"format": "float", +"type": "number" +}, +"conversationCount": { +"description": "Total number of conversations used to generate this metric.", +"format": "int64", +"type": "string" +}, +"topNMetrics": { +"description": "Metrics of top n smart replies, sorted by TopNMetric.n.", +"items": { +"$ref": "GoogleCloudDialogflowV2SmartReplyMetricsTopNMetrics" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SmartReplyMetricsTopNMetrics": { +"description": "Evaluation metrics when retrieving `n` smart replies with the model.", +"id": "GoogleCloudDialogflowV2SmartReplyMetricsTopNMetrics", +"properties": { +"n": { +"description": "Number of retrieved smart replies. For example, when `n` is 3, this evaluation contains metrics for when Dialogflow retrieves 3 smart replies with the model.", +"format": "int32", +"type": "integer" +}, +"recall": { +"description": "Defined as `number of queries whose top n smart replies have at least one similar (token match similarity above the defined threshold) reply as the real reply` divided by `number of queries with at least one smart reply`. Value ranges from 0.0 to 1.0 inclusive.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SmartReplyModelMetadata": { +"description": "Metadata for smart reply models.", +"id": "GoogleCloudDialogflowV2SmartReplyModelMetadata", +"properties": { +"trainingModelType": { +"description": "Optional. Type of the smart reply model. If not provided, model_type is used.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"SMART_REPLY_DUAL_ENCODER_MODEL", +"SMART_REPLY_BERT_MODEL" +], +"enumDescriptions": [ +"ModelType unspecified.", +"ModelType smart reply dual encoder model.", +"ModelType smart reply bert model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SpeechContext": { +"description": "Hints for the speech recognizer to help with recognition in a specific conversation state.", +"id": "GoogleCloudDialogflowV2SpeechContext", +"properties": { +"boost": { +"description": "Optional. Boost for this context compared to other contexts: * If the boost is positive, Dialogflow will increase the probability that the phrases in this context are recognized over similar sounding phrases. * If the boost is unspecified or non-positive, Dialogflow will not apply any boost. Dialogflow recommends that you use boosts in the range (0, 20] and that you find a value that fits your use case with binary search.", +"format": "float", +"type": "number" +}, +"phrases": { +"description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. This list can be used to: * improve accuracy for words and phrases you expect the user to say, e.g. typical commands for your Dialogflow agent * add additional words to the speech recognizer vocabulary * ... See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/quotas) for usage limits.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SpeechToTextConfig": { +"description": "Configures speech transcription for ConversationProfile.", +"id": "GoogleCloudDialogflowV2SpeechToTextConfig", +"properties": { +"audioEncoding": { +"description": "Audio encoding of the audio content to process.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"AUDIO_ENCODING_LINEAR_16", +"AUDIO_ENCODING_FLAC", +"AUDIO_ENCODING_MULAW", +"AUDIO_ENCODING_AMR", +"AUDIO_ENCODING_AMR_WB", +"AUDIO_ENCODING_OGG_OPUS", +"AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE", +"AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"[`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio Codec) is the recommended encoding because it is lossless (therefore recognition is not compromised) and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be 16000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Dialogflow API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"enableWordInfo": { +"description": "If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", +"type": "boolean" +}, +"languageCode": { +"description": "The language of the supplied audio. Dialogflow does not do translations. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"model": { +"description": "Which Speech model to select. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then Dialogflow auto-selects a model based on other parameters in the SpeechToTextConfig and Agent settings. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search Leave this field unspecified to use [Agent Speech settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) for model selection.", +"type": "string" +}, +"phraseSets": { +"description": "List of names of Cloud Speech phrase sets that are used for transcription.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.", +"format": "int32", +"type": "integer" +}, +"speechModelVariant": { +"description": "The speech model used in speech to text. `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and StreamingAnalyzeContentRequest request. If enhanced model variant is specified and an enhanced version of the specified model for the language does not exist, then it would emit an error.", +"enum": [ +"SPEECH_MODEL_VARIANT_UNSPECIFIED", +"USE_BEST_AVAILABLE", +"USE_STANDARD", +"USE_ENHANCED" +], +"enumDescriptions": [ +"No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", +"Use the best available variant of the Speech model that the caller is eligible for. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible for enhanced models.", +"Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", +"Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants. * If the API caller isn't eligible for enhanced models, Dialogflow returns an error. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible." +], +"type": "string" +}, +"useTimeoutBasedEndpointing": { +"description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SpeechWordInfo": { +"description": "Information for a word recognized by the speech recognizer.", +"id": "GoogleCloudDialogflowV2SpeechWordInfo", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for this word. A higher number indicates an estimated greater likelihood that the recognized word is correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be fully stable over time for the same audio input. Users should also not rely on it to always be provided.", +"format": "float", +"type": "number" +}, +"endOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the end of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"startOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the start of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word this info is for.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2StreamingRecognitionResult": { +"description": "Contains a speech recognition result corresponding to a portion of the audio that is currently being processed or an indication that this is the end of the single requested utterance. While end-user audio is being processed, Dialogflow sends a series of results. Each result may contain a `transcript` value. A transcript represents a portion of the utterance. While the recognizer is processing audio, transcript values may be interim values or finalized values. Once a transcript is finalized, the `is_final` value is set to true and processing continues for the next transcript. If `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` was true, and the recognizer has completed processing audio, the `message_type` value is set to `END_OF_SINGLE_UTTERANCE and the following (last) result contains the last finalized transcript. The complete end-user utterance is determined by concatenating the finalized transcript values received for the series of results. In the following example, single utterance is enabled. In the case where single utterance is not enabled, result 7 would not occur. ``` Num | transcript | message_type | is_final --- | ----------------------- | ----------------------- | -------- 1 | \"tube\" | TRANSCRIPT | false 2 | \"to be a\" | TRANSCRIPT | false 3 | \"to be\" | TRANSCRIPT | false 4 | \"to be or not to be\" | TRANSCRIPT | true 5 | \"that's\" | TRANSCRIPT | false 6 | \"that is | TRANSCRIPT | false 7 | unset | END_OF_SINGLE_UTTERANCE | unset 8 | \" that is the question\" | TRANSCRIPT | true ``` Concatenating the finalized transcripts with `is_final` set to true, the complete utterance becomes \"to be or not to be that is the question\".", +"id": "GoogleCloudDialogflowV2StreamingRecognitionResult", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for the current portion of audio. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is typically only provided if `is_final` is true and you should not rely on it being accurate or even set.", +"format": "float", +"type": "number" +}, +"isFinal": { +"description": "If `false`, the `StreamingRecognitionResult` represents an interim result that may change. If `true`, the recognizer will not return any further hypotheses about this piece of the audio. May only be populated for `message_type` = `TRANSCRIPT`.", +"type": "boolean" +}, +"languageCode": { +"description": "Detected language code for the transcript.", +"type": "string" +}, +"messageType": { +"description": "Type of the result message.", +"enum": [ +"MESSAGE_TYPE_UNSPECIFIED", +"TRANSCRIPT", +"END_OF_SINGLE_UTTERANCE" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"Message contains a (possibly partial) transcript.", +"This event indicates that the server has detected the end of the user's speech utterance and expects no additional inputs. Therefore, the server will not process additional audio (although it may subsequently return additional results). The client should stop sending additional audio data, half-close the gRPC connection, and wait for any additional results until the server closes the gRPC connection. This message is only sent if `single_utterance` was set to `true`, and is not used otherwise." +], +"type": "string" +}, +"speechEndOffset": { +"description": "Time offset of the end of this Speech recognition result relative to the beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`.", +"format": "google-duration", +"type": "string" +}, +"speechWordInfo": { +"description": "Word-specific information for the words recognized by Speech in transcript. Populated if and only if `message_type` = `TRANSCRIPT` and [InputAudioConfig.enable_word_info] is set.", +"items": { +"$ref": "GoogleCloudDialogflowV2SpeechWordInfo" +}, +"type": "array" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke. Populated if and only if `message_type` = `TRANSCRIPT`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestArticlesRequest": { +"description": "The request message for Participants.SuggestArticles.", +"id": "GoogleCloudDialogflowV2SuggestArticlesRequest", +"properties": { +"assistQueryParams": { +"$ref": "GoogleCloudDialogflowV2AssistQueryParameters", +"description": "Parameters for a human assist query." +}, +"contextSize": { +"description": "Optional. Max number of messages prior to and including latest_message to use as context when compiling the suggestion. By default 20 and at most 50.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "Optional. The name of the latest conversation message to compile suggestion for. If empty, it will be the latest message of the conversation. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestArticlesResponse": { +"description": "The response message for Participants.SuggestArticles.", +"id": "GoogleCloudDialogflowV2SuggestArticlesResponse", +"properties": { +"articleAnswers": { +"description": "Articles ordered by score in descending order.", +"items": { +"$ref": "GoogleCloudDialogflowV2ArticleAnswer" +}, +"type": "array" +}, +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestArticlesRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestConversationSummaryRequest": { +"description": "The request message for Conversations.SuggestConversationSummary.", +"id": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest", +"properties": { +"assistQueryParams": { +"$ref": "GoogleCloudDialogflowV2AssistQueryParameters", +"description": "Optional. Parameters for a human assist query. Only used for POC/demo purpose." +}, +"contextSize": { +"description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "Optional. The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestConversationSummaryResponse": { +"description": "The response message for Conversations.SuggestConversationSummary.", +"id": "GoogleCloudDialogflowV2SuggestConversationSummaryResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message used to compile the suggestion. It may be smaller than the SuggestConversationSummaryRequest.context_size field in the request if there weren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used as context for compiling suggestion. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"summary": { +"$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary", +"description": "Generated summary." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary": { +"description": "Generated summary for a conversation.", +"id": "GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary", +"properties": { +"answerRecord": { +"description": "The name of the answer record. Format: \"projects//answerRecords/\"", +"type": "string" +}, +"baselineModelVersion": { +"description": "The baseline model version used to generate this summary. It is empty if a baseline model was not used to generate this summary.", +"type": "string" +}, +"text": { +"description": "The summary content that is concatenated into one string.", +"type": "string" +}, +"textSections": { +"additionalProperties": { +"type": "string" +}, +"description": "The summary content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestFaqAnswersRequest": { +"description": "The request message for Participants.SuggestFaqAnswers.", +"id": "GoogleCloudDialogflowV2SuggestFaqAnswersRequest", +"properties": { +"assistQueryParams": { +"$ref": "GoogleCloudDialogflowV2AssistQueryParameters", +"description": "Parameters for a human assist query." +}, +"contextSize": { +"description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 20 and at most 50.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "Optional. The name of the latest conversation message to compile suggestion for. If empty, it will be the latest message of the conversation. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestFaqAnswersResponse": { +"description": "The request message for Participants.SuggestFaqAnswers.", +"id": "GoogleCloudDialogflowV2SuggestFaqAnswersResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestFaqAnswersRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"faqAnswers": { +"description": "Answers extracted from FAQ documents.", +"items": { +"$ref": "GoogleCloudDialogflowV2FaqAnswer" +}, +"type": "array" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest": { +"description": "The request message for Participants.SuggestKnowledgeAssist.", +"id": "GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest", +"properties": { +"contextSize": { +"description": "Optional. Max number of messages prior to and including latest_message to use as context when compiling the suggestion. The context size is by default 100 and at most 100.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "Optional. The name of the latest conversation message to compile suggestions for. If empty, it will be the latest message of the conversation. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"previousSuggestedQuery": { +"description": "Optional. The previously suggested query for the given conversation. This helps identify whether the next suggestion we generate is resonably different from the previous one. This is useful to avoid similar suggestions within the conversation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse": { +"description": "The response message for Participants.SuggestKnowledgeAssist.", +"id": "GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestKnowledgeAssistRequest.context_size field in the request if there are fewer messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"knowledgeAssistAnswer": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswer", +"description": "Output only. Knowledge Assist suggestion.", +"readOnly": true +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestSmartRepliesRequest": { +"description": "The request message for Participants.SuggestSmartReplies.", +"id": "GoogleCloudDialogflowV2SuggestSmartRepliesRequest", +"properties": { +"contextSize": { +"description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 20 and at most 50.", +"format": "int32", +"type": "integer" +}, +"currentTextInput": { +"$ref": "GoogleCloudDialogflowV2TextInput", +"description": "The current natural language text segment to compile suggestion for. This provides a way for user to get follow up smart reply suggestion after a smart reply selection, without sending a text message." +}, +"latestMessage": { +"description": "The name of the latest conversation message to compile suggestion for. If empty, it will be the latest message of the conversation. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestSmartRepliesResponse": { +"description": "The response message for Participants.SuggestSmartReplies.", +"id": "GoogleCloudDialogflowV2SuggestSmartRepliesResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestSmartRepliesRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"smartReplyAnswers": { +"description": "Output only. Multiple reply options provided by smart reply service. The order is based on the rank of the model prediction. The maximum number of the returned replies is set in SmartReplyConfig.", +"items": { +"$ref": "GoogleCloudDialogflowV2SmartReplyAnswer" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestionFeature": { +"description": "The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list.", +"id": "GoogleCloudDialogflowV2SuggestionFeature", +"properties": { +"type": { +"description": "Type of Human Agent Assistant API feature to request.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model for chat.", +"Run smart reply model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestionInput": { +"description": "Represents the selection of a suggestion.", +"id": "GoogleCloudDialogflowV2SuggestionInput", +"properties": { +"answerRecord": { +"description": "Required. The ID of a suggestion selected by the human agent. The suggestion(s) were generated in a previous call to request Dialogflow assist. The format is: `projects//locations//answerRecords/` where is an alphanumeric string.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestionResult": { +"description": "One response of different type of suggestion response which is used in the response of Participants.AnalyzeContent and Participants.AnalyzeContent, as well as HumanAgentAssistantEvent.", +"id": "GoogleCloudDialogflowV2SuggestionResult", +"properties": { +"error": { +"$ref": "GoogleRpcStatus", +"description": "Error status if the request failed." +}, +"suggestArticlesResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestArticlesResponse", +"description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." +}, +"suggestFaqAnswersResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestFaqAnswersResponse", +"description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." +}, +"suggestKnowledgeAssistResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse", +"description": "SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST." +}, +"suggestSmartRepliesResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestSmartRepliesResponse", +"description": "SuggestSmartRepliesResponse if request is for SMART_REPLY." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SummarizationContext": { +"description": "Summarization context that customer can configure.", +"id": "GoogleCloudDialogflowV2SummarizationContext", +"properties": { +"fewShotExamples": { +"description": "Optional. List of few shot examples.", +"items": { +"$ref": "GoogleCloudDialogflowV2FewShotExample" +}, +"type": "array" +}, +"outputLanguageCode": { +"description": "Optional. The target language of the generated summary. The language code for conversation will be used if this field is empty. Supported 2.0 and later versions.", +"type": "string" +}, +"summarizationSections": { +"description": "Optional. List of sections. Note it contains both predefined section sand customer defined sections.", +"items": { +"$ref": "GoogleCloudDialogflowV2SummarizationSection" +}, +"type": "array" +}, +"version": { +"description": "Optional. Version of the feature. If not set, default to latest version. Current candidates are [\"1.0\"].", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SummarizationSection": { +"description": "Represents the section of summarization.", +"id": "GoogleCloudDialogflowV2SummarizationSection", +"properties": { +"definition": { +"description": "Optional. Definition of the section, for example, \"what the customer needs help with or has question about.\"", +"type": "string" +}, +"key": { +"description": "Optional. Name of the section, for example, \"situation\".", +"type": "string" +}, +"type": { +"description": "Optional. Type of the summarization section.", +"enum": [ +"TYPE_UNSPECIFIED", +"SITUATION", +"ACTION", +"RESOLUTION", +"REASON_FOR_CANCELLATION", +"CUSTOMER_SATISFACTION", +"ENTITIES", +"CUSTOMER_DEFINED" +], +"enumDescriptions": [ +"Undefined section type, does not return anything.", +"What the customer needs help with or has question about. Section name: \"situation\".", +"What the agent does to help the customer. Section name: \"action\".", +"Result of the customer service. A single word describing the result of the conversation. Section name: \"resolution\".", +"Reason for cancellation if the customer requests for a cancellation. \"N/A\" otherwise. Section name: \"reason_for_cancellation\".", +"\"Unsatisfied\" or \"Satisfied\" depending on the customer's feelings at the end of the conversation. Section name: \"customer_satisfaction\".", +"Key entities extracted from the conversation, such as ticket number, order number, dollar amount, etc. Section names are prefixed by \"entities/\".", +"Customer defined sections." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SummarizationSectionList": { +"description": "List of summarization sections.", +"id": "GoogleCloudDialogflowV2SummarizationSectionList", +"properties": { +"summarizationSections": { +"description": "Optional. Summarization sections.", +"items": { +"$ref": "GoogleCloudDialogflowV2SummarizationSection" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SummarySuggestion": { +"description": "Suggested summary of the conversation.", +"id": "GoogleCloudDialogflowV2SummarySuggestion", +"properties": { +"summarySections": { +"description": "Required. All the parts of generated summary.", +"items": { +"$ref": "GoogleCloudDialogflowV2SummarySuggestionSummarySection" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SummarySuggestionSummarySection": { +"description": "A component of the generated summary.", +"id": "GoogleCloudDialogflowV2SummarySuggestionSummarySection", +"properties": { +"section": { +"description": "Required. Name of the section.", +"type": "string" +}, +"summary": { +"description": "Required. Summary text for the section.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SynthesizeSpeechConfig": { +"description": "Configuration of how speech should be synthesized.", +"id": "GoogleCloudDialogflowV2SynthesizeSpeechConfig", +"properties": { +"effectsProfileId": { +"description": "Optional. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pitch": { +"description": "Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.", +"format": "double", +"type": "number" +}, +"speakingRate": { +"description": "Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error.", +"format": "double", +"type": "number" +}, +"voice": { +"$ref": "GoogleCloudDialogflowV2VoiceSelectionParams", +"description": "Optional. The desired voice of the synthesized audio." +}, +"volumeGainDb": { +"description": "Optional. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2TextInput": { +"description": "Auxiliary proto messages. Represents the natural language text to be processed.", +"id": "GoogleCloudDialogflowV2TextInput", +"properties": { +"languageCode": { +"description": "Required. The language of this conversational query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"text": { +"description": "Required. The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters for virtual agent interactions.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2TextToSpeechSettings": { +"description": "Instructs the speech synthesizer on how to generate the output audio content.", +"id": "GoogleCloudDialogflowV2TextToSpeechSettings", +"properties": { +"enableTextToSpeech": { +"description": "Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.", +"type": "boolean" +}, +"outputAudioEncoding": { +"description": "Required. Audio encoding of the synthesized audio content.", +"enum": [ +"OUTPUT_AUDIO_ENCODING_UNSPECIFIED", +"OUTPUT_AUDIO_ENCODING_LINEAR_16", +"OUTPUT_AUDIO_ENCODING_MP3", +"OUTPUT_AUDIO_ENCODING_MP3_64_KBPS", +"OUTPUT_AUDIO_ENCODING_OGG_OPUS", +"OUTPUT_AUDIO_ENCODING_MULAW", +"OUTPUT_AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Audio content returned as LINEAR16 also contains a WAV header.", +"MP3 audio at 32kbps.", +"MP3 audio at 64kbps.", +"Opus encoded audio wrapped in an ogg container. The result will be a file which can be played natively on Android, and in browsers (at least Chrome and Firefox). The quality of the encoding is considerably higher than MP3 while using approximately the same bitrate.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"sampleRateHertz": { +"description": "Optional. The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. If this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality).", +"format": "int32", +"type": "integer" +}, +"synthesizeSpeechConfigs": { +"additionalProperties": { +"$ref": "GoogleCloudDialogflowV2SynthesizeSpeechConfig" +}, +"description": "Optional. Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/docs/reference/language) to SynthesizeSpeechConfig.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2TrainAgentRequest": { +"description": "The request message for Agents.TrainAgent.", +"id": "GoogleCloudDialogflowV2TrainAgentRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2UndeployConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.UndeployConversationModel operation.", +"id": "GoogleCloudDialogflowV2UndeployConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when the request to undeploy conversation model was submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2UndeployConversationModelRequest": { +"description": "The request message for ConversationModels.UndeployConversationModel", +"id": "GoogleCloudDialogflowV2UndeployConversationModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2ValidationError": { +"description": "Represents a single validation error.", +"id": "GoogleCloudDialogflowV2ValidationError", +"properties": { +"entries": { +"description": "The names of the entries that the error is associated with. Format: - `projects//agent`, if the error is associated with the entire agent. - `projects//agent/intents/`, if the error is associated with certain intents. - `projects//agent/intents//trainingPhrases/`, if the error is associated with certain intent training phrases. - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. - `projects//agent/entities/`, if the error is associated with certain entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"errorMessage": { +"description": "The detailed error message.", +"type": "string" +}, +"severity": { +"description": "The severity of the error.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"INFO", +"WARNING", +"ERROR", +"CRITICAL" +], +"enumDescriptions": [ +"Not specified. This value should never be used.", +"The agent doesn't follow Dialogflow best practices.", +"The agent may not behave as expected.", +"The agent may experience partial failures.", +"The agent may completely fail." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ValidationResult": { +"description": "Represents the output of agent validation.", +"id": "GoogleCloudDialogflowV2ValidationResult", +"properties": { +"validationErrors": { +"description": "Contains all validation errors.", +"items": { +"$ref": "GoogleCloudDialogflowV2ValidationError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Version": { +"description": "You can create multiple versions of your agent and publish them to separate environments. When you edit an agent, you are editing the draft agent. At any point, you can save the draft agent as an agent version, which is an immutable snapshot of your agent. When you save the draft agent, it is published to the default environment. When you create agent versions, you can publish them to custom environments. You can create a variety of custom environments for: - testing - development - production - etc. For more information, see the [versions and environments guide](https://cloud.google.com/dialogflow/docs/agents-versions).", +"id": "GoogleCloudDialogflowV2Version", +"properties": { +"createTime": { +"description": "Output only. The creation time of this version. This field is read-only, i.e., it cannot be set by create and update methods.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. The developer-provided description of this version.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this agent version. Supported formats: - `projects//agent/versions/` - `projects//locations//agent/versions/`", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. The status of this version. This field is read-only and cannot be set by create and update methods.", +"enum": [ +"VERSION_STATUS_UNSPECIFIED", +"IN_PROGRESS", +"READY", +"FAILED" +], +"enumDescriptions": [ +"Not specified. This value is not used.", +"Version is not ready to serve (e.g. training is in progress).", +"Version is ready to serve.", +"Version training failed." +], +"readOnly": true, +"type": "string" +}, +"versionNumber": { +"description": "Output only. The sequential number of this version. This field is read-only which means it cannot be set by create and update methods.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2VoiceSelectionParams": { +"description": "Description of which voice to use for speech synthesis.", +"id": "GoogleCloudDialogflowV2VoiceSelectionParams", +"properties": { +"name": { +"description": "Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and ssml_gender.", +"type": "string" +}, +"ssmlGender": { +"description": "Optional. The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement. If a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request.", +"enum": [ +"SSML_VOICE_GENDER_UNSPECIFIED", +"SSML_VOICE_GENDER_MALE", +"SSML_VOICE_GENDER_FEMALE", +"SSML_VOICE_GENDER_NEUTRAL" +], +"enumDescriptions": [ +"An unspecified gender, which means that the client doesn't care which gender the selected voice will have.", +"A male voice.", +"A female voice.", +"A gender-neutral voice." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2WebhookRequest": { +"description": "The request message for a webhook call.", +"id": "GoogleCloudDialogflowV2WebhookRequest", +"properties": { +"originalDetectIntentRequest": { +"$ref": "GoogleCloudDialogflowV2OriginalDetectIntentRequest", +"description": "Optional. The contents of the original request that was passed to `[Streaming]DetectIntent` call." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2QueryResult", +"description": "The result of the conversational query or event processing. Contains the same value as `[Streaming]DetectIntentResponse.query_result`." +}, +"responseId": { +"description": "The unique identifier of the response. Contains the same value as `[Streaming]DetectIntentResponse.response_id`.", +"type": "string" +}, +"session": { +"description": "The unique identifier of detectIntent request session. Can be used to identify end-user inside webhook implementation. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2WebhookResponse": { +"description": "The response message for a webhook call. This response is validated by the Dialogflow server. If validation fails, an error will be returned in the QueryResult.diagnostic_info field. Setting JSON fields to an empty value with the wrong type is a common error. To avoid this error: - Use `\"\"` for empty strings - Use `{}` or `null` for empty objects - Use `[]` or `null` for empty arrays For more information, see the [Protocol Buffers Language Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).", +"id": "GoogleCloudDialogflowV2WebhookResponse", +"properties": { +"followupEventInput": { +"$ref": "GoogleCloudDialogflowV2EventInput", +"description": "Optional. Invokes the supplied events. When this field is set, Dialogflow ignores the `fulfillment_text`, `fulfillment_messages`, and `payload` fields." +}, +"fulfillmentMessages": { +"description": "Optional. The rich response messages intended for the end-user. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_messages sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "Optional. The text response message intended for the end-user. It is recommended to use `fulfillment_messages.text.text[0]` instead. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_text sent to the integration or API caller.", +"type": "string" +}, +"outputContexts": { +"description": "Optional. The collection of output contexts that will overwrite currently active contexts for the session and reset their lifespans. When provided, Dialogflow uses this field to populate QueryResult.output_contexts sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field can be used to pass custom data from your webhook to the integration or API caller. Arbitrary JSON objects are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_payload sent to the integration or API caller. This field is also used by the [Google Assistant integration](https://cloud.google.com/dialogflow/docs/integrations/aog) for rich response messages. See the format definition at [Google Assistant Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"type": "object" +}, +"sessionEntityTypes": { +"description": "Optional. Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session. Setting this data from a webhook overwrites the session entity types that have been set using `detectIntent`, `streamingDetectIntent` or SessionEntityType management methods.", +"items": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"type": "array" +}, +"source": { +"description": "Optional. A custom field used to identify the webhook source. Arbitrary strings are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_source sent to the integration or API caller.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1AnnotatedMessagePart": { +"description": "Represents a part of a message possibly annotated with an entity. The part can be an entity or purely a part of the message between two entities or message start/end.", +"id": "GoogleCloudDialogflowV2beta1AnnotatedMessagePart", +"properties": { +"entityType": { +"description": "Optional. The [Dialogflow system entity type](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. If this is empty, Dialogflow could not annotate the phrase part with a system entity.", +"type": "string" +}, +"formattedValue": { +"description": "Optional. The [Dialogflow system entity formatted value ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. For example for a system entity of type `@sys.unit-currency`, this may contain: { \"amount\": 5, \"currency\": \"USD\" } ", +"type": "any" +}, +"text": { +"description": "Required. A part of a message possibly annotated with an entity.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ArticleAnswer": { +"description": "Represents article answer.", +"id": "GoogleCloudDialogflowV2beta1ArticleAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"snippets": { +"description": "Output only. Article snippets.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "The article title.", +"type": "string" +}, +"uri": { +"description": "The article URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1BatchUpdateEntityTypesResponse": { +"description": "The response message for EntityTypes.BatchUpdateEntityTypes.", +"id": "GoogleCloudDialogflowV2beta1BatchUpdateEntityTypesResponse", +"properties": { +"entityTypes": { +"description": "The collection of updated or created entity types.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1EntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1BatchUpdateIntentsResponse": { +"description": "The response message for Intents.BatchUpdateIntents.", +"id": "GoogleCloudDialogflowV2beta1BatchUpdateIntentsResponse", +"properties": { +"intents": { +"description": "The collection of updated or created intents.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Intent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ClearSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfile.ClearSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2beta1ClearSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to remove the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to remove.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"DIALOGFLOW_ASSIST", +"CONVERSATION_SUMMARIZATION", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model.", +"Run smart reply model for chat.", +"Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", +"Run conversation summarization model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Context": { +"description": "Dialogflow contexts are similar to natural language context. If a person says to you \"they are orange\", you need context in order to understand what \"they\" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).", +"id": "GoogleCloudDialogflowV2beta1Context", +"properties": { +"lifespanCount": { +"description": "Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ConversationEvent": { +"description": "Represents a notification sent to Pub/Sub subscribers for conversation lifecycle events.", +"id": "GoogleCloudDialogflowV2beta1ConversationEvent", +"properties": { +"conversation": { +"description": "Required. The unique identifier of the conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"errorStatus": { +"$ref": "GoogleRpcStatus", +"description": "Optional. More detailed information about an error. Only set for type UNRECOVERABLE_ERROR_IN_PHONE_CALL." +}, +"newMessagePayload": { +"$ref": "GoogleCloudDialogflowV2beta1Message", +"description": "Payload of NEW_MESSAGE event." +}, +"newRecognitionResultPayload": { +"$ref": "GoogleCloudDialogflowV2beta1StreamingRecognitionResult", +"description": "Payload of NEW_RECOGNITION_RESULT event." +}, +"type": { +"description": "Required. The type of the event that this notification refers to.", +"enum": [ +"TYPE_UNSPECIFIED", +"CONVERSATION_STARTED", +"CONVERSATION_FINISHED", +"HUMAN_INTERVENTION_NEEDED", +"NEW_MESSAGE", +"NEW_RECOGNITION_RESULT", +"UNRECOVERABLE_ERROR" +], +"enumDescriptions": [ +"Type not set.", +"A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", +"An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", +"An existing conversation has received notification from Dialogflow that human intervention is required.", +"An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", +"An existing conversation has received a new speech recognition result. This is mainly for delivering intermediate transcripts. The notification is configured in ConversationProfile.new_recognition_event_notification_config.", +"Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1DialogflowAssistAnswer": { +"description": "Represents a Dialogflow assist answer.", +"id": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"intentSuggestion": { +"$ref": "GoogleCloudDialogflowV2beta1IntentSuggestion", +"description": "An intent suggestion generated from conversation." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2beta1QueryResult", +"description": "Result from v2 agent." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EncryptionSpec": { +"description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", +"id": "GoogleCloudDialogflowV2beta1EncryptionSpec", +"properties": { +"kmsKey": { +"description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EntityType": { +"description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", +"id": "GoogleCloudDialogflowV2beta1EntityType", +"properties": { +"autoExpansionMode": { +"description": "Optional. Indicates whether the entity type can be automatically expanded.", +"enum": [ +"AUTO_EXPANSION_MODE_UNSPECIFIED", +"AUTO_EXPANSION_MODE_DEFAULT" +], +"enumDescriptions": [ +"Auto expansion disabled for the entity.", +"Allows an agent to recognize values that have not been explicitly listed in the entity." +], +"type": "string" +}, +"displayName": { +"description": "Required. The name of the entity type.", +"type": "string" +}, +"enableFuzzyExtraction": { +"description": "Optional. Enables fuzzy entity extraction during classification.", +"type": "boolean" +}, +"entities": { +"description": "Optional. The collection of entity entries associated with the entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1EntityTypeEntity" +}, +"type": "array" +}, +"kind": { +"description": "Required. Indicates the kind of entity type.", +"enum": [ +"KIND_UNSPECIFIED", +"KIND_MAP", +"KIND_LIST", +"KIND_REGEXP" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Map entity types allow mapping of a group of synonyms to a reference value.", +"List entity types contain a set of entries that do not map to reference values. However, list entity types can contain references to other entity types (with or without aliases).", +"Regexp entity types allow to specify regular expressions in entries values." +], +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes methods. Supported formats: - `projects//agent/entityTypes/` - `projects//locations//agent/entityTypes/`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EntityTypeEntity": { +"description": "An **entity entry** for an associated entity type.", +"id": "GoogleCloudDialogflowV2beta1EntityTypeEntity", +"properties": { +"synonyms": { +"description": "Required. A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Required. The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EventInput": { +"description": "Events allow for matching intents by event name instead of the natural language input. For instance, input `` can trigger a personalized welcome response. The parameter `name` may be used by the agent in the response: `\"Hello #welcome_event.name! What can I do for you today?\"`.", +"id": "GoogleCloudDialogflowV2beta1EventInput", +"properties": { +"languageCode": { +"description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of the event.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowV2beta1ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Zip compressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in `ExportAgentRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ExportOperationMetadata": { +"description": "Metadata related to the Export Data Operations (e.g. ExportDocument).", +"id": "GoogleCloudDialogflowV2beta1ExportOperationMetadata", +"properties": { +"exportedGcsDestination": { +"$ref": "GoogleCloudDialogflowV2beta1GcsDestination", +"description": "Cloud Storage file path of the exported data." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1FaqAnswer": { +"description": "Represents answer from \"frequently asked questions\".", +"id": "GoogleCloudDialogflowV2beta1FaqAnswer", +"properties": { +"answer": { +"description": "The piece of text from the `source` knowledge base document.", +"type": "string" +}, +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "The system's confidence score that this Knowledge answer is a good match for this conversational query, range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +}, +"source": { +"description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//locations//agent/knowledgeBases//documents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1GcsDestination": { +"description": "Google Cloud Storage location for the output.", +"id": "GoogleCloudDialogflowV2beta1GcsDestination", +"properties": { +"uri": { +"description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1HumanAgentAssistantEvent": { +"description": "Output only. Represents a notification sent to Pub/Sub subscribers for agent assistant events in a specific conversation.", +"id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantEvent", +"properties": { +"conversation": { +"description": "The conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"participant": { +"description": "The participant that the suggestion is compiled for. And This field is used to call Participants.ListSuggestions API. Format: `projects//conversations//participants/`. It will not be set in legacy workflow. HumanAgentAssistantConfig.name for more information.", +"type": "string" +}, +"suggestionResults": { +"description": "The suggestion results payload that this notification refers to. It will only be set when HumanAgentAssistantConfig.SuggestionConfig.group_suggestion_responses sets to true.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestionResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ImportDocumentsResponse": { +"description": "Response message for Documents.ImportDocuments.", +"id": "GoogleCloudDialogflowV2beta1ImportDocumentsResponse", +"properties": { +"warnings": { +"description": "Includes details about skipped documents or any other warnings.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata": { +"description": "Metadata for initializing a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata", +"properties": { +"request": { +"$ref": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", +"description": "Output only. The original request for initialization.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest": { +"description": "The request to initialize a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", +"properties": { +"encryptionSpec": { +"$ref": "GoogleCloudDialogflowV2beta1EncryptionSpec", +"description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Intent": { +"description": "An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview).", +"id": "GoogleCloudDialogflowV2beta1Intent", +"properties": { +"action": { +"description": "Optional. The name of the action associated with the intent. Note: The action name must not contain whitespaces.", +"type": "string" +}, +"defaultResponsePlatforms": { +"description": "Optional. The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform).", +"items": { +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"TELEPHONY", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Not specified.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Telephony Gateway.", +"Google Hangouts." +], +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The name of this intent.", +"type": "string" +}, +"endInteraction": { +"description": "Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.", +"type": "boolean" +}, +"events": { +"description": "Optional. The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of the contexts must be present in the active user session for an event to trigger this intent. Event names are limited to 150 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"followupIntentInfo": { +"description": "Output only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo" +}, +"readOnly": true, +"type": "array" +}, +"inputContextNames": { +"description": "Optional. The list of context names required for this intent to be triggered. Formats: - `projects//agent/sessions/-/contexts/` - `projects//locations//agent/sessions/-/contexts/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"isFallback": { +"description": "Optional. Indicates whether this is a fallback intent.", +"type": "boolean" +}, +"liveAgentHandoff": { +"description": "Optional. Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.", +"type": "boolean" +}, +"messages": { +"description": "Optional. The collection of rich messages corresponding to the `Response` field in the Dialogflow console.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessage" +}, +"type": "array" +}, +"mlDisabled": { +"description": "Optional. Indicates whether Machine Learning is disabled for the intent. Note: If `ml_disabled` setting is set to true, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off.", +"type": "boolean" +}, +"mlEnabled": { +"deprecated": true, +"description": "Optional. Indicates whether Machine Learning is enabled for the intent. Note: If `ml_enabled` setting is set to false, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off. DEPRECATED! Please use `ml_disabled` field instead. NOTE: If both `ml_enabled` and `ml_disabled` are either not set or false, then the default value is determined as follows: - Before April 15th, 2018 the default is: ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the default is: ml_enabled = true / ml_disabled = false.", +"type": "boolean" +}, +"name": { +"description": "Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Supported formats: - `projects//agent/intents/` - `projects//locations//agent/intents/`", +"type": "string" +}, +"outputContexts": { +"description": "Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Context" +}, +"type": "array" +}, +"parameters": { +"description": "Optional. The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentParameter" +}, +"type": "array" +}, +"parentFollowupIntentName": { +"description": "Optional. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"priority": { +"description": "Optional. The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"resetContexts": { +"description": "Optional. Indicates whether to delete all contexts in the current session when this intent is matched.", +"type": "boolean" +}, +"rootFollowupIntentName": { +"description": "Output only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. Format: `projects//agent/intents/`.", +"readOnly": true, +"type": "string" +}, +"trainingPhrases": { +"description": "Optional. The collection of examples that the agent is trained on.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase" +}, +"type": "array" +}, +"webhookState": { +"description": "Optional. Indicates whether webhooks are enabled for the intent.", +"enum": [ +"WEBHOOK_STATE_UNSPECIFIED", +"WEBHOOK_STATE_ENABLED", +"WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING" +], +"enumDescriptions": [ +"Webhook is disabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent. Also, each slot filling prompt is forwarded to the webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo": { +"description": "Represents a single followup intent in the chain.", +"id": "GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo", +"properties": { +"followupIntentName": { +"description": "The unique identifier of the followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"parentFollowupIntentName": { +"description": "The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessage": { +"description": "Corresponds to the `Response` field in the Dialogflow console.", +"id": "GoogleCloudDialogflowV2beta1IntentMessage", +"properties": { +"basicCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCard", +"description": "Displays a basic card for Actions on Google." +}, +"browseCarouselCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard", +"description": "Browse carousel card for Actions on Google." +}, +"card": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCard", +"description": "Displays a card." +}, +"carouselSelect": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect", +"description": "Displays a carousel card for Actions on Google." +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Displays an image." +}, +"linkOutSuggestion": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion", +"description": "Displays a link out suggestion chip for Actions on Google." +}, +"listSelect": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageListSelect", +"description": "Displays a list card for Actions on Google." +}, +"mediaContent": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageMediaContent", +"description": "The media content card for Actions on Google." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A custom platform-specific response.", +"type": "object" +}, +"platform": { +"description": "Optional. The platform that this message is intended for.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"TELEPHONY", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Not specified.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Telephony Gateway.", +"Google Hangouts." +], +"type": "string" +}, +"quickReplies": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageQuickReplies", +"description": "Displays quick replies." +}, +"rbmCarouselRichCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard", +"description": "Rich Business Messaging (RBM) carousel rich card response." +}, +"rbmStandaloneRichCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard", +"description": "Standalone Rich Business Messaging (RBM) rich card response." +}, +"rbmText": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmText", +"description": "Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging." +}, +"simpleResponses": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses", +"description": "Returns a voice or text-only response for Actions on Google." +}, +"suggestions": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSuggestions", +"description": "Displays suggestion chips for Actions on Google." +}, +"tableCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTableCard", +"description": "Table card for Actions on Google." +}, +"telephonyPlayAudio": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio", +"description": "Plays audio from a file in Telephony Gateway." +}, +"telephonySynthesizeSpeech": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech", +"description": "Synthesizes speech in Telephony Gateway." +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall", +"description": "Transfers the call in Telephony Gateway." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageText", +"description": "Returns a text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBasicCard": { +"description": "The basic card message. Useful for displaying information.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBasicCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton" +}, +"type": "array" +}, +"formattedText": { +"description": "Required, unless image is present. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. The image for the card." +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton": { +"description": "The button object that appears at the bottom of a card.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton", +"properties": { +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction", +"description": "Required. Action to take when a user taps on the button." +}, +"title": { +"description": "Required. The title of the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction": { +"description": "Opens the given URI.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction", +"properties": { +"uri": { +"description": "Required. The HTTP or HTTPS scheme URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard": { +"description": "Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard", +"properties": { +"imageDisplayOptions": { +"description": "Optional. Settings for displaying the image. Applies to every image in items.", +"enum": [ +"IMAGE_DISPLAY_OPTIONS_UNSPECIFIED", +"GRAY", +"WHITE", +"CROPPED", +"BLURRED_BACKGROUND" +], +"enumDescriptions": [ +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with white bars.", +"Image is scaled such that the image width and height match or exceed the container dimensions. This may crop the top and bottom of the image if the scaled image height is greater than the container height, or crop the left and right of the image if the scaled image width is greater than the container width. This is similar to \"Zoom Mode\" on a widescreen TV when playing a 4:3 video.", +"Pad the gaps between image and image frame with a blurred copy of the same image." +], +"type": "string" +}, +"items": { +"description": "Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem": { +"description": "Browsing carousel tile", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem", +"properties": { +"description": { +"description": "Optional. Description of the carousel item. Maximum of four lines of text.", +"type": "string" +}, +"footer": { +"description": "Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Hero image for the carousel item." +}, +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"description": "Required. Action to present to the user." +}, +"title": { +"description": "Required. Title of the carousel item. Maximum of two lines of text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction": { +"description": "Actions on Google action to open a given url.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"properties": { +"url": { +"description": "Required. URL", +"type": "string" +}, +"urlTypeHint": { +"description": "Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.", +"enum": [ +"URL_TYPE_HINT_UNSPECIFIED", +"AMP_ACTION", +"AMP_CONTENT" +], +"enumDescriptions": [ +"Unspecified", +"Url would be an amp action", +"URL that points directly to AMP content, or to a canonical URL which refers to AMP content via ." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCard": { +"description": "The card response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCardButton" +}, +"type": "array" +}, +"imageUri": { +"description": "Optional. The public URI to an image file for the card.", +"type": "string" +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCardButton": { +"description": "Optional. Contains information about a button.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCardButton", +"properties": { +"postback": { +"description": "Optional. The text to send back to the Dialogflow API or a URI to open.", +"type": "string" +}, +"text": { +"description": "Optional. The text to show on the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect": { +"description": "The card for presenting a carousel of options to select from.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect", +"properties": { +"items": { +"description": "Required. Carousel items.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem": { +"description": "An item in the carousel.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem", +"properties": { +"description": { +"description": "Optional. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo", +"description": "Required. Additional info about the option item." +}, +"title": { +"description": "Required. Title of the carousel item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageColumnProperties": { +"description": "Column properties for TableCard.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageColumnProperties", +"properties": { +"header": { +"description": "Required. Column heading.", +"type": "string" +}, +"horizontalAlignment": { +"description": "Optional. Defines text alignment for all cells in this column.", +"enum": [ +"HORIZONTAL_ALIGNMENT_UNSPECIFIED", +"LEADING", +"CENTER", +"TRAILING" +], +"enumDescriptions": [ +"Text is aligned to the leading edge of the column.", +"Text is aligned to the leading edge of the column.", +"Text is centered in the column.", +"Text is aligned to the trailing edge of the column." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageImage": { +"description": "The image response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"properties": { +"accessibilityText": { +"description": "A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.", +"type": "string" +}, +"imageUri": { +"description": "Optional. The public URI to an image file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion": { +"description": "The suggestion chip message that allows the user to jump out to the app or website associated with this agent.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion", +"properties": { +"destinationName": { +"description": "Required. The name of the app or site this chip is linking to.", +"type": "string" +}, +"uri": { +"description": "Required. The URI of the app or site to open when the user taps the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageListSelect": { +"description": "The card for presenting a list of options to select from.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageListSelect", +"properties": { +"items": { +"description": "Required. List items.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageListSelectItem" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle of the list.", +"type": "string" +}, +"title": { +"description": "Optional. The overall title of the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageListSelectItem": { +"description": "An item in the list.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageListSelectItem", +"properties": { +"description": { +"description": "Optional. The main text describing the item.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo", +"description": "Required. Additional information about this option." +}, +"title": { +"description": "Required. The title of the list item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageMediaContent": { +"description": "The media content card for Actions on Google.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageMediaContent", +"properties": { +"mediaObjects": { +"description": "Required. List of media objects.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject" +}, +"type": "array" +}, +"mediaType": { +"description": "Optional. What type of media is the content (ie \"audio\").", +"enum": [ +"RESPONSE_MEDIA_TYPE_UNSPECIFIED", +"AUDIO" +], +"enumDescriptions": [ +"Unspecified.", +"Response media type is audio." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject": { +"description": "Response media object for media content card.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject", +"properties": { +"contentUrl": { +"description": "Required. Url where the media is stored.", +"type": "string" +}, +"description": { +"description": "Optional. Description of media card.", +"type": "string" +}, +"icon": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Icon to display above media content." +}, +"largeImage": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Image to display above media content." +}, +"name": { +"description": "Required. Name of media card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageQuickReplies": { +"description": "The quick replies response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageQuickReplies", +"properties": { +"quickReplies": { +"description": "Optional. The collection of quick replies.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Optional. The title of the collection of quick replies.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent": { +"description": "Rich Business Messaging (RBM) Card content", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent", +"properties": { +"description": { +"description": "Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.", +"type": "string" +}, +"media": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia", +"description": "Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card." +}, +"suggestions": { +"description": "Optional. List of suggestions to include in the card.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion" +}, +"type": "array" +}, +"title": { +"description": "Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia": { +"description": "Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia", +"properties": { +"fileUri": { +"description": "Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.", +"type": "string" +}, +"height": { +"description": "Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.", +"enum": [ +"HEIGHT_UNSPECIFIED", +"SHORT", +"MEDIUM", +"TALL" +], +"enumDescriptions": [ +"Not specified.", +"112 DP.", +"168 DP.", +"264 DP. Not available for rich card carousels when the card width is set to small." +], +"type": "string" +}, +"thumbnailUri": { +"description": "Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard": { +"description": "Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard", +"properties": { +"cardContents": { +"description": "Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent" +}, +"type": "array" +}, +"cardWidth": { +"description": "Required. The width of the cards in the carousel.", +"enum": [ +"CARD_WIDTH_UNSPECIFIED", +"SMALL", +"MEDIUM" +], +"enumDescriptions": [ +"Not specified.", +"120 DP. Note that tall media cannot be used.", +"232 DP." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard": { +"description": "Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard", +"properties": { +"cardContent": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent", +"description": "Required. Card content." +}, +"cardOrientation": { +"description": "Required. Orientation of the card.", +"enum": [ +"CARD_ORIENTATION_UNSPECIFIED", +"HORIZONTAL", +"VERTICAL" +], +"enumDescriptions": [ +"Not specified.", +"Horizontal layout.", +"Vertical layout." +], +"type": "string" +}, +"thumbnailImageAlignment": { +"description": "Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.", +"enum": [ +"THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED", +"LEFT", +"RIGHT" +], +"enumDescriptions": [ +"Not specified.", +"Thumbnail preview is left-aligned.", +"Thumbnail preview is right-aligned." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction": { +"description": "Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction", +"properties": { +"dial": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial", +"description": "Suggested client side action: Dial a phone number" +}, +"openUrl": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri", +"description": "Suggested client side action: Open a URI on device" +}, +"postbackData": { +"description": "Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.", +"type": "string" +}, +"shareLocation": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation", +"description": "Suggested client side action: Share user location" +}, +"text": { +"description": "Text to display alongside the action.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial": { +"description": "Opens the user's default dialer app with the specified phone number but does not dial automatically.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial", +"properties": { +"phoneNumber": { +"description": "Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri": { +"description": "Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri", +"properties": { +"uri": { +"description": "Required. The uri to open on the user device", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation": { +"description": "Opens the device's location chooser so the user can pick a location to send back to the agent.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply": { +"description": "Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply", +"properties": { +"postbackData": { +"description": "Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.", +"type": "string" +}, +"text": { +"description": "Suggested reply text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion": { +"description": "Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion", +"properties": { +"action": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction", +"description": "Predefined client side actions that user can choose" +}, +"reply": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply", +"description": "Predefined replies for user to select instead of typing" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmText": { +"description": "Rich Business Messaging (RBM) text response with suggestions.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmText", +"properties": { +"rbmSuggestion": { +"description": "Optional. One or more suggestions to show to the user.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion" +}, +"type": "array" +}, +"text": { +"description": "Required. Text sent and displayed to the user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo": { +"description": "Additional info about the select item for when it is triggered in a dialog.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo", +"properties": { +"key": { +"description": "Required. A unique key that will be sent back to the agent if this response is given.", +"type": "string" +}, +"synonyms": { +"description": "Optional. A list of synonyms that can also be used to trigger this item in dialog.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse": { +"description": "The simple response message containing speech or text.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse", +"properties": { +"displayText": { +"description": "Optional. The text to display.", +"type": "string" +}, +"ssml": { +"description": "One of text_to_speech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with text_to_speech.", +"type": "string" +}, +"textToSpeech": { +"description": "One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses": { +"description": "The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses", +"properties": { +"simpleResponses": { +"description": "Required. The list of simple responses.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSuggestion": { +"description": "The suggestion chip message that the user can tap to quickly post a reply to the conversation.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSuggestion", +"properties": { +"title": { +"description": "Required. The text shown the in the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSuggestions": { +"description": "The collection of suggestions.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSuggestions", +"properties": { +"suggestions": { +"description": "Required. The list of suggested replies.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSuggestion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTableCard": { +"description": "Table card for Actions on Google.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTableCard", +"properties": { +"buttons": { +"description": "Optional. List of buttons for the card.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton" +}, +"type": "array" +}, +"columnProperties": { +"description": "Optional. Display properties for the columns in this table.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageColumnProperties" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Image which should be displayed on the card." +}, +"rows": { +"description": "Optional. Rows in this table of data.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTableCardRow" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle to the title.", +"type": "string" +}, +"title": { +"description": "Required. Title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTableCardCell": { +"description": "Cell of TableCardRow.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTableCardCell", +"properties": { +"text": { +"description": "Required. Text in this cell.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTableCardRow": { +"description": "Row of TableCard.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTableCardRow", +"properties": { +"cells": { +"description": "Optional. List of cells that make up this row.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTableCardCell" +}, +"type": "array" +}, +"dividerAfter": { +"description": "Optional. Whether to add a visual divider after this row.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio": { +"description": "Plays audio from a file in Telephony Gateway.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio", +"properties": { +"audioUri": { +"description": "Required. URI to a Google Cloud Storage object containing the audio to play, e.g., \"gs://bucket/object\". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech": { +"description": "Synthesizes speech and plays back the synthesized audio to the caller in Telephony Gateway. Telephony Gateway takes the synthesizer settings from `DetectIntentResponse.output_audio_config` which can either be set at request-level or can come from the agent-level synthesizer config.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech", +"properties": { +"ssml": { +"description": "The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall": { +"description": "Transfers the call in Telephony Gateway.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Required. The phone number to transfer the call to in [E.164 format](https://en.wikipedia.org/wiki/E.164). We currently only allow transferring to US numbers (+1xxxyyyzzzz).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageText", +"properties": { +"text": { +"description": "Optional. The collection of the agent's responses.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentParameter": { +"description": "Represents intent parameters.", +"id": "GoogleCloudDialogflowV2beta1IntentParameter", +"properties": { +"defaultValue": { +"description": "Optional. The default value to use when the `value` yields an empty result. Default values can be extracted from contexts by using the following syntax: `#context_name.parameter_name`.", +"type": "string" +}, +"displayName": { +"description": "Required. The name of the parameter.", +"type": "string" +}, +"entityTypeDisplayName": { +"description": "Optional. The name of the entity type, prefixed with `@`, that describes values of the parameter. If the parameter is required, this must be provided.", +"type": "string" +}, +"isList": { +"description": "Optional. Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"mandatory": { +"description": "Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value.", +"type": "boolean" +}, +"name": { +"description": "The unique identifier of this parameter.", +"type": "string" +}, +"prompts": { +"description": "Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Optional. The definition of the parameter value. It can be: - a constant string, - a parameter value defined as `$parameter_name`, - an original parameter value defined as `$parameter_name.original`, - a parameter value from some context defined as `#context_name.parameter_name`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentSuggestion": { +"description": "Represents an intent suggestion.", +"id": "GoogleCloudDialogflowV2beta1IntentSuggestion", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "The display name of the intent.", +"type": "string" +}, +"intentV2": { +"description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on.", +"id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase", +"properties": { +"name": { +"description": "Output only. The unique identifier of this training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `entity_type`, `alias`, and `user_defined` fields are all set.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart" +}, +"type": "array" +}, +"timesAddedCount": { +"description": "Optional. Indicates how many times this example was added to the intent. Each time a developer adds an existing sample by editing an intent or training, this counter is increased.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "Required. The type of the training phrase.", +"enum": [ +"TYPE_UNSPECIFIED", +"EXAMPLE", +"TEMPLATE" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"Not specified. This value should never be used.", +"Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", +"Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Note: Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases in template mode, they will be removed during training and it can cause a drop in agent performance." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart", +"properties": { +"alias": { +"description": "Optional. The parameter name for the value extracted from the annotated part of the example. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"entityType": { +"description": "Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +}, +"userDefined": { +"description": "Optional. Indicates whether the text was manually annotated. This field is set to true when the Dialogflow Console is used to manually annotate the part. When creating an annotated part with the API, you must set this to true.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAnswers": { +"description": "Represents the result of querying a Knowledge base.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAnswers", +"properties": { +"answers": { +"description": "A list of answers from Knowledge Connector.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer": { +"description": "An answer from Knowledge Connector.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer", +"properties": { +"answer": { +"description": "The piece of text from the `source` knowledge base document that answers this conversational query.", +"type": "string" +}, +"faqQuestion": { +"description": "The corresponding FAQ question if the answer was extracted from a FAQ Document, empty otherwise.", +"type": "string" +}, +"matchConfidence": { +"description": "The system's confidence score that this Knowledge answer is a good match for this conversational query. The range is from 0.0 (completely uncertain) to 1.0 (completely certain). Note: The confidence score is likely to vary somewhat (possibly even for identical requests), as the underlying model is under constant improvement. It may be deprecated in the future. We recommend using `match_confidence_level` which should be generally more stable.", +"format": "float", +"type": "number" +}, +"matchConfidenceLevel": { +"description": "The system's confidence level that this knowledge answer is a good match for this conversational query. NOTE: The confidence level for a given `` pair may change without notice, as it depends on models that are constantly being improved. However, it will change less frequently than the confidence score below, and should be preferred for referencing the quality of an answer.", +"enum": [ +"MATCH_CONFIDENCE_LEVEL_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH" +], +"enumDescriptions": [ +"Not specified.", +"Indicates that the confidence is low.", +"Indicates our confidence is medium.", +"Indicates our confidence is high." +], +"type": "string" +}, +"source": { +"description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//knowledgeBases//documents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer": { +"description": "Represents a Knowledge Assist answer.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of the answer record. Format: `projects//locations//answer Records/`.", +"type": "string" +}, +"suggestedQuery": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery", +"description": "The query suggested based on the context. Suggestion is made only if it is different from the previous suggestion." +}, +"suggestedQueryAnswer": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer", +"description": "The answer generated for the suggested query. Whether or not an answer is generated depends on how confident we are about the generated query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer": { +"description": "Represents an answer from Knowledge. Currently supports FAQ and Generative answers.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer", +"properties": { +"answerText": { +"description": "The piece of text from the `source` that answers this suggested query.", +"type": "string" +}, +"faqSource": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"description": "Populated if the prediction came from FAQ." +}, +"generativeSource": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"description": "Populated if the prediction was Generative." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource": { +"description": "Details about source of FAQ answer.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"properties": { +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource": { +"description": "Details about source of Generative answer.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"properties": { +"snippets": { +"description": "All snippets used for this Generative Prediction, with their source URI and data.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet": { +"description": "Snippet Source for a Generative Prediction.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Metadata of the document.", +"type": "object" +}, +"text": { +"description": "Text taken from that URI.", +"type": "string" +}, +"title": { +"description": "Title of the document.", +"type": "string" +}, +"uri": { +"description": "URI the data is sourced from.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery": { +"description": "Represents a suggested query.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery", +"properties": { +"queryText": { +"description": "Suggested query text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata": { +"description": "Metadata in google::longrunning::Operation for Knowledge operations.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata", +"properties": { +"exportOperationMetadata": { +"$ref": "GoogleCloudDialogflowV2beta1ExportOperationMetadata", +"description": "Metadata for the Export Data Operation such as the destination of export." +}, +"knowledgeBase": { +"description": "The name of the knowledge base interacted with during the operation.", +"type": "string" +}, +"state": { +"description": "Required. Output only. The current state of this operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"State unspecified.", +"The operation has been created.", +"The operation is currently running.", +"The operation is done, either cancelled or completed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Message": { +"description": "Represents a message posted into a conversation.", +"id": "GoogleCloudDialogflowV2beta1Message", +"properties": { +"content": { +"description": "Required. The message content.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the message was created in Contact Center AI.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Optional. The message language. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"messageAnnotation": { +"$ref": "GoogleCloudDialogflowV2beta1MessageAnnotation", +"description": "Output only. The annotation for the message.", +"readOnly": true +}, +"name": { +"description": "Optional. The unique identifier of the message. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"participant": { +"description": "Output only. The participant that sends this message.", +"readOnly": true, +"type": "string" +}, +"participantRole": { +"description": "Output only. The role of the participant.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"readOnly": true, +"type": "string" +}, +"responseMessages": { +"description": "Optional. Automated agent responses.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessage" +}, +"type": "array" +}, +"sendTime": { +"description": "Optional. The time when the message was sent.", +"format": "google-datetime", +"type": "string" +}, +"sentimentAnalysis": { +"$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult", +"description": "Output only. The sentiment analysis result for the message.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1MessageAnnotation": { +"description": "Represents the result of annotation for the message.", +"id": "GoogleCloudDialogflowV2beta1MessageAnnotation", +"properties": { +"containEntities": { +"description": "Required. Indicates whether the text message contains entities.", +"type": "boolean" +}, +"parts": { +"description": "Optional. The collection of annotated message parts ordered by their position in the message. You can recover the annotated message by concatenating [AnnotatedMessagePart.text].", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1AnnotatedMessagePart" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest": { +"description": "Represents the contents of the original request that was passed to the `[Streaming]DetectIntent` call.", +"id": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest", +"properties": { +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field is set to the value of the `QueryParameters.payload` field passed in the request. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: { \"telephony\": { \"caller_id\": \"+18558363987\" } } Note: The caller ID field (`caller_id`) will be redacted for Trial Edition agents and populated with the caller ID in [E.164 format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents.", +"type": "object" +}, +"source": { +"description": "The source of this request, e.g., `google`, `facebook`, `slack`. It is set by Dialogflow-owned servers.", +"type": "string" +}, +"version": { +"description": "Optional. The version of the protocol used for this request. This field is AoG-specific.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1QueryResult": { +"description": "Represents the result of conversational query or event processing.", +"id": "GoogleCloudDialogflowV2beta1QueryResult", +"properties": { +"action": { +"description": "The action name from the matched intent.", +"type": "string" +}, +"allRequiredParamsPresent": { +"description": "This field is set to: - `false` if the matched intent has required parameters and not all of the required parameter values have been collected. - `true` if all required parameter values have been collected, or if the matched intent doesn't contain any required parameters.", +"type": "boolean" +}, +"cancelsSlotFilling": { +"description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", +"type": "boolean" +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors", +"type": "object" +}, +"fulfillmentMessages": { +"description": "The collection of rich messages to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "The text to be pronounced to the user or shown on the screen. Note: This is a legacy field, `fulfillment_messages` should be preferred.", +"type": "string" +}, +"intent": { +"$ref": "GoogleCloudDialogflowV2beta1Intent", +"description": "The intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name`, `display_name`, `end_interaction` and `is_fallback`." +}, +"intentDetectionConfidence": { +"description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. If there are `multiple knowledge_answers` messages, this value is set to the greatest `knowledgeAnswers.match_confidence` value in the list.", +"format": "float", +"type": "number" +}, +"knowledgeAnswers": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswers", +"description": "The result from Knowledge Connector (if any), ordered by decreasing `KnowledgeAnswers.match_confidence`." +}, +"languageCode": { +"description": "The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.", +"type": "string" +}, +"outputContexts": { +"description": "The collection of output contexts. If applicable, `output_contexts.parameters` contains entries with name `.original` containing the original parameter values before the query.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Context" +}, +"type": "array" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"queryText": { +"description": "The original conversational query text: - If natural language text was provided as input, `query_text` contains a copy of the input. - If natural language speech audio was provided as input, `query_text` contains the speech recognition result. If speech recognizer produced multiple alternatives, a particular one is picked. - If automatic spell correction is enabled, `query_text` will contain the corrected user input.", +"type": "string" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult", +"description": "The sentiment analysis result, which depends on the `sentiment_analysis_request_config` specified in the request." +}, +"speechRecognitionConfidence": { +"description": "The Speech recognition confidence between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be accurate or set. In particular this field isn't set for StreamingDetectIntent since the streaming endpoint has separate confidence estimates per portion of the audio in StreamingRecognitionResult.", +"format": "float", +"type": "number" +}, +"webhookPayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `payload` field returned in the webhook response.", +"type": "object" +}, +"webhookSource": { +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `source` field returned in the webhook response.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessage": { +"description": "Response messages from an automated agent.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessage", +"properties": { +"endInteraction": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction", +"description": "A signal that indicates the interaction with the Dialogflow agent has ended." +}, +"liveAgentHandoff": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff", +"description": "Hands off conversation to a live agent." +}, +"mixedAudio": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio", +"description": "An audio response message composed of both the synthesized Dialogflow agent responses and the audios hosted in places known to the client." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Returns a response containing a custom, platform-specific payload.", +"type": "object" +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall", +"description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageText", +"description": "Returns a text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction": { +"description": "Indicates that interaction with the Dialogflow agent has ended.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff": { +"description": "Indicates that the conversation should be handed off to a human agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry fulfillment of a CX Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio": { +"description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio", +"properties": { +"segments": { +"description": "Segments this audio response is composed of.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment": { +"description": "Represents one segment of audio.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment", +"properties": { +"allowPlaybackInterruption": { +"description": "Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", +"type": "boolean" +}, +"audio": { +"description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "Client-specific URI that points to an audio clip accessible to the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall": { +"description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).", +"type": "string" +}, +"sipUri": { +"description": "Transfer the call to a SIP endpoint.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageText", +"properties": { +"text": { +"description": "A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Sentiment": { +"description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result.", +"id": "GoogleCloudDialogflowV2beta1Sentiment", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SentimentAnalysisResult": { +"description": "The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral. For Participants.DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For Participants.StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config", +"id": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult", +"properties": { +"queryTextSentiment": { +"$ref": "GoogleCloudDialogflowV2beta1Sentiment", +"description": "The sentiment analysis result for `query_text`." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SessionEntityType": { +"description": "A session represents a conversation between a Dialogflow agent and an end-user. You can create special entities, called session entities, during a session. Session entities can extend or replace custom entity types and only exist during the session that they were created for. All session data, including session entities, is stored by Dialogflow for 20 minutes. For more information, see the [session entity guide](https://cloud.google.com/dialogflow/docs/entities-session).", +"id": "GoogleCloudDialogflowV2beta1SessionEntityType", +"properties": { +"entities": { +"description": "Required. The collection of entities associated with this session entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1EntityTypeEntity" +}, +"type": "array" +}, +"entityOverrideMode": { +"description": "Required. Indicates whether the additional data should override or supplement the custom entity type definition.", +"enum": [ +"ENTITY_OVERRIDE_MODE_UNSPECIFIED", +"ENTITY_OVERRIDE_MODE_OVERRIDE", +"ENTITY_OVERRIDE_MODE_SUPPLEMENT" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"The collection of session entities overrides the collection of entities in the corresponding custom entity type.", +"The collection of session entities extends the collection of entities in the corresponding custom entity type. Note: Even in this override mode calls to `ListSessionEntityTypes`, `GetSessionEntityType`, `CreateSessionEntityType` and `UpdateSessionEntityType` only return the additional entities added in this session entity type. If you want to get the supplemented list, please call EntityTypes.GetEntityType on the custom entity type and merge." +], +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of this session entity type. Supported formats: - `projects//agent/sessions//entityTypes/` - `projects//locations//agent/sessions//entityTypes/` - `projects//agent/environments//users//sessions//entityTypes/` - `projects//locations//agent/environments/ /users//sessions//entityTypes/` If `Location ID` is not specified we assume default 'us' location. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SetSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfile.SetSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2beta1SetSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to add or update the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to add or update.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"DIALOGFLOW_ASSIST", +"CONVERSATION_SUMMARIZATION", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model.", +"Run smart reply model for chat.", +"Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", +"Run conversation summarization model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SmartReplyAnswer": { +"description": "Represents a smart reply answer.", +"id": "GoogleCloudDialogflowV2beta1SmartReplyAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "Smart reply confidence. The system's confidence score that this reply is a good match for this conversation, as a value from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"reply": { +"description": "The content of the reply.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SpeechWordInfo": { +"description": "Information for a word recognized by the speech recognizer.", +"id": "GoogleCloudDialogflowV2beta1SpeechWordInfo", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for this word. A higher number indicates an estimated greater likelihood that the recognized word is correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be fully stable over time for the same audio input. Users should also not rely on it to always be provided.", +"format": "float", +"type": "number" +}, +"endOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the end of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"startOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the start of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word this info is for.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1StreamingRecognitionResult": { +"description": "Contains a speech recognition result corresponding to a portion of the audio that is currently being processed or an indication that this is the end of the single requested utterance. While end-user audio is being processed, Dialogflow sends a series of results. Each result may contain a `transcript` value. A transcript represents a portion of the utterance. While the recognizer is processing audio, transcript values may be interim values or finalized values. Once a transcript is finalized, the `is_final` value is set to true and processing continues for the next transcript. If `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` was true, and the recognizer has completed processing audio, the `message_type` value is set to `END_OF_SINGLE_UTTERANCE and the following (last) result contains the last finalized transcript. The complete end-user utterance is determined by concatenating the finalized transcript values received for the series of results. In the following example, single utterance is enabled. In the case where single utterance is not enabled, result 7 would not occur. ``` Num | transcript | message_type | is_final --- | ----------------------- | ----------------------- | -------- 1 | \"tube\" | TRANSCRIPT | false 2 | \"to be a\" | TRANSCRIPT | false 3 | \"to be\" | TRANSCRIPT | false 4 | \"to be or not to be\" | TRANSCRIPT | true 5 | \"that's\" | TRANSCRIPT | false 6 | \"that is | TRANSCRIPT | false 7 | unset | END_OF_SINGLE_UTTERANCE | unset 8 | \" that is the question\" | TRANSCRIPT | true ``` Concatenating the finalized transcripts with `is_final` set to true, the complete utterance becomes \"to be or not to be that is the question\".", +"id": "GoogleCloudDialogflowV2beta1StreamingRecognitionResult", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for the current portion of audio. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is typically only provided if `is_final` is true and you should not rely on it being accurate or even set.", +"format": "float", +"type": "number" +}, +"dtmfDigits": { +"$ref": "GoogleCloudDialogflowV2beta1TelephonyDtmfEvents", +"description": "DTMF digits. Populated if and only if `message_type` = `DTMF_DIGITS`." +}, +"isFinal": { +"description": "If `false`, the `StreamingRecognitionResult` represents an interim result that may change. If `true`, the recognizer will not return any further hypotheses about this piece of the audio. May only be populated for `message_type` = `TRANSCRIPT`.", +"type": "boolean" +}, +"languageCode": { +"description": "Detected language code for the transcript.", +"type": "string" +}, +"messageType": { +"description": "Type of the result message.", +"enum": [ +"MESSAGE_TYPE_UNSPECIFIED", +"TRANSCRIPT", +"DTMF_DIGITS", +"END_OF_SINGLE_UTTERANCE", +"PARTIAL_DTMF_DIGITS" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"Message contains a (possibly partial) transcript.", +"Message contains DTMF digits.", +"This event indicates that the server has detected the end of the user's speech utterance and expects no additional speech. Therefore, the server will not process additional audio (although it may subsequently return additional results). The client should stop sending additional audio data, half-close the gRPC connection, and wait for any additional results until the server closes the gRPC connection. This message is only sent if `single_utterance` was set to `true`, and is not used otherwise.", +"Message contains DTMF digits. Before a message with DTMF_DIGITS is sent, a message with PARTIAL_DTMF_DIGITS may be sent with DTMF digits collected up to the time of sending, which represents an intermediate result." +], +"type": "string" +}, +"speechEndOffset": { +"description": "Time offset of the end of this Speech recognition result relative to the beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`.", +"format": "google-duration", +"type": "string" +}, +"speechWordInfo": { +"description": "Word-specific information for the words recognized by Speech in transcript. Populated if and only if `message_type` = `TRANSCRIPT` and [InputAudioConfig.enable_word_info] is set.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SpeechWordInfo" +}, +"type": "array" +}, +"stability": { +"description": "An estimate of the likelihood that the speech recognizer will not change its guess about this interim recognition result: * If the value is unspecified or 0.0, Dialogflow didn't compute the stability. In particular, Dialogflow will only provide stability for `TRANSCRIPT` results with `is_final = false`. * Otherwise, the value is in (0.0, 1.0] where 0.0 means completely unstable and 1.0 means completely stable.", +"format": "float", +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke. Populated if and only if `message_type` = `TRANSCRIPT`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestArticlesResponse": { +"description": "The response message for Participants.SuggestArticles.", +"id": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", +"properties": { +"articleAnswers": { +"description": "Output only. Articles ordered by score in descending order.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1ArticleAnswer" +}, +"type": "array" +}, +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestArticlesResponse.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse": { +"description": "The response message for Participants.SuggestDialogflowAssists.", +"id": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestDialogflowAssistsRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"dialogflowAssistAnswers": { +"description": "Output only. Multiple reply options provided by Dialogflow assist service. The order is based on the rank of the model prediction.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer" +}, +"type": "array" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to suggest answer. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse": { +"description": "The request message for Participants.SuggestFaqAnswers.", +"id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestFaqAnswersRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"faqAnswers": { +"description": "Output only. Answers extracted from FAQ documents.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1FaqAnswer" +}, +"type": "array" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse": { +"description": "The response message for Participants.SuggestKnowledgeAssist.", +"id": "GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestKnowledgeAssistRequest.context_size field in the request if there are fewer messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"knowledgeAssistAnswer": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer", +"description": "Output only. Knowledge Assist suggestion.", +"readOnly": true +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse": { +"description": "The response message for Participants.SuggestSmartReplies.", +"id": "GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestSmartRepliesRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"smartReplyAnswers": { +"description": "Output only. Multiple reply options provided by smart reply service. The order is based on the rank of the model prediction. The maximum number of the returned replies is set in SmartReplyConfig.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SmartReplyAnswer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestionResult": { +"description": "One response of different type of suggestion response which is used in the response of Participants.AnalyzeContent and Participants.AnalyzeContent, as well as HumanAgentAssistantEvent.", +"id": "GoogleCloudDialogflowV2beta1SuggestionResult", +"properties": { +"error": { +"$ref": "GoogleRpcStatus", +"description": "Error status if the request failed." +}, +"suggestArticlesResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", +"description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." +}, +"suggestDialogflowAssistsResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", +"description": "SuggestDialogflowAssistsResponse if request is for DIALOGFLOW_ASSIST." +}, +"suggestEntityExtractionResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", +"description": "SuggestDialogflowAssistsResponse if request is for ENTITY_EXTRACTION." +}, +"suggestFaqAnswersResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", +"description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." +}, +"suggestKnowledgeAssistResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse", +"description": "SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST." +}, +"suggestSmartRepliesResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse", +"description": "SuggestSmartRepliesResponse if request is for SMART_REPLY." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1TelephonyDtmfEvents": { +"description": "A wrapper of repeated TelephonyDtmf digits.", +"id": "GoogleCloudDialogflowV2beta1TelephonyDtmfEvents", +"properties": { +"dtmfEvents": { +"description": "A sequence of TelephonyDtmf digits.", +"items": { +"enum": [ +"TELEPHONY_DTMF_UNSPECIFIED", +"DTMF_ONE", +"DTMF_TWO", +"DTMF_THREE", +"DTMF_FOUR", +"DTMF_FIVE", +"DTMF_SIX", +"DTMF_SEVEN", +"DTMF_EIGHT", +"DTMF_NINE", +"DTMF_ZERO", +"DTMF_A", +"DTMF_B", +"DTMF_C", +"DTMF_D", +"DTMF_STAR", +"DTMF_POUND" +], +"enumDescriptions": [ +"Not specified. This value may be used to indicate an absent digit.", +"Number: '1'.", +"Number: '2'.", +"Number: '3'.", +"Number: '4'.", +"Number: '5'.", +"Number: '6'.", +"Number: '7'.", +"Number: '8'.", +"Number: '9'.", +"Number: '0'.", +"Letter: 'A'.", +"Letter: 'B'.", +"Letter: 'C'.", +"Letter: 'D'.", +"Asterisk/star: '*'.", +"Pound/diamond/hash/square/gate/octothorpe: '#'." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1WebhookRequest": { +"description": "The request message for a webhook call.", +"id": "GoogleCloudDialogflowV2beta1WebhookRequest", +"properties": { +"alternativeQueryResults": { +"description": "Alternative query results from KnowledgeService.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1QueryResult" +}, +"type": "array" +}, +"originalDetectIntentRequest": { +"$ref": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest", +"description": "Optional. The contents of the original request that was passed to `[Streaming]DetectIntent` call." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2beta1QueryResult", +"description": "The result of the conversational query or event processing. Contains the same value as `[Streaming]DetectIntentResponse.query_result`." +}, +"responseId": { +"description": "The unique identifier of the response. Contains the same value as `[Streaming]DetectIntentResponse.response_id`.", +"type": "string" +}, +"session": { +"description": "The unique identifier of detectIntent request session. Can be used to identify end-user inside webhook implementation. Supported formats: - `projects//agent/sessions/, - `projects//locations//agent/sessions/`, - `projects//agent/environments//users//sessions/`, - `projects//locations//agent/environments//users//sessions/`,", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1WebhookResponse": { +"description": "The response message for a webhook call. This response is validated by the Dialogflow server. If validation fails, an error will be returned in the QueryResult.diagnostic_info field. Setting JSON fields to an empty value with the wrong type is a common error. To avoid this error: - Use `\"\"` for empty strings - Use `{}` or `null` for empty objects - Use `[]` or `null` for empty arrays For more information, see the [Protocol Buffers Language Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).", +"id": "GoogleCloudDialogflowV2beta1WebhookResponse", +"properties": { +"endInteraction": { +"description": "Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.", +"type": "boolean" +}, +"followupEventInput": { +"$ref": "GoogleCloudDialogflowV2beta1EventInput", +"description": "Optional. Invokes the supplied events. When this field is set, Dialogflow ignores the `fulfillment_text`, `fulfillment_messages`, and `payload` fields." +}, +"fulfillmentMessages": { +"description": "Optional. The rich response messages intended for the end-user. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_messages sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "Optional. The text response message intended for the end-user. It is recommended to use `fulfillment_messages.text.text[0]` instead. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_text sent to the integration or API caller.", +"type": "string" +}, +"liveAgentHandoff": { +"description": "Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.", +"type": "boolean" +}, +"outputContexts": { +"description": "Optional. The collection of output contexts that will overwrite currently active contexts for the session and reset their lifespans. When provided, Dialogflow uses this field to populate QueryResult.output_contexts sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Context" +}, +"type": "array" +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field can be used to pass custom data from your webhook to the integration or API caller. Arbitrary JSON objects are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_payload sent to the integration or API caller. This field is also used by the [Google Assistant integration](https://cloud.google.com/dialogflow/docs/integrations/aog) for rich response messages. See the format definition at [Google Assistant Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"type": "object" +}, +"sessionEntityTypes": { +"description": "Optional. Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session. Setting this data from a webhook overwrites the session entity types that have been set using `detectIntent`, `streamingDetectIntent` or SessionEntityType management methods.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SessionEntityType" +}, +"type": "array" +}, +"source": { +"description": "Optional. A custom field used to identify the webhook source. Arbitrary strings are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_source sent to the integration or API caller.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV3alpha1ConversationSignals": { +"description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", +"id": "GoogleCloudDialogflowV3alpha1ConversationSignals", +"properties": { +"turnSignals": { +"$ref": "GoogleCloudDialogflowV3alpha1TurnSignals", +"description": "Required. Turn signals for the current turn." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV3alpha1TurnSignals": { +"description": "Collection of all signals that were extracted for a single turn of the conversation.", +"id": "GoogleCloudDialogflowV3alpha1TurnSignals", +"properties": { +"agentEscalated": { +"description": "Whether agent responded with LiveAgentHandoff fulfillment.", +"type": "boolean" +}, +"dtmfUsed": { +"description": "Whether user was using DTMF input.", +"type": "boolean" +}, +"failureReasons": { +"description": "Failure reasons of the turn.", +"items": { +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"FAILED_INTENT", +"FAILED_WEBHOOK" +], +"enumDescriptions": [ +"Failure reason is not assigned.", +"Whether NLU failed to recognize user intent.", +"Whether webhook failed during the turn." +], +"type": "string" +}, +"type": "array" +}, +"noMatch": { +"description": "Whether NLU predicted NO_MATCH.", +"type": "boolean" +}, +"noUserInput": { +"description": "Whether user provided no input.", +"type": "boolean" +}, +"reachedEndPage": { +"description": "Whether turn resulted in End Session page.", +"type": "boolean" +}, +"sentimentMagnitude": { +"description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"sentimentScore": { +"description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"triggeredAbandonmentEvent": { +"description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", +"type": "boolean" +}, +"userEscalated": { +"description": "Whether user was specifically asking for a live agent.", +"type": "boolean" +}, +"webhookStatuses": { +"description": "Human-readable statuses of the webhooks triggered during this turn.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeLatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "GoogleTypeLatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Dialogflow API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..8bdc97c431de83120357c7e3d57c7be7b4dbca86 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v1.json @@ -0,0 +1,18848 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/display-video": { +"description": "Create, see, edit, and permanently delete your Display & Video 360 entities and reports" +}, +"https://www.googleapis.com/auth/display-video-mediaplanning": { +"description": "Create, see, and edit Display & Video 360 Campaign entities and see billing invoices" +}, +"https://www.googleapis.com/auth/display-video-user-management": { +"description": "Private Service: https://www.googleapis.com/auth/display-video-user-management" +}, +"https://www.googleapis.com/auth/doubleclickbidmanager": { +"description": "View and manage your reports in DoubleClick Bid Manager" +} +} +} +}, +"basePath": "", +"baseUrl": "https://displayvideo.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Display Video", +"description": "Display & Video 360 API allows users to automate complex Display & Video 360 workflows, such as creating insertion orders and setting targeting options for individual line items.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/display-video/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "displayvideo:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://displayvideo.mtls.googleapis.com/", +"name": "displayvideo", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"advertisers": { +"methods": { +"audit": { +"description": "Audits an advertiser. Returns the counts of used entities per resource type under the advertiser provided. Used entities count towards their respective resource limit. See https://support.google.com/displayvideo/answer/6071450.", +"flatPath": "v1/advertisers/{advertisersId}:audit", +"httpMethod": "GET", +"id": "displayvideo.advertisers.audit", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to audit.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Optional. The specific fields to return. If no mask is specified, all fields in the response proto will be filled. Valid values are: * usedLineItemsCount * usedInsertionOrdersCount * usedCampaignsCount * channelsCount * negativelyTargetedChannelsCount * negativeKeywordListsCount * adGroupCriteriaCount * campaignCriteriaCount", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}:audit", +"response": { +"$ref": "AuditAdvertiserResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"bulkEditAdvertiserAssignedTargetingOptions": { +"description": "Bulk edits targeting options under a single advertiser. The operation will delete the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests .", +"flatPath": "v1/advertisers/{advertisersId}:bulkEditAdvertiserAssignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}:bulkEditAdvertiserAssignedTargetingOptions", +"request": { +"$ref": "BulkEditAdvertiserAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"bulkListAdvertiserAssignedTargetingOptions": { +"description": "Lists assigned targeting options of an advertiser across targeting types.", +"flatPath": "v1/advertisers/{advertisersId}:bulkListAdvertiserAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=) operator`. Supported fields: * `targetingType` Examples: * targetingType with value TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_CHANNEL\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is '5000'. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}:bulkListAdvertiserAssignedTargetingOptions", +"response": { +"$ref": "BulkListAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new advertiser. Returns the newly created advertiser if successful. This method can take up to 180 seconds to complete.", +"flatPath": "v1/advertisers", +"httpMethod": "POST", +"id": "displayvideo.advertisers.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/advertisers", +"request": { +"$ref": "Advertiser" +}, +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an advertiser. Deleting an advertiser will delete all of its child resources, for example, campaigns, insertion orders and line items. A deleted advertiser cannot be recovered.", +"flatPath": "v1/advertisers/{advertisersId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.delete", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser we need to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an advertiser.", +"flatPath": "v1/advertisers/{advertisersId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.get", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}", +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists advertisers that are accessible to the current user. The order is defined by the order_by parameter. A single partner_id is required. Cross-partner listing is not supported.", +"flatPath": "v1/advertisers", +"httpMethod": "GET", +"id": "displayvideo.advertisers.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Allows filtering by advertiser fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `advertiserId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All active advertisers under a partner: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` * All advertisers with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All advertisers with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertisers` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner that the fetched advertisers should all belong to. The system only supports listing advertisers for one partner at a time.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers", +"response": { +"$ref": "ListAdvertisersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing advertiser. Returns the updated advertiser if successful.", +"flatPath": "v1/advertisers/{advertisersId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.patch", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}", +"request": { +"$ref": "Advertiser" +}, +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"assets": { +"methods": { +"upload": { +"description": "Uploads an asset. Returns the ID of the newly uploaded asset if successful. The asset file size should be no more than 10 MB for images, 200 MB for ZIP files, and 1 GB for videos. Must be used within the [multipart media upload process](/display-video/api/guides/how-tos/upload#multipart). Examples using provided client libraries can be found in our [Creating Creatives guide](/display-video/api/guides/creating-creatives/overview#upload_an_asset).", +"flatPath": "v1/advertisers/{advertisersId}/assets", +"httpMethod": "POST", +"id": "displayvideo.advertisers.assets.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1/advertisers/{+advertiserId}/assets" +} +} +}, +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this asset belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/assets", +"request": { +"$ref": "CreateAssetRequest" +}, +"response": { +"$ref": "CreateAssetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +], +"supportsMediaUpload": true +} +} +}, +"campaigns": { +"methods": { +"bulkListCampaignAssignedTargetingOptions": { +"description": "Lists assigned targeting options of a campaign across targeting types.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}:bulkListCampaignAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_LANGUAGE` or `TARGETING_TYPE_GENDER`: `targetingType=\"TARGETING_TYPE_LANGUAGE\" OR targetingType=\"TARGETING_TYPE_GENDER\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}:bulkListCampaignAssignedTargetingOptions", +"response": { +"$ref": "BulkListCampaignAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new campaign. Returns the newly created campaign if successful.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns", +"httpMethod": "POST", +"id": "displayvideo.advertisers.campaigns.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns", +"request": { +"$ref": "Campaign" +}, +"response": { +"$ref": "Campaign" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"delete": { +"description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.campaigns.delete", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "The ID of the campaign we need to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"get": { +"description": "Gets a campaign.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.get", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}", +"response": { +"$ref": "Campaign" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"list": { +"description": "Lists campaigns in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, campaigns with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser to list campaigns for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by campaign fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` campaigns under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All campaigns with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All campaigns with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaigns` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns", +"response": { +"$ref": "ListCampaignsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"patch": { +"description": "Updates an existing campaign. Returns the updated campaign if successful.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.campaigns.patch", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Output only. The unique ID of the campaign. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}", +"request": { +"$ref": "Campaign" +}, +"response": { +"$ref": "Campaign" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option assigned to a campaign.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"campaignId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this campaign that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a campaign for a specified targeting type.", +"flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"campaignId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER` `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListCampaignAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"channels": { +"methods": { +"create": { +"description": "Creates a new channel. Returns the newly created channel if successful.", +"flatPath": "v1/advertisers/{advertisersId}/channels", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/channels", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a channel for a partner or advertiser.", +"flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.channels.get", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the fetched channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the channel to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the fetched channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/channels/{+channelId}", +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists channels for a partner or advertiser.", +"flatPath": "v1/advertisers/{advertisersId}/channels", +"httpMethod": "GET", +"id": "displayvideo.advertisers.channels.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the channels.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the channels.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/channels", +"response": { +"$ref": "ListChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a channel. Returns the updated channel if successful.", +"flatPath": "v1/advertisers/{advertisersId}/channels/{channelId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.channels.patch", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Output only. The unique ID of the channel. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/channels/{channelId}", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"sites": { +"methods": { +"bulkEdit": { +"description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.", +"flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.sites.bulkEdit", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit", +"request": { +"$ref": "BulkEditSitesRequest" +}, +"response": { +"$ref": "BulkEditSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a site in a channel.", +"flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.sites.create", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel in which the site will be created.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites", +"request": { +"$ref": "Site" +}, +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a site from a channel.", +"flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites/{sitesId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.channels.sites.delete", +"parameterOrder": [ +"advertiserId", +"channelId", +"urlOrAppId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the site belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"urlOrAppId": { +"description": "Required. The URL or app ID of the site to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists sites in a channel.", +"flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}/sites", +"httpMethod": "GET", +"id": "displayvideo.advertisers.channels.sites.list", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the requested sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site retrieval can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/channels/{+channelId}/sites", +"response": { +"$ref": "ListSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"replace": { +"description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", +"flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:replace", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.sites.replace", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel whose sites will be replaced.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:replace", +"request": { +"$ref": "ReplaceSitesRequest" +}, +"response": { +"$ref": "ReplaceSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"creatives": { +"methods": { +"create": { +"description": "Creates a new creative. Returns the newly created creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", +"flatPath": "v1/advertisers/{advertisersId}/creatives", +"httpMethod": "POST", +"id": "displayvideo.advertisers.creatives.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/creatives", +"request": { +"$ref": "Creative" +}, +"response": { +"$ref": "Creative" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", +"flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.creatives.delete", +"parameterOrder": [ +"advertiserId", +"creativeId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"creativeId": { +"description": "The ID of the creative to be deleted.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a creative.", +"flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.creatives.get", +"parameterOrder": [ +"advertiserId", +"creativeId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"creativeId": { +"description": "Required. The ID of the creative to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}", +"response": { +"$ref": "Creative" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists creatives in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, creatives with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v1/advertisers/{advertisersId}/creatives", +"httpMethod": "GET", +"id": "displayvideo.advertisers.creatives.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list creatives for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by creative fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `lineItemIds` field must use the `HAS (:)` operator. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. * For `entityStatus`, `minDuration`, `maxDuration`, `updateTime`, and `dynamic` fields, there may be at most one restriction. Supported Fields: * `approvalStatus` * `creativeId` * `creativeType` * `dimensions` (input in the form of `{width}x{height}`) * `dynamic` * `entityStatus` * `exchangeReviewStatus` (input in the form of `{exchange}-{reviewStatus}`) * `lineItemIds` * `maxDuration` (input in the form of `{duration}s`. Only seconds are supported) * `minDuration` (input in the form of `{duration}s`. Only seconds are supported) * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Notes: * For `updateTime`, a creative resource's field value reflects the last time that a creative has been updated, which includes updates made by the system (e.g. creative review updates). Examples: * All native creatives: `creativeType=\"CREATIVE_TYPE_NATIVE\"` * All active creatives with 300x400 or 50x100 dimensions: `entityStatus=\"ENTITY_STATUS_ACTIVE\" AND (dimensions=\"300x400\" OR dimensions=\"50x100\")` * All dynamic creatives that are approved by AdX or AppNexus, with a minimum duration of 5 seconds and 200ms: `dynamic=\"true\" AND minDuration=\"5.2s\" AND (exchangeReviewStatus=\"EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROVED\" OR exchangeReviewStatus=\"EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED\")` * All video creatives that are associated with line item ID 1 or 2: `creativeType=\"CREATIVE_TYPE_VIDEO\" AND (lineItemIds:1 OR lineItemIds:2)` * Find creatives by multiple creative IDs: `creativeId=1 OR creativeId=2` * All creatives with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `creativeId` (default) * `createTime` * `mediaDuration` * `dimensions` (sorts by width first, then by height) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `createTime desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCreatives` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/creatives", +"response": { +"$ref": "ListCreativesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing creative. Returns the updated creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", +"flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.creatives.patch", +"parameterOrder": [ +"advertiserId", +"creativeId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"creativeId": { +"description": "Output only. The unique ID of the creative. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}", +"request": { +"$ref": "Creative" +}, +"response": { +"$ref": "Creative" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"insertionOrders": { +"methods": { +"bulkListInsertionOrderAssignedTargetingOptions": { +"description": "Lists assigned targeting options of an insertion order across targeting types.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}:bulkListInsertionOrderAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:bulkListInsertionOrderAssignedTargetingOptions", +"response": { +"$ref": "BulkListInsertionOrderAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new insertion order. Returns the newly created insertion order if successful.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders", +"httpMethod": "POST", +"id": "displayvideo.advertisers.insertionOrders.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders", +"request": { +"$ref": "InsertionOrder" +}, +"response": { +"$ref": "InsertionOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist. The insertion order should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.insertionOrders.delete", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "The ID of the insertion order to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.get", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", +"response": { +"$ref": "InsertionOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists insertion orders in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, insertion orders with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list insertion orders for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by insertion order fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All insertion orders under a campaign: `campaignId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` insertion orders under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All insertion orders with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All insertion orders with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * \"displayName\" (default) * \"entityStatus\" * \"updateTime\" The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrders` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders", +"response": { +"$ref": "ListInsertionOrdersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing insertion order. Returns the updated insertion order if successful.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.insertionOrders.patch", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Output only. The unique ID of the insertion order. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", +"request": { +"$ref": "InsertionOrder" +}, +"response": { +"$ref": "InsertionOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option assigned to an insertion order.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"insertionOrderId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this insertion order that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to an insertion order.", +"flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"insertionOrderId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListInsertionOrderAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"invoices": { +"methods": { +"list": { +"description": "Lists invoices posted for an advertiser in a given month. Invoices generated by billing profiles with a \"Partner\" invoice level are not retrievable through this method.", +"flatPath": "v1/advertisers/{advertisersId}/invoices", +"httpMethod": "GET", +"id": "displayvideo.advertisers.invoices.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list invoices for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"issueMonth": { +"description": "The month to list the invoices for. If not set, the request will retrieve invoices for the previous month. Must be in the format YYYYMM.", +"location": "query", +"type": "string" +}, +"loiSapinInvoiceType": { +"description": "Select type of invoice to retrieve for Loi Sapin advertisers. Only applicable to Loi Sapin advertisers. Will be ignored otherwise.", +"enum": [ +"LOI_SAPIN_INVOICE_TYPE_UNSPECIFIED", +"LOI_SAPIN_INVOICE_TYPE_MEDIA", +"LOI_SAPIN_INVOICE_TYPE_PLATFORM" +], +"enumDescriptions": [ +"Value is not specified.", +"Invoices with Media cost.", +"Invoices with Platform fee." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInvoices` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/invoices", +"response": { +"$ref": "ListInvoicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"lookupInvoiceCurrency": { +"description": "Retrieves the invoice currency used by an advertiser in a given month.", +"flatPath": "v1/advertisers/{advertisersId}/invoices:lookupInvoiceCurrency", +"httpMethod": "GET", +"id": "displayvideo.advertisers.invoices.lookupInvoiceCurrency", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to lookup currency for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"invoiceMonth": { +"description": "Month for which the currency is needed. If not set, the request will return existing currency settings for the advertiser. Must be in the format YYYYMM.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/invoices:lookupInvoiceCurrency", +"response": { +"$ref": "LookupInvoiceCurrencyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +} +} +}, +"lineItems": { +"methods": { +"bulkEditLineItemAssignedTargetingOptions": { +"description": "Bulk edits targeting options under a single line item. The operation will delete the assigned targeting options provided in BulkEditLineItemAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditLineItemAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkEditLineItemAssignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option will belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkEditLineItemAssignedTargetingOptions", +"request": { +"$ref": "BulkEditLineItemAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditLineItemAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"bulkListLineItemAssignedTargetingOptions": { +"description": "Lists assigned targeting options of a line item across targeting types.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkListLineItemAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkListLineItemAssignedTargetingOptions", +"response": { +"$ref": "BulkListLineItemAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new line item. Returns the newly created line item if successful. YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems", +"request": { +"$ref": "LineItem" +}, +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.lineItems.delete", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "The ID of the line item to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"generateDefault": { +"description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems:generateDefault", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.generateDefault", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems:generateDefault", +"request": { +"$ref": "GenerateDefaultLineItemRequest" +}, +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a line item.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.get", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}", +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists line items in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, line items with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list line items for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by line item fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `insertionOrderId` * `lineItemId` * `lineItemType` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All line items under an insertion order: `insertionOrderId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` and `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line items under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND lineItemType=\"LINE_ITEM_TYPE_DISPLAY_DEFAULT\"` * All line items with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All line items with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItems` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems", +"response": { +"$ref": "ListLineItemsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.lineItems.patch", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Output only. The unique ID of the line item. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}", +"request": { +"$ref": "LineItem" +}, +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option will belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to a line item.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * `TARGETING_TYPE_YOUTUBE_VIDEO` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items)", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a line item.", +"flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * `TARGETING_TYPE_YOUTUBE_VIDEO` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items)", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListLineItemAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"locationLists": { +"methods": { +"create": { +"description": "Creates a new location list. Returns the newly created location list if successful.", +"flatPath": "v1/advertisers/{advertisersId}/locationLists", +"httpMethod": "POST", +"id": "displayvideo.advertisers.locationLists.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/locationLists", +"request": { +"$ref": "LocationList" +}, +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a location list.", +"flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.locationLists.get", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched location list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/locationLists/{+locationListId}", +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists location lists based on a given advertiser id.", +"flatPath": "v1/advertisers/{advertisersId}/locationLists", +"httpMethod": "GET", +"id": "displayvideo.advertisers.locationLists.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched location lists belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by location list fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `locationType` Examples: * All regional location list: `locationType=\"TARGETING_LOCATION_TYPE_REGIONAL\"` * All proximity location list: `locationType=\"TARGETING_LOCATION_TYPE_PROXIMITY\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `locationListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLocationLists` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/locationLists", +"response": { +"$ref": "ListLocationListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a location list. Returns the updated location list if successful.", +"flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.locationLists.patch", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location lists belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Output only. The unique ID of the location list. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/locationLists/{locationListId}", +"request": { +"$ref": "LocationList" +}, +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"assignedLocations": { +"methods": { +"bulkEdit": { +"description": "Bulk edits multiple assignments between locations and a single location list. The operation will delete the assigned locations provided in deletedAssignedLocations and then create the assigned locations provided in createdAssignedLocations.", +"flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListsId}/assignedLocations:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to which these assignments are assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit", +"request": { +"$ref": "BulkEditAssignedLocationsRequest" +}, +"response": { +"$ref": "BulkEditAssignedLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates an assignment between a location and a location list.", +"flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"httpMethod": "POST", +"id": "displayvideo.advertisers.locationLists.assignedLocations.create", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list for which the assignment will be created.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"request": { +"$ref": "AssignedLocation" +}, +"response": { +"$ref": "AssignedLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes the assignment between a location and a location list.", +"flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{assignedLocationsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.locationLists.assignedLocations.delete", +"parameterOrder": [ +"advertiserId", +"locationListId", +"assignedLocationId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"assignedLocationId": { +"description": "Required. The ID of the assigned location to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to which this assignment is assigned.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists locations assigned to a location list.", +"flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"httpMethod": "GET", +"id": "displayvideo.advertisers.locationLists.assignedLocations.list", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by location list assignment fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedLocationId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to which these assignments are assigned.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedLocationId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedLocationId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedLocations` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"response": { +"$ref": "ListAssignedLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"manualTriggers": { +"methods": { +"activate": { +"description": "Activates a manual trigger. Each activation of the manual trigger must be at least 5 minutes apart, otherwise an error will be returned. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:activate", +"httpMethod": "POST", +"id": "displayvideo.advertisers.manualTriggers.activate", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser that the manual trigger belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. The ID of the manual trigger to activate.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate", +"request": { +"$ref": "ActivateManualTriggerRequest" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new manual trigger. Returns the newly created manual trigger if successful. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v1/advertisers/{advertisersId}/manualTriggers", +"httpMethod": "POST", +"id": "displayvideo.advertisers.manualTriggers.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/manualTriggers", +"request": { +"$ref": "ManualTrigger" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"deactivate": { +"description": "Deactivates a manual trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:deactivate", +"httpMethod": "POST", +"id": "displayvideo.advertisers.manualTriggers.deactivate", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser that the manual trigger belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. The ID of the manual trigger to deactivate.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate", +"request": { +"$ref": "DeactivateManualTriggerRequest" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a manual trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.manualTriggers.get", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this manual trigger belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. The ID of the manual trigger to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}", +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists manual triggers that are accessible to the current user for a given advertiser ID. The order is defined by the order_by parameter. A single advertiser_id is required. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v1/advertisers/{advertisersId}/manualTriggers", +"httpMethod": "GET", +"id": "displayvideo.advertisers.manualTriggers.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser that the fetched manual triggers belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by manual trigger fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `displayName` * `state` Examples: * All active manual triggers under an advertiser: `state=\"ACTIVE\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `state` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListManualTriggers` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/manualTriggers", +"response": { +"$ref": "ListManualTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a manual trigger. Returns the updated manual trigger if successful. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.manualTriggers.patch", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Output only. The unique ID of the manual trigger.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}", +"request": { +"$ref": "ManualTrigger" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"negativeKeywordLists": { +"methods": { +"create": { +"description": "Creates a new negative keyword list. Returns the newly created negative keyword list if successful.", +"flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the negative keyword list will belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/negativeKeywordLists", +"request": { +"$ref": "NegativeKeywordList" +}, +"response": { +"$ref": "NegativeKeywordList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a negative keyword list given an advertiser ID and a negative keyword list ID.", +"flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.negativeKeywordLists.delete", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the negative keyword list to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a negative keyword list given an advertiser ID and a negative keyword list ID.", +"flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.negativeKeywordLists.get", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the negative keyword list to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}", +"response": { +"$ref": "NegativeKeywordList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists negative keyword lists based on a given advertiser id.", +"flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists", +"httpMethod": "GET", +"id": "displayvideo.advertisers.negativeKeywordLists.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword lists belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywordLists` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/negativeKeywordLists", +"response": { +"$ref": "ListNegativeKeywordListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a negative keyword list. Returns the updated negative keyword list if successful.", +"flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.negativeKeywordLists.patch", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Output only. The unique ID of the negative keyword list. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}", +"request": { +"$ref": "NegativeKeywordList" +}, +"response": { +"$ref": "NegativeKeywordList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"negativeKeywords": { +"methods": { +"bulkEdit": { +"description": "Bulk edits negative keywords in a single negative keyword list. The operation will delete the negative keywords provided in BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then create the negative keywords provided in BulkEditNegativeKeywordsRequest.created_negative_keywords. This operation is guaranteed to be atomic and will never result in a partial success or partial failure.", +"flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit", +"request": { +"$ref": "BulkEditNegativeKeywordsRequest" +}, +"response": { +"$ref": "BulkEditNegativeKeywordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a negative keyword in a negative keyword list.", +"flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list in which the negative keyword will be created.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords", +"request": { +"$ref": "NegativeKeyword" +}, +"response": { +"$ref": "NegativeKeyword" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a negative keyword from a negative keyword list.", +"flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords/{negativeKeywordsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId", +"keywordValue" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"keywordValue": { +"description": "Required. The keyword value of the negative keyword to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the negative keyword belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists negative keywords in a negative keyword list.", +"flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords", +"httpMethod": "GET", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by negative keyword fields. Supported syntax: * Filter expressions for negative keywords can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `keywordValue` Examples: * All negative keywords for which the keyword value contains \"google\": `keywordValue : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the requested negative keywords belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `keywordValue` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `keywordValue desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `1000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywords` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords", +"response": { +"$ref": "ListNegativeKeywordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"replace": { +"description": "Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keyword list with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.", +"flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:replace", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace", +"request": { +"$ref": "ReplaceNegativeKeywordsRequest" +}, +"response": { +"$ref": "ReplaceNegativeKeywordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to an advertiser. Returns the assigned targeting option if successful.", +"flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"advertiserId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from an advertiser.", +"flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"advertiserId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to an advertiser.", +"flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this advertiser that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to an advertiser.", +"flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` with ID 123456: `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"combinedAudiences": { +"methods": { +"get": { +"description": "Gets a combined audience.", +"flatPath": "v1/combinedAudiences/{combinedAudiencesId}", +"httpMethod": "GET", +"id": "displayvideo.combinedAudiences.get", +"parameterOrder": [ +"combinedAudienceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched combined audience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"combinedAudienceId": { +"description": "Required. The ID of the combined audience to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched combined audience.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/combinedAudiences/{+combinedAudienceId}", +"response": { +"$ref": "CombinedAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists combined audiences. The order is defined by the order_by parameter.", +"flatPath": "v1/combinedAudiences", +"httpMethod": "GET", +"id": "displayvideo.combinedAudiences.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched combined audiences.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by combined audience fields. Supported syntax: * Filter expressions for combined audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All combined audiences for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `combinedAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCombinedAudiences` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched combined audiences.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/combinedAudiences", +"response": { +"$ref": "ListCombinedAudiencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"customBiddingAlgorithms": { +"methods": { +"create": { +"description": "Creates a new custom bidding algorithm. Returns the newly created custom bidding algorithm if successful.", +"flatPath": "v1/customBiddingAlgorithms", +"httpMethod": "POST", +"id": "displayvideo.customBiddingAlgorithms.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/customBiddingAlgorithms", +"request": { +"$ref": "CustomBiddingAlgorithm" +}, +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a custom bidding algorithm.", +"flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.get", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}", +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists custom bidding algorithms that are accessible to the current user and can be used in bidding stratgies. The order is defined by the order_by parameter.", +"flatPath": "v1/customBiddingAlgorithms", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 advertiser that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by custom bidding algorithm fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND`. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `customBiddingAlgorithmType` field must use the `EQUALS (=)` operator. * The `displayName` field must use the `HAS (:)` operator. Supported fields: * `customBiddingAlgorithmType` * `displayName` Examples: * All custom bidding algorithms for which the display name contains \"politics\": `displayName:\"politics\"`. * All custom bidding algorithms for which the type is \"SCRIPT_BASED\": `customBiddingAlgorithmType=SCRIPT_BASED` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingAlgorithms` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms", +"response": { +"$ref": "ListCustomBiddingAlgorithmsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing custom bidding algorithm. Returns the updated custom bidding algorithm if successful.", +"flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}", +"httpMethod": "PATCH", +"id": "displayvideo.customBiddingAlgorithms.patch", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}", +"request": { +"$ref": "CustomBiddingAlgorithm" +}, +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"uploadScript": { +"description": "Creates a custom bidding script reference object for a script file. The resulting reference object provides a resource path to which the script file should be uploaded. This reference object should be included in when creating a new custom bidding script object.", +"flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}:uploadScript", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.uploadScript", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}:uploadScript", +"response": { +"$ref": "CustomBiddingScriptRef" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"scripts": { +"methods": { +"create": { +"description": "Creates a new custom bidding script. Returns the newly created script if successful.", +"flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts", +"httpMethod": "POST", +"id": "displayvideo.customBiddingAlgorithms.scripts.create", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm that owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", +"request": { +"$ref": "CustomBiddingScript" +}, +"response": { +"$ref": "CustomBiddingScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a custom bidding script.", +"flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts/{scriptsId}", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.scripts.get", +"parameterOrder": [ +"customBiddingAlgorithmId", +"customBiddingScriptId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"customBiddingScriptId": { +"description": "Required. The ID of the custom bidding script to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts/{+customBiddingScriptId}", +"response": { +"$ref": "CustomBiddingScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists custom bidding scripts that belong to the given algorithm. The order is defined by the order_by parameter.", +"flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.scripts.list", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `createTime desc` (default) The default sorting order is descending. To specify ascending order for a field, the suffix \"desc\" should be removed. Example: `createTime`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingScripts` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", +"response": { +"$ref": "ListCustomBiddingScriptsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"customLists": { +"methods": { +"get": { +"description": "Gets a custom list.", +"flatPath": "v1/customLists/{customListsId}", +"httpMethod": "GET", +"id": "displayvideo.customLists.get", +"parameterOrder": [ +"customListId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 advertiser that has access to the fetched custom lists.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customListId": { +"description": "Required. The ID of the custom list to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/customLists/{+customListId}", +"response": { +"$ref": "CustomList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists custom lists. The order is defined by the order_by parameter.", +"flatPath": "v1/customLists", +"httpMethod": "GET", +"id": "displayvideo.customLists.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 advertiser that has access to the fetched custom lists.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by custom list fields. Supported syntax: * Filter expressions for custom lists can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All custom lists for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `customListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomLists` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/customLists", +"response": { +"$ref": "ListCustomListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"firstAndThirdPartyAudiences": { +"methods": { +"create": { +"description": "Creates a FirstAndThirdPartyAudience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"flatPath": "v1/firstAndThirdPartyAudiences", +"httpMethod": "POST", +"id": "displayvideo.firstAndThirdPartyAudiences.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser under whom the FirstAndThirdPartyAudience will be created.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/firstAndThirdPartyAudiences", +"request": { +"$ref": "FirstAndThirdPartyAudience" +}, +"response": { +"$ref": "FirstAndThirdPartyAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editCustomerMatchMembers": { +"description": "Updates the member list of a Customer Match audience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}:editCustomerMatchMembers", +"httpMethod": "POST", +"id": "displayvideo.firstAndThirdPartyAudiences.editCustomerMatchMembers", +"parameterOrder": [ +"firstAndThirdPartyAudienceId" +], +"parameters": { +"firstAndThirdPartyAudienceId": { +"description": "Required. The ID of the Customer Match FirstAndThirdPartyAudience whose members will be edited.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}:editCustomerMatchMembers", +"request": { +"$ref": "EditCustomerMatchMembersRequest" +}, +"response": { +"$ref": "EditCustomerMatchMembersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a first and third party audience.", +"flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}", +"httpMethod": "GET", +"id": "displayvideo.firstAndThirdPartyAudiences.get", +"parameterOrder": [ +"firstAndThirdPartyAudienceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched first and third party audience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"firstAndThirdPartyAudienceId": { +"description": "Required. The ID of the first and third party audience to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched first and third party audience.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}", +"response": { +"$ref": "FirstAndThirdPartyAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists first and third party audiences. The order is defined by the order_by parameter.", +"flatPath": "v1/firstAndThirdPartyAudiences", +"httpMethod": "GET", +"id": "displayvideo.firstAndThirdPartyAudiences.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched first and third party audiences.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by first and third party audience fields. Supported syntax: * Filter expressions for first and third party audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All first and third party audiences for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `firstAndThirdPartyAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFirstAndThirdPartyAudiences` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched first and third party audiences.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/firstAndThirdPartyAudiences", +"response": { +"$ref": "ListFirstAndThirdPartyAudiencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing FirstAndThirdPartyAudience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}", +"httpMethod": "PATCH", +"id": "displayvideo.firstAndThirdPartyAudiences.patch", +"parameterOrder": [ +"firstAndThirdPartyAudienceId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the owner advertiser of the updated FirstAndThirdPartyAudience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"firstAndThirdPartyAudienceId": { +"description": "Output only. The unique ID of the first and third party audience. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update. Updates are only supported for the following fields: * `displayName` * `description` * `membershipDurationDays`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}", +"request": { +"$ref": "FirstAndThirdPartyAudience" +}, +"response": { +"$ref": "FirstAndThirdPartyAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"floodlightGroups": { +"methods": { +"get": { +"description": "Gets a Floodlight group.", +"flatPath": "v1/floodlightGroups/{floodlightGroupsId}", +"httpMethod": "GET", +"id": "displayvideo.floodlightGroups.get", +"parameterOrder": [ +"floodlightGroupId" +], +"parameters": { +"floodlightGroupId": { +"description": "Required. The ID of the Floodlight group to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The partner context by which the Floodlight group is being accessed.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/floodlightGroups/{+floodlightGroupId}", +"response": { +"$ref": "FloodlightGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing Floodlight group. Returns the updated Floodlight group if successful.", +"flatPath": "v1/floodlightGroups/{floodlightGroupId}", +"httpMethod": "PATCH", +"id": "displayvideo.floodlightGroups.patch", +"parameterOrder": [ +"floodlightGroupId" +], +"parameters": { +"floodlightGroupId": { +"description": "Output only. The unique ID of the Floodlight group. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The partner context by which the Floodlight group is being accessed.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/floodlightGroups/{floodlightGroupId}", +"request": { +"$ref": "FloodlightGroup" +}, +"response": { +"$ref": "FloodlightGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"googleAudiences": { +"methods": { +"get": { +"description": "Gets a Google audience.", +"flatPath": "v1/googleAudiences/{googleAudiencesId}", +"httpMethod": "GET", +"id": "displayvideo.googleAudiences.get", +"parameterOrder": [ +"googleAudienceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched Google audience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"googleAudienceId": { +"description": "Required. The ID of the Google audience to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched Google audience.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/googleAudiences/{+googleAudienceId}", +"response": { +"$ref": "GoogleAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists Google audiences. The order is defined by the order_by parameter.", +"flatPath": "v1/googleAudiences", +"httpMethod": "GET", +"id": "displayvideo.googleAudiences.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched Google audiences.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by Google audience fields. Supported syntax: * Filter expressions for Google audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All Google audiences for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `googleAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGoogleAudiences` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched Google audiences.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/googleAudiences", +"response": { +"$ref": "ListGoogleAudiencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"guaranteedOrders": { +"methods": { +"create": { +"description": "Creates a new guaranteed order. Returns the newly created guaranteed order if successful.", +"flatPath": "v1/guaranteedOrders", +"httpMethod": "POST", +"id": "displayvideo.guaranteedOrders.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/guaranteedOrders", +"request": { +"$ref": "GuaranteedOrder" +}, +"response": { +"$ref": "GuaranteedOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editGuaranteedOrderReadAccessors": { +"description": "Edits read advertisers of a guaranteed order.", +"flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}:editGuaranteedOrderReadAccessors", +"httpMethod": "POST", +"id": "displayvideo.guaranteedOrders.editGuaranteedOrderReadAccessors", +"parameterOrder": [ +"guaranteedOrderId" +], +"parameters": { +"guaranteedOrderId": { +"description": "Required. The ID of the guaranteed order to edit. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/guaranteedOrders/{+guaranteedOrderId}:editGuaranteedOrderReadAccessors", +"request": { +"$ref": "EditGuaranteedOrderReadAccessorsRequest" +}, +"response": { +"$ref": "EditGuaranteedOrderReadAccessorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a guaranteed order.", +"flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}", +"httpMethod": "GET", +"id": "displayvideo.guaranteedOrders.get", +"parameterOrder": [ +"guaranteedOrderId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +}, +"guaranteedOrderId": { +"description": "Required. The ID of the guaranteed order to fetch. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/guaranteedOrders/{+guaranteedOrderId}", +"response": { +"$ref": "GuaranteedOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists guaranteed orders that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, guaranteed orders with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v1/guaranteedOrders", +"httpMethod": "GET", +"id": "displayvideo.guaranteedOrders.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by guaranteed order fields. * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `guaranteed_order_id` * `exchange` * `display_name` * `status.entityStatus` Examples: * All active guaranteed orders: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Guaranteed orders belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGuaranteedOrders` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/guaranteedOrders", +"response": { +"$ref": "ListGuaranteedOrdersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing guaranteed order. Returns the updated guaranteed order if successful.", +"flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}", +"httpMethod": "PATCH", +"id": "displayvideo.guaranteedOrders.patch", +"parameterOrder": [ +"guaranteedOrderId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"guaranteedOrderId": { +"description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/guaranteedOrders/{+guaranteedOrderId}", +"request": { +"$ref": "GuaranteedOrder" +}, +"response": { +"$ref": "GuaranteedOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"inventorySourceGroups": { +"methods": { +"create": { +"description": "Creates a new inventory source group. Returns the newly created inventory source group if successful.", +"flatPath": "v1/inventorySourceGroups", +"httpMethod": "POST", +"id": "displayvideo.inventorySourceGroups.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the inventory source group. The parent partner will not have access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner will have write access to this group. Only advertisers to which this group is explicitly shared will have read access to this group.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups", +"request": { +"$ref": "InventorySourceGroup" +}, +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an inventory source group.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}", +"httpMethod": "DELETE", +"id": "displayvideo.inventorySourceGroups.delete", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{+inventorySourceGroupId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an inventory source group.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}", +"httpMethod": "GET", +"id": "displayvideo.inventorySourceGroups.get", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the inventory source group. A partner cannot access an advertiser-owned inventory source group.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{+inventorySourceGroupId}", +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists inventory source groups that are accessible to the current user. The order is defined by the order_by parameter.", +"flatPath": "v1/inventorySourceGroups", +"httpMethod": "GET", +"id": "displayvideo.inventorySourceGroups.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by inventory source group fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `inventorySourceGroupId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `inventorySourceGroupId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the inventory source group. A partner cannot access advertiser-owned inventory source groups.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups", +"response": { +"$ref": "ListInventorySourceGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an inventory source group. Returns the updated inventory source group if successful.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupId}", +"httpMethod": "PATCH", +"id": "displayvideo.inventorySourceGroups.patch", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Output only. The unique ID of the inventory source group. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{inventorySourceGroupId}", +"request": { +"$ref": "InventorySourceGroup" +}, +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"assignedInventorySources": { +"methods": { +"bulkEdit": { +"description": "Bulk edits multiple assignments between inventory sources and a single inventory source group. The operation will delete the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sources and then create the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sources.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which the assignments are assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit", +"request": { +"$ref": "BulkEditAssignedInventorySourcesRequest" +}, +"response": { +"$ref": "BulkEditAssignedInventorySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates an assignment between an inventory source and an inventory source group.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources", +"httpMethod": "POST", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.create", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent inventory source group. The parent partner will not have access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which the assignment will be assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent inventory source group. Only this partner will have write access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources", +"request": { +"$ref": "AssignedInventorySource" +}, +"response": { +"$ref": "AssignedInventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes the assignment between an inventory source and an inventory source group.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources/{assignedInventorySourcesId}", +"httpMethod": "DELETE", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.delete", +"parameterOrder": [ +"inventorySourceGroupId", +"assignedInventorySourceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"assignedInventorySourceId": { +"description": "Required. The ID of the assigned inventory source to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which this assignment is assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent inventory source group. Only this partner has write access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists inventory sources assigned to an inventory source group.", +"flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources", +"httpMethod": "GET", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.list", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the assignment. If the parent inventory source group is partner-owned, only advertisers to which the parent group is explicitly shared can access the assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedInventorySourceId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which these assignments are assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedInventorySourceId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedInventorySourceId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedInventorySources` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the assignment. If the parent inventory source group is advertiser-owned, the assignment cannot be accessed via a partner.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources", +"response": { +"$ref": "ListAssignedInventorySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"inventorySources": { +"methods": { +"create": { +"description": "Creates a new inventory source. Returns the newly created inventory source if successful.", +"flatPath": "v1/inventorySources", +"httpMethod": "POST", +"id": "displayvideo.inventorySources.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySources", +"request": { +"$ref": "InventorySource" +}, +"response": { +"$ref": "InventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editInventorySourceReadWriteAccessors": { +"description": "Edits read/write accessors of an inventory source. Returns the updated read_write_accessors for the inventory source.", +"flatPath": "v1/inventorySources/{inventorySourcesId}:editInventorySourceReadWriteAccessors", +"httpMethod": "POST", +"id": "displayvideo.inventorySources.editInventorySourceReadWriteAccessors", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"inventorySourceId": { +"description": "Required. The ID of inventory source to update.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/inventorySources/{+inventorySourceId}:editInventorySourceReadWriteAccessors", +"request": { +"$ref": "EditInventorySourceReadWriteAccessorsRequest" +}, +"response": { +"$ref": "InventorySourceAccessors" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an inventory source.", +"flatPath": "v1/inventorySources/{inventorySourcesId}", +"httpMethod": "GET", +"id": "displayvideo.inventorySources.get", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"inventorySourceId": { +"description": "Required. The ID of the inventory source to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the DV360 partner to which the fetched inventory source is permissioned.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySources/{+inventorySourceId}", +"response": { +"$ref": "InventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists inventory sources that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, inventory sources with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v1/inventorySources", +"httpMethod": "GET", +"id": "displayvideo.inventorySources.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `status.entityStatus` * `commitment` * `deliveryMethod` * `rateDetails.rateType` * `exchange` Examples: * All active inventory sources: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Inventory sources belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the inventory source.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySources", +"response": { +"$ref": "ListInventorySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing inventory source. Returns the updated inventory source if successful.", +"flatPath": "v1/inventorySources/{inventorySourcesId}", +"httpMethod": "PATCH", +"id": "displayvideo.inventorySources.patch", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceId": { +"description": "Output only. The unique ID of the inventory source. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/inventorySources/{+inventorySourceId}", +"request": { +"$ref": "InventorySource" +}, +"response": { +"$ref": "InventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"media": { +"methods": { +"download": { +"description": "Downloads media. Download is supported on the URI `/download/{resource_name=**}?alt=media.` **Note**: Download requests will not be successful without including `alt=media` query string.", +"flatPath": "download/{downloadId}", +"httpMethod": "GET", +"id": "displayvideo.media.download", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "download/{+resourceName}", +"response": { +"$ref": "GoogleBytestreamMedia" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/doubleclickbidmanager" +], +"supportsMediaDownload": true +}, +"upload": { +"description": "Uploads media. Upload is supported on the URI `/upload/media/{resource_name=**}?upload_type=media.` **Note**: Upload requests will not be successful without including `upload_type=media` query string.", +"flatPath": "media/{mediaId}", +"httpMethod": "POST", +"id": "displayvideo.media.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/media/{+resourceName}" +} +} +}, +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "media/{+resourceName}", +"request": { +"$ref": "GoogleBytestreamMedia" +}, +"response": { +"$ref": "GoogleBytestreamMedia" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/doubleclickbidmanager" +], +"supportsMediaUpload": true +} +} +}, +"partners": { +"methods": { +"bulkEditPartnerAssignedTargetingOptions": { +"description": "Bulk edits targeting options under a single partner. The operation will delete the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and then create the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.createRequests .", +"flatPath": "v1/partners/{partnersId}:bulkEditPartnerAssignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}:bulkEditPartnerAssignedTargetingOptions", +"request": { +"$ref": "BulkEditPartnerAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditPartnerAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a partner.", +"flatPath": "v1/partners/{partnersId}", +"httpMethod": "GET", +"id": "displayvideo.partners.get", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}", +"response": { +"$ref": "Partner" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists partners that are accessible to the current user. The order is defined by the order_by parameter.", +"flatPath": "v1/partners", +"httpMethod": "GET", +"id": "displayvideo.partners.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Allows filtering by partner fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `entityStatus` Examples: * All active partners: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartners` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/partners", +"response": { +"$ref": "ListPartnersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"channels": { +"methods": { +"create": { +"description": "Creates a new channel. Returns the newly created channel if successful.", +"flatPath": "v1/partners/{partnersId}/channels", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.create", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/channels", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a channel for a partner or advertiser.", +"flatPath": "v1/partners/{partnersId}/channels/{channelsId}", +"httpMethod": "GET", +"id": "displayvideo.partners.channels.get", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the fetched channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the channel to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the fetched channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/channels/{+channelId}", +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists channels for a partner or advertiser.", +"flatPath": "v1/partners/{partnersId}/channels", +"httpMethod": "GET", +"id": "displayvideo.partners.channels.list", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the channels.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the channels.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/channels", +"response": { +"$ref": "ListChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a channel. Returns the updated channel if successful.", +"flatPath": "v1/partners/{partnersId}/channels/{channelId}", +"httpMethod": "PATCH", +"id": "displayvideo.partners.channels.patch", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Output only. The unique ID of the channel. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/channels/{channelId}", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"sites": { +"methods": { +"bulkEdit": { +"description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.", +"flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.sites.bulkEdit", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"channelId": { +"description": "Required. The ID of the parent channel to which the sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit", +"request": { +"$ref": "BulkEditSitesRequest" +}, +"response": { +"$ref": "BulkEditSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a site in a channel.", +"flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.sites.create", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel in which the site will be created.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{partnerId}/channels/{+channelId}/sites", +"request": { +"$ref": "Site" +}, +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a site from a channel.", +"flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites/{sitesId}", +"httpMethod": "DELETE", +"id": "displayvideo.partners.channels.sites.delete", +"parameterOrder": [ +"partnerId", +"channelId", +"urlOrAppId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the site belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"urlOrAppId": { +"description": "Required. The URL or app ID of the site to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists sites in a channel.", +"flatPath": "v1/partners/{partnersId}/channels/{channelsId}/sites", +"httpMethod": "GET", +"id": "displayvideo.partners.channels.sites.list", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the requested sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site retrieval can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/channels/{+channelId}/sites", +"response": { +"$ref": "ListSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"replace": { +"description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", +"flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:replace", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.sites.replace", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"channelId": { +"description": "Required. The ID of the parent channel whose sites will be replaced.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{partnerId}/channels/{+channelId}/sites:replace", +"request": { +"$ref": "ReplaceSitesRequest" +}, +"response": { +"$ref": "ReplaceSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to a partner. Returns the assigned targeting option if successful.", +"flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"partnerId", +"targetingType" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from a partner.", +"flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"partnerId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to a partner.", +"flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"partnerId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this partner that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a partner.", +"flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"partnerId", +"targetingType" +], +"parameters": { +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` resource with ID 123456: `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartnerAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListPartnerAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"sdfdownloadtasks": { +"methods": { +"create": { +"description": "Creates an SDF Download Task. Returns an Operation. An SDF Download Task is a long-running, asynchronous operation. The metadata type of this operation is SdfDownloadTaskMetadata. If the request is successful, the response type of the operation is SdfDownloadTask. The response will not include the download files, which must be retrieved with media.download. The state of operation can be retrieved with sdfdownloadtask.operations.get. Any errors can be found in the error.message. Note that error.details is expected to be empty.", +"flatPath": "v1/sdfdownloadtasks", +"httpMethod": "POST", +"id": "displayvideo.sdfdownloadtasks.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/sdfdownloadtasks", +"request": { +"$ref": "CreateSdfDownloadTaskRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of an asynchronous SDF download task operation. Clients should poll this method at intervals of 30 seconds.", +"flatPath": "v1/sdfdownloadtasks/operations/{operationsId}", +"httpMethod": "GET", +"id": "displayvideo.sdfdownloadtasks.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^sdfdownloadtasks/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +} +} +} +} +}, +"targetingTypes": { +"resources": { +"targetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option.", +"flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions/{targetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.targetingTypes.targetingOptions.get", +"parameterOrder": [ +"targetingType", +"targetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The Advertiser this request is being made in the context of.", +"format": "int64", +"location": "query", +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The ID of the of targeting option to retrieve.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. The type of targeting option to retrieve. Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}", +"response": { +"$ref": "TargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists targeting options of a given type.", +"flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions", +"httpMethod": "GET", +"id": "displayvideo.targetingTypes.targetingOptions.list", +"parameterOrder": [ +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The Advertiser this request is being made in the context of.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `carrierAndIspDetails.type` * `geoRegionDetails.geoRegionType` * `targetingOptionId` Examples: * All `GEO REGION` targeting options that belong to sub type `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`: `geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_COUNTRY\" OR geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_STATE\"` * All `CARRIER AND ISP` targeting options that belong to sub type `CARRIER_AND_ISP_TYPE_CARRIER`: `carrierAndIspDetails.type=\"CARRIER_AND_ISP_TYPE_CARRIER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. The type of targeting option to be listed. Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/targetingTypes/{+targetingType}/targetingOptions", +"response": { +"$ref": "ListTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"search": { +"description": "Searches for targeting options of a given type based on the given search terms.", +"flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions:search", +"httpMethod": "POST", +"id": "displayvideo.targetingTypes.targetingOptions.search", +"parameterOrder": [ +"targetingType" +], +"parameters": { +"targetingType": { +"description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_BUSINESS_CHAIN`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/targetingTypes/{+targetingType}/targetingOptions:search", +"request": { +"$ref": "SearchTargetingOptionsRequest" +}, +"response": { +"$ref": "SearchTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"users": { +"methods": { +"bulkEditAssignedUserRoles": { +"description": "Bulk edits user roles for a user. The operation will delete the assigned user roles provided in BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then assign the user roles provided in BulkEditAssignedUserRolesRequest.createdAssignedUserRoles. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v1/users/{usersId}:bulkEditAssignedUserRoles", +"httpMethod": "POST", +"id": "displayvideo.users.bulkEditAssignedUserRoles", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Required. The ID of the user to which the assigned user roles belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/users/{+userId}:bulkEditAssignedUserRoles", +"request": { +"$ref": "BulkEditAssignedUserRolesRequest" +}, +"response": { +"$ref": "BulkEditAssignedUserRolesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"create": { +"description": "Creates a new user. Returns the newly created user if successful. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v1/users", +"httpMethod": "POST", +"id": "displayvideo.users.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/users", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"delete": { +"description": "Deletes a user. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v1/users/{usersId}", +"httpMethod": "DELETE", +"id": "displayvideo.users.delete", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Required. The ID of the user to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/users/{+userId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"get": { +"description": "Gets a user. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v1/users/{usersId}", +"httpMethod": "GET", +"id": "displayvideo.users.get", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Required. The ID of the user to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/users/{+userId}", +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"list": { +"description": "Lists users that are accessible to the current user. If two users have user roles on the same partner or advertiser, they can access each other. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v1/users", +"httpMethod": "GET", +"id": "displayvideo.users.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Allows filtering by user fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `budget.budget_segments.date_range.end_date` field must use the `LESS THAN (<)` operator. * The `displayName and `email` field must use the `HAS (:)` operator. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `assignedUserRole.advertiserId` * `assignedUserRole.entityType` * This is synthetic field of `AssignedUserRole` used for filtering. Identifies the type of entity to which the user role is assigned. Valid values are `Partner` and `Advertiser`. * `assignedUserRole.parentPartnerId` * This is a synthetic field of `AssignedUserRole` used for filtering. Identifies the parent partner of the entity to which the user role is assigned. * `assignedUserRole.partnerId` * `assignedUserRole.userRole` * `displayName` * `email` Examples: * The user with `displayName` containing \"foo\": `displayName:\"foo\"` * The user with `email` containing \"bar\": `email:\"bar\"` * All users with standard user roles: `assignedUserRole.userRole=\"STANDARD\"` * All users with user roles for partner 123: `assignedUserRole.partnerId=\"123\"` * All users with user roles for advertiser 123: `assignedUserRole.advertiserId=\"123\"` * All users with partner level user roles: `entityType=\"PARTNER\"` * All users with user roles for partner 123 and advertisers under partner 123: `parentPartnerId=\"123\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListUsers` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/users", +"response": { +"$ref": "ListUsersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"patch": { +"description": "Updates an existing user. Returns the updated user if successful. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v1/users/{usersId}", +"httpMethod": "PATCH", +"id": "displayvideo.users.patch", +"parameterOrder": [ +"userId" +], +"parameters": { +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"userId": { +"description": "Output only. The unique ID of the user. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/users/{+userId}", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +} +} +} +}, +"revision": "20240208", +"rootUrl": "https://displayvideo.googleapis.com/", +"schemas": { +"ActivateManualTriggerRequest": { +"description": "Request message for ManualTriggerService.ActivateManualTrigger.", +"id": "ActivateManualTriggerRequest", +"properties": {}, +"type": "object" +}, +"ActiveViewVideoViewabilityMetricConfig": { +"description": "Configuration for custom Active View video viewability metrics.", +"id": "ActiveViewVideoViewabilityMetricConfig", +"properties": { +"displayName": { +"description": "Required. The display name of the custom metric.", +"type": "string" +}, +"minimumDuration": { +"description": "The minimum visible video duration required (in seconds) in order for an impression to be recorded. You must specify minimum_duration, minimum_quartile or both. If both are specified, an impression meets the metric criteria if either requirement is met (whichever happens first).", +"enum": [ +"VIDEO_DURATION_UNSPECIFIED", +"VIDEO_DURATION_SECONDS_NONE", +"VIDEO_DURATION_SECONDS_0", +"VIDEO_DURATION_SECONDS_1", +"VIDEO_DURATION_SECONDS_2", +"VIDEO_DURATION_SECONDS_3", +"VIDEO_DURATION_SECONDS_4", +"VIDEO_DURATION_SECONDS_5", +"VIDEO_DURATION_SECONDS_6", +"VIDEO_DURATION_SECONDS_7", +"VIDEO_DURATION_SECONDS_8", +"VIDEO_DURATION_SECONDS_9", +"VIDEO_DURATION_SECONDS_10", +"VIDEO_DURATION_SECONDS_11", +"VIDEO_DURATION_SECONDS_12", +"VIDEO_DURATION_SECONDS_13", +"VIDEO_DURATION_SECONDS_14", +"VIDEO_DURATION_SECONDS_15", +"VIDEO_DURATION_SECONDS_30", +"VIDEO_DURATION_SECONDS_45", +"VIDEO_DURATION_SECONDS_60" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"No duration value.", +"0 seconds.", +"1 second.", +"2 seconds.", +"3 seconds.", +"4 seconds.", +"5 seconds.", +"6 seconds.", +"7 seconds.", +"8 seconds.", +"9 seconds.", +"10 seconds.", +"11 seconds.", +"12 seconds.", +"13 seconds.", +"14 seconds.", +"15 seconds.", +"30 seconds.", +"45 seconds.", +"60 seconds." +], +"type": "string" +}, +"minimumQuartile": { +"description": "The minimum visible video duration required, based on the video quartiles, in order for an impression to be recorded. You must specify minimum_duration, minimum_quartile or both. If both are specified, an impression meets the metric criteria if either requirement is met (whichever happens first).", +"enum": [ +"VIDEO_DURATION_QUARTILE_UNSPECIFIED", +"VIDEO_DURATION_QUARTILE_NONE", +"VIDEO_DURATION_QUARTILE_FIRST", +"VIDEO_DURATION_QUARTILE_SECOND", +"VIDEO_DURATION_QUARTILE_THIRD", +"VIDEO_DURATION_QUARTILE_FOURTH" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"No quartile value.", +"First quartile.", +"Second quartile (midpoint).", +"Third quartile.", +"Fourth quartile (completion)." +], +"type": "string" +}, +"minimumViewability": { +"description": "Required. The minimum percentage of the video ad's pixels visible on the screen in order for an impression to be recorded.", +"enum": [ +"VIEWABILITY_PERCENT_UNSPECIFIED", +"VIEWABILITY_PERCENT_0", +"VIEWABILITY_PERCENT_25", +"VIEWABILITY_PERCENT_50", +"VIEWABILITY_PERCENT_75", +"VIEWABILITY_PERCENT_100" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"0% viewable.", +"25% viewable.", +"50% viewable.", +"75% viewable.", +"100% viewable." +], +"type": "string" +}, +"minimumVolume": { +"description": "Required. The minimum percentage of the video ad's volume required in order for an impression to be recorded.", +"enum": [ +"VIDEO_VOLUME_PERCENT_UNSPECIFIED", +"VIDEO_VOLUME_PERCENT_0", +"VIDEO_VOLUME_PERCENT_10" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"0% volume.", +"10% volume." +], +"type": "string" +} +}, +"type": "object" +}, +"Adloox": { +"description": "Details of Adloox settings.", +"id": "Adloox", +"properties": { +"excludedAdlooxCategories": { +"description": "Adloox's brand safety settings.", +"items": { +"enum": [ +"ADLOOX_UNSPECIFIED", +"ADULT_CONTENT_HARD", +"ADULT_CONTENT_SOFT", +"ILLEGAL_CONTENT", +"BORDERLINE_CONTENT", +"DISCRIMINATORY_CONTENT", +"VIOLENT_CONTENT_WEAPONS", +"LOW_VIEWABILITY_DOMAINS", +"FRAUD" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any Adloox option.", +"Adult content (hard).", +"Adult content (soft).", +"Illegal content.", +"Borderline content.", +"Discriminatory content.", +"Violent content & weapons.", +"Low viewability domains.", +"Fraud." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Advertiser": { +"description": "A single advertiser in Display & Video 360 (DV360).", +"id": "Advertiser", +"properties": { +"adServerConfig": { +"$ref": "AdvertiserAdServerConfig", +"description": "Required. Immutable. Ad server related settings of the advertiser." +}, +"advertiserId": { +"description": "Output only. The unique ID of the advertiser. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"creativeConfig": { +"$ref": "AdvertiserCreativeConfig", +"description": "Required. Creative related settings of the advertiser." +}, +"dataAccessConfig": { +"$ref": "AdvertiserDataAccessConfig", +"description": "Settings that control how advertiser data may be accessed." +}, +"displayName": { +"description": "Required. The display name of the advertiser. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not insertion orders and line items of the advertiser can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_PAUSED` and `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. * If set to `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be deleted 30 days from when it was first scheduled for deletion.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"generalConfig": { +"$ref": "AdvertiserGeneralConfig", +"description": "Required. General settings of the advertiser." +}, +"integrationDetails": { +"$ref": "IntegrationDetails", +"description": "Integration details of the advertiser. Only integrationCode is currently applicable to advertiser. Other fields of IntegrationDetails are not supported and will be ignored if provided." +}, +"name": { +"description": "Output only. The resource name of the advertiser.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "Required. Immutable. The unique ID of the partner that the advertiser belongs to.", +"format": "int64", +"type": "string" +}, +"prismaEnabled": { +"description": "Whether integration with Mediaocean (Prisma) is enabled. By enabling this, you agree to the following: On behalf of my company, I authorize Mediaocean (Prisma) to send budget segment plans to Google, and I authorize Google to send corresponding reporting and invoices from DV360 to Mediaocean for the purposes of budget planning, billing, and reconciliation for this advertiser.", +"type": "boolean" +}, +"servingConfig": { +"$ref": "AdvertiserTargetingConfig", +"description": "Targeting settings related to ad serving of the advertiser." +}, +"updateTime": { +"description": "Output only. The timestamp when the advertiser was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdvertiserAdServerConfig": { +"description": "Ad server related settings of an advertiser.", +"id": "AdvertiserAdServerConfig", +"properties": { +"cmHybridConfig": { +"$ref": "CmHybridConfig", +"description": "The configuration for advertisers that use both Campaign Manager 360 (CM360) and third-party ad servers." +}, +"thirdPartyOnlyConfig": { +"$ref": "ThirdPartyOnlyConfig", +"description": "The configuration for advertisers that use third-party ad servers only." +} +}, +"type": "object" +}, +"AdvertiserCreativeConfig": { +"description": "Creatives related settings of an advertiser.", +"id": "AdvertiserCreativeConfig", +"properties": { +"dynamicCreativeEnabled": { +"description": "Whether or not the advertiser is enabled for dynamic creatives.", +"type": "boolean" +}, +"iasClientId": { +"description": "An ID for configuring campaign monitoring provided by Integral Ad Service (IAS). The DV360 system will append an IAS \"Campaign Monitor\" tag containing this ID to the creative tag.", +"format": "int64", +"type": "string" +}, +"obaComplianceDisabled": { +"description": "Whether or not to use DV360's Online Behavioral Advertising (OBA) compliance. Starting on February 9, 2024, this field will be affected by an update to the Display & Video 360 API Terms of Service. See our [announcement](//ads-developers.googleblog.com/2024/01/update-to-display-video-360-api-terms.html) for more detail. Warning: Changing OBA settings may cause the audit status of your creatives to be reset by some ad exchanges, making them ineligible to serve until they are re-approved.", +"type": "boolean" +}, +"videoCreativeDataSharingAuthorized": { +"description": "By setting this field to `true`, you, on behalf of your company, authorize Google to use video creatives associated with this Display & Video 360 advertiser to provide reporting and features related to the advertiser's television campaigns. Applicable only when the advertiser has a CM360 hybrid ad server configuration.", +"type": "boolean" +} +}, +"type": "object" +}, +"AdvertiserDataAccessConfig": { +"description": "Settings that control how advertiser related data may be accessed.", +"id": "AdvertiserDataAccessConfig", +"properties": { +"sdfConfig": { +"$ref": "AdvertiserSdfConfig", +"description": "Structured Data Files (SDF) settings for the advertiser. If not specified, the SDF settings of the parent partner are used." +} +}, +"type": "object" +}, +"AdvertiserGeneralConfig": { +"description": "General settings of an advertiser.", +"id": "AdvertiserGeneralConfig", +"properties": { +"currencyCode": { +"description": "Required. Immutable. Advertiser's currency in ISO 4217 format. Accepted codes and the currencies they represent are: Currency Code : Currency Name * `ARS` : Argentine Peso * `AUD` : Australian Dollar * `BRL` : Brazilian Real * `CAD` : Canadian Dollar * `CHF` : Swiss Franc * `CLP` : Chilean Peso * `CNY` : Chinese Yuan * `COP` : Colombian Peso * `CZK` : Czech Koruna * `DKK` : Danish Krone * `EGP` : Egyption Pound * `EUR` : Euro * `GBP` : British Pound * `HKD` : Hong Kong Dollar * `HUF` : Hungarian Forint * `IDR` : Indonesian Rupiah * `ILS` : Israeli Shekel * `INR` : Indian Rupee * `JPY` : Japanese Yen * `KRW` : South Korean Won * `MXN` : Mexican Pesos * `MYR` : Malaysian Ringgit * `NGN` : Nigerian Naira * `NOK` : Norwegian Krone * `NZD` : New Zealand Dollar * `PEN` : Peruvian Nuevo Sol * `PLN` : Polish Zloty * `RON` : New Romanian Leu * `RUB` : Russian Ruble * `SEK` : Swedish Krona * `TRY` : Turkish Lira * `TWD` : New Taiwan Dollar * `USD` : US Dollar * `ZAR` : South African Rand", +"type": "string" +}, +"domainUrl": { +"description": "Required. The domain URL of the advertiser's primary website. The system will send this information to publishers that require website URL to associate a campaign with an advertiser. Provide a URL with no path or query string, beginning with `http:` or `https:`. For example, http://www.example.com", +"type": "string" +}, +"timeZone": { +"description": "Output only. The standard TZ database name of the advertiser's time zone. For example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones For CM360 hybrid advertisers, the time zone is the same as that of the associated CM360 account; for third-party only advertisers, the time zone is the same as that of the parent partner.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdvertiserSdfConfig": { +"description": "Structured Data Files (SDF) settings of an advertiser.", +"id": "AdvertiserSdfConfig", +"properties": { +"overridePartnerSdfConfig": { +"description": "Whether or not this advertiser overrides the SDF configuration of its parent partner. By default, an advertiser inherits the SDF configuration from the parent partner. To override the partner configuration, set this field to `true` and provide the new configuration in sdfConfig.", +"type": "boolean" +}, +"sdfConfig": { +"$ref": "SdfConfig", +"description": "The SDF configuration for the advertiser. * Required when overridePartnerSdfConfig is `true`. * Output only when overridePartnerSdfConfig is `false`." +} +}, +"type": "object" +}, +"AdvertiserTargetingConfig": { +"description": "Targeting settings related to ad serving of an advertiser.", +"id": "AdvertiserTargetingConfig", +"properties": { +"exemptTvFromViewabilityTargeting": { +"description": "Whether or not connected TV devices are exempt from viewability targeting for all video line items under the advertiser.", +"type": "boolean" +} +}, +"type": "object" +}, +"AgeRangeAssignedTargetingOptionDetails": { +"description": "Represents a targetable age range. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE`.", +"id": "AgeRangeAssignedTargetingOptionDetails", +"properties": { +"ageRange": { +"description": "Required. The age range of an audience. We only support targeting a continuous age range of an audience. Thus, the age range represented in this field can be 1) targeted solely, or, 2) part of a larger continuous age range. The reach of a continuous age range targeting can be expanded by also targeting an audience of an unknown age.", +"enum": [ +"AGE_RANGE_UNSPECIFIED", +"AGE_RANGE_18_24", +"AGE_RANGE_25_34", +"AGE_RANGE_35_44", +"AGE_RANGE_45_54", +"AGE_RANGE_55_64", +"AGE_RANGE_65_PLUS", +"AGE_RANGE_UNKNOWN" +], +"enumDescriptions": [ +"Default value when age range is not specified in this version. This enum is a placeholder for default value and does not represent a real age range option.", +"The age range of the audience is 18 to 24.", +"The age range of the audience is 25 to 34.", +"The age range of the audience is 35 to 44.", +"The age range of the audience is 45 to 54.", +"The age range of the audience is 55 to 64.", +"The age range of the audience is 65 and up.", +"The age range of the audience is unknown." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_AGE_RANGE`.", +"type": "string" +} +}, +"type": "object" +}, +"AgeRangeTargetingOptionDetails": { +"description": "Represents a targetable age range. This will be populated in the age_range_details field when targeting_type is `TARGETING_TYPE_AGE_RANGE`.", +"id": "AgeRangeTargetingOptionDetails", +"properties": { +"ageRange": { +"description": "Output only. The age range of an audience.", +"enum": [ +"AGE_RANGE_UNSPECIFIED", +"AGE_RANGE_18_24", +"AGE_RANGE_25_34", +"AGE_RANGE_35_44", +"AGE_RANGE_45_54", +"AGE_RANGE_55_64", +"AGE_RANGE_65_PLUS", +"AGE_RANGE_UNKNOWN" +], +"enumDescriptions": [ +"Default value when age range is not specified in this version. This enum is a placeholder for default value and does not represent a real age range option.", +"The age range of the audience is 18 to 24.", +"The age range of the audience is 25 to 34.", +"The age range of the audience is 35 to 44.", +"The age range of the audience is 45 to 54.", +"The age range of the audience is 55 to 64.", +"The age range of the audience is 65 and up.", +"The age range of the audience is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AppAssignedTargetingOptionDetails": { +"description": "Details for assigned app targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP`.", +"id": "AppAssignedTargetingOptionDetails", +"properties": { +"appId": { +"description": "Required. The ID of the app. Android's Play store app uses bundle ID, for example `com.google.android.gm`. Apple's App store app ID uses 9 digit string, for example `422689480`.", +"type": "string" +}, +"appPlatform": { +"description": "Indicates the platform of the targeted app. If this field is not specified, the app platform will be assumed to be mobile (i.e., Android or iOS), and we will derive the appropriate mobile platform from the app ID.", +"enum": [ +"APP_PLATFORM_UNSPECIFIED", +"APP_PLATFORM_IOS", +"APP_PLATFORM_ANDROID", +"APP_PLATFORM_ROKU", +"APP_PLATFORM_AMAZON_FIRETV", +"APP_PLATFORM_PLAYSTATION", +"APP_PLATFORM_APPLE_TV", +"APP_PLATFORM_XBOX", +"APP_PLATFORM_SAMSUNG_TV", +"APP_PLATFORM_ANDROID_TV", +"APP_PLATFORM_GENERIC_CTV" +], +"enumDescriptions": [ +"Default value when app platform is not specified in this version. This enum is a placeholder for default value and does not represent a real platform option.", +"The app platform is iOS.", +"The app platform is Android.", +"The app platform is Roku.", +"The app platform is Amazon FireTV.", +"The app platform is Playstation.", +"The app platform is Apple TV.", +"The app platform is Xbox.", +"The app platform is Samsung TV.", +"The app platform is Android TV.", +"The app platform is a CTV platform that is not explicitly listed elsewhere." +], +"type": "string" +}, +"displayName": { +"description": "Output only. The display name of the app.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +} +}, +"type": "object" +}, +"AppCategoryAssignedTargetingOptionDetails": { +"description": "Details for assigned app category targeting option. This will be populated in the app_category_details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", +"id": "AppCategoryAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the app category.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", +"type": "string" +} +}, +"type": "object" +}, +"AppCategoryTargetingOptionDetails": { +"description": "Represents a targetable collection of apps. A collection lets you target dynamic groups of related apps that are maintained by the platform, for example `All Apps/Google Play/Games`. This will be populated in the app_category_details field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", +"id": "AppCategoryTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The name of the app collection.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Asset": { +"description": "A single asset.", +"id": "Asset", +"properties": { +"content": { +"description": "The asset content. For uploaded assets, the content is the serving path.", +"type": "string" +}, +"mediaId": { +"description": "Media ID of the uploaded asset. This is a unique identifier for the asset. This ID can be passed to other API calls, e.g. CreateCreative to associate the asset with a creative. The Media ID space updated on **April 5, 2023**. Update media IDs cached before **April 5, 2023** by retrieving the new media ID from associated creative resources or re-uploading the asset.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AssetAssociation": { +"description": "Asset association for the creative.", +"id": "AssetAssociation", +"properties": { +"asset": { +"$ref": "Asset", +"description": "The associated asset." +}, +"role": { +"description": "The role of this asset for the creative.", +"enum": [ +"ASSET_ROLE_UNSPECIFIED", +"ASSET_ROLE_MAIN", +"ASSET_ROLE_BACKUP", +"ASSET_ROLE_POLITE_LOAD", +"ASSET_ROLE_HEADLINE", +"ASSET_ROLE_LONG_HEADLINE", +"ASSET_ROLE_BODY", +"ASSET_ROLE_LONG_BODY", +"ASSET_ROLE_CAPTION_URL", +"ASSET_ROLE_CALL_TO_ACTION", +"ASSET_ROLE_ADVERTISER_NAME", +"ASSET_ROLE_PRICE", +"ASSET_ROLE_ANDROID_APP_ID", +"ASSET_ROLE_IOS_APP_ID", +"ASSET_ROLE_RATING", +"ASSET_ROLE_ICON", +"ASSET_ROLE_COVER_IMAGE" +], +"enumDescriptions": [ +"Asset role is not specified or is unknown in this version.", +"The asset is the main asset of the creative.", +"The asset is a backup asset of the creative.", +"The asset is a polite load asset of the creative.", +"Headline of a native creative. The content must be UTF-8 encoded with a length of no more than 25 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"Long headline of a native creative. The content must be UTF-8 encoded with a length of no more than 50 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"Body text of a native creative. The content must be UTF-8 encoded with a length of no more than 90 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"Long body text of a native creative. The content must be UTF-8 encoded with a length of no more than 150 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"A short, friendly version of the landing page URL to show in the creative. This URL gives people an idea of where they'll arrive after they click on the creative. The content must be UTF-8 encoded with a length of no more than 30 characters. For example, if the landing page URL is 'http://www.example.com/page', the caption URL can be 'example.com'. The protocol (http://) is optional, but the URL can't contain spaces or special characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"The text to use on the call-to-action button of a native creative. The content must be UTF-8 encoded with a length of no more than 15 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"The text that identifies the advertiser or brand name. The content must be UTF-8 encoded with a length of no more than 25 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"The purchase price of your app in the Google play store or iOS app store (for example, $5.99). Note that this value is not automatically synced with the actual value listed in the store. It will always be the one provided when save the creative. The content must be UTF-8 encoded with a length of no more than 15 characters. Assets of this role are read-only.", +"The ID of an Android app in the Google play store. You can find this ID in the App\u2019s Google Play Store URL after \u2018id\u2019. For example, in https://play.google.com/store/apps/details?id=com.company.appname the identifier is com.company.appname. Assets of this role are read-only.", +"The ID of an iOS app in the Apple app store. This ID number can be found in the Apple App Store URL as the string of numbers directly after \"id\". For example, in https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the ID is 422689480. Assets of this role are read-only.", +"The rating of an app in the Google play store or iOS app store. Note that this value is not automatically synced with the actual rating in the store. It will always be the one provided when save the creative. Assets of this role are read-only.", +"The icon of a creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE`", +"The cover image of a native video creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_VIDEO`" +], +"type": "string" +} +}, +"type": "object" +}, +"AssignedInventorySource": { +"description": "An assignment between a targetable inventory source and an inventory source group.", +"id": "AssignedInventorySource", +"properties": { +"assignedInventorySourceId": { +"description": "Output only. The unique ID of the assigned inventory source. The ID is only unique within a given inventory source group. It may be reused in other contexts.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inventorySourceId": { +"description": "Required. The ID of the inventory source entity being targeted.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the assigned inventory source.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AssignedLocation": { +"description": "An assignment between a location list and a relevant targeting option.", +"id": "AssignedLocation", +"properties": { +"assignedLocationId": { +"description": "Output only. The unique ID of the assigned location. The ID is only unique within a location list. It may be reused in other contexts.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the assigned location.", +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The ID of the targeting option assigned to the location list.", +"type": "string" +} +}, +"type": "object" +}, +"AssignedTargetingOption": { +"description": "A single assigned targeting option, which defines the state of a targeting option for an entity with targeting settings.", +"id": "AssignedTargetingOption", +"properties": { +"ageRangeDetails": { +"$ref": "AgeRangeAssignedTargetingOptionDetails", +"description": "Age range details. This field will be populated when the targeting_type is `TARGETING_TYPE_AGE_RANGE`." +}, +"appCategoryDetails": { +"$ref": "AppCategoryAssignedTargetingOptionDetails", +"description": "App category details. This field will be populated when the targeting_type is `TARGETING_TYPE_APP_CATEGORY`." +}, +"appDetails": { +"$ref": "AppAssignedTargetingOptionDetails", +"description": "App details. This field will be populated when the targeting_type is `TARGETING_TYPE_APP`." +}, +"assignedTargetingOptionId": { +"description": "Output only. The unique ID of the assigned targeting option. The ID is only unique within a given resource and targeting type. It may be reused in other contexts.", +"readOnly": true, +"type": "string" +}, +"audienceGroupDetails": { +"$ref": "AudienceGroupAssignedTargetingOptionDetails", +"description": "Audience targeting details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. You can only target one audience group option per resource." +}, +"audioContentTypeDetails": { +"$ref": "AudioContentTypeAssignedTargetingOptionDetails", +"description": "Audio content type details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`." +}, +"authorizedSellerStatusDetails": { +"$ref": "AuthorizedSellerStatusAssignedTargetingOptionDetails", +"description": "Authorized seller status details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. You can only target one authorized seller status option per resource. If a resource doesn't have an authorized seller status option, all authorized sellers indicated as DIRECT or RESELLER in the ads.txt file are targeted by default." +}, +"browserDetails": { +"$ref": "BrowserAssignedTargetingOptionDetails", +"description": "Browser details. This field will be populated when the targeting_type is `TARGETING_TYPE_BROWSER`." +}, +"businessChainDetails": { +"$ref": "BusinessChainAssignedTargetingOptionDetails", +"description": "Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." +}, +"carrierAndIspDetails": { +"$ref": "CarrierAndIspAssignedTargetingOptionDetails", +"description": "Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`." +}, +"categoryDetails": { +"$ref": "CategoryAssignedTargetingOptionDetails", +"description": "Category details. This field will be populated when the targeting_type is `TARGETING_TYPE_CATEGORY`. Targeting a category will also target its subcategories. If a category is excluded from targeting and a subcategory is included, the exclusion will take precedence." +}, +"channelDetails": { +"$ref": "ChannelAssignedTargetingOptionDetails", +"description": "Channel details. This field will be populated when the targeting_type is `TARGETING_TYPE_CHANNEL`." +}, +"contentDurationDetails": { +"$ref": "ContentDurationAssignedTargetingOptionDetails", +"description": "Content duration details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_DURATION`." +}, +"contentGenreDetails": { +"$ref": "ContentGenreAssignedTargetingOptionDetails", +"description": "Content genre details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_GENRE`." +}, +"contentInstreamPositionDetails": { +"$ref": "ContentInstreamPositionAssignedTargetingOptionDetails", +"description": "Content instream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`." +}, +"contentOutstreamPositionDetails": { +"$ref": "ContentOutstreamPositionAssignedTargetingOptionDetails", +"description": "Content outstream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`." +}, +"contentStreamTypeDetails": { +"$ref": "ContentStreamTypeAssignedTargetingOptionDetails", +"description": "Content duration details. This field will be populated when the TargetingType is `TARGETING_TYPE_CONTENT_STREAM_TYPE`." +}, +"dayAndTimeDetails": { +"$ref": "DayAndTimeAssignedTargetingOptionDetails", +"description": "Day and time details. This field will be populated when the targeting_type is `TARGETING_TYPE_DAY_AND_TIME`." +}, +"deviceMakeModelDetails": { +"$ref": "DeviceMakeModelAssignedTargetingOptionDetails", +"description": "Device make and model details. This field will be populated when the targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`." +}, +"deviceTypeDetails": { +"$ref": "DeviceTypeAssignedTargetingOptionDetails", +"description": "Device Type details. This field will be populated when the targeting_type is `TARGETING_TYPE_DEVICE_TYPE`." +}, +"digitalContentLabelExclusionDetails": { +"$ref": "DigitalContentLabelAssignedTargetingOptionDetails", +"description": "Digital content label details. This field will be populated when the targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. Digital content labels are targeting exclusions. Advertiser level digital content label exclusions, if set, are always applied in serving (even though they aren't visible in resource settings). Resource settings can exclude content labels in addition to advertiser exclusions, but can't override them. A line item won't serve if all the digital content labels are excluded." +}, +"environmentDetails": { +"$ref": "EnvironmentAssignedTargetingOptionDetails", +"description": "Environment details. This field will be populated when the targeting_type is `TARGETING_TYPE_ENVIRONMENT`." +}, +"exchangeDetails": { +"$ref": "ExchangeAssignedTargetingOptionDetails", +"description": "Exchange details. This field will be populated when the targeting_type is `TARGETING_TYPE_EXCHANGE`." +}, +"genderDetails": { +"$ref": "GenderAssignedTargetingOptionDetails", +"description": "Gender details. This field will be populated when the targeting_type is `TARGETING_TYPE_GENDER`." +}, +"geoRegionDetails": { +"$ref": "GeoRegionAssignedTargetingOptionDetails", +"description": "Geographic region details. This field will be populated when the targeting_type is `TARGETING_TYPE_GEO_REGION`." +}, +"householdIncomeDetails": { +"$ref": "HouseholdIncomeAssignedTargetingOptionDetails", +"description": "Household income details. This field will be populated when the targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`." +}, +"inheritance": { +"description": "Output only. The inheritance status of the assigned targeting option.", +"enum": [ +"INHERITANCE_UNSPECIFIED", +"NOT_INHERITED", +"INHERITED_FROM_PARTNER", +"INHERITED_FROM_ADVERTISER" +], +"enumDescriptions": [ +"The inheritance is unspecified or unknown.", +"The assigned targeting option is not inherited from higher level entity.", +"The assigned targeting option is inherited from partner targeting settings.", +"The assigned targeting option is inherited from advertiser targeting settings." +], +"readOnly": true, +"type": "string" +}, +"inventorySourceDetails": { +"$ref": "InventorySourceAssignedTargetingOptionDetails", +"description": "Inventory source details. This field will be populated when the targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`." +}, +"inventorySourceGroupDetails": { +"$ref": "InventorySourceGroupAssignedTargetingOptionDetails", +"description": "Inventory source group details. This field will be populated when the targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`." +}, +"keywordDetails": { +"$ref": "KeywordAssignedTargetingOptionDetails", +"description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_KEYWORD`. A maximum of 5000 direct negative keywords can be assigned to a resource. No limit on number of positive keywords that can be assigned." +}, +"languageDetails": { +"$ref": "LanguageAssignedTargetingOptionDetails", +"description": "Language details. This field will be populated when the targeting_type is `TARGETING_TYPE_LANGUAGE`." +}, +"name": { +"description": "Output only. The resource name for this assigned targeting option.", +"readOnly": true, +"type": "string" +}, +"nativeContentPositionDetails": { +"$ref": "NativeContentPositionAssignedTargetingOptionDetails", +"description": "Native content position details. This field will be populated when the targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`." +}, +"negativeKeywordListDetails": { +"$ref": "NegativeKeywordListAssignedTargetingOptionDetails", +"description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource." +}, +"omidDetails": { +"$ref": "OmidAssignedTargetingOptionDetails", +"description": "Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`." +}, +"onScreenPositionDetails": { +"$ref": "OnScreenPositionAssignedTargetingOptionDetails", +"description": "On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`." +}, +"operatingSystemDetails": { +"$ref": "OperatingSystemAssignedTargetingOptionDetails", +"description": "Operating system details. This field will be populated when the targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`." +}, +"parentalStatusDetails": { +"$ref": "ParentalStatusAssignedTargetingOptionDetails", +"description": "Parental status details. This field will be populated when the targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`." +}, +"poiDetails": { +"$ref": "PoiAssignedTargetingOptionDetails", +"description": "POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`." +}, +"proximityLocationListDetails": { +"$ref": "ProximityLocationListAssignedTargetingOptionDetails", +"description": "Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`." +}, +"regionalLocationListDetails": { +"$ref": "RegionalLocationListAssignedTargetingOptionDetails", +"description": "Regional location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`." +}, +"sensitiveCategoryExclusionDetails": { +"$ref": "SensitiveCategoryAssignedTargetingOptionDetails", +"description": "Sensitive category details. This field will be populated when the targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. Sensitive categories are targeting exclusions. Advertiser level sensitive category exclusions, if set, are always applied in serving (even though they aren't visible in resource settings). Resource settings can exclude sensitive categories in addition to advertiser exclusions, but can't override them." +}, +"subExchangeDetails": { +"$ref": "SubExchangeAssignedTargetingOptionDetails", +"description": "Sub-exchange details. This field will be populated when the targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`." +}, +"targetingType": { +"description": "Output only. Identifies the type of this assigned targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"readOnly": true, +"type": "string" +}, +"thirdPartyVerifierDetails": { +"$ref": "ThirdPartyVerifierAssignedTargetingOptionDetails", +"description": "Third party verification details. This field will be populated when the targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`." +}, +"urlDetails": { +"$ref": "UrlAssignedTargetingOptionDetails", +"description": "URL details. This field will be populated when the targeting_type is `TARGETING_TYPE_URL`." +}, +"userRewardedContentDetails": { +"$ref": "UserRewardedContentAssignedTargetingOptionDetails", +"description": "User rewarded content details. This field will be populated when the targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`." +}, +"videoPlayerSizeDetails": { +"$ref": "VideoPlayerSizeAssignedTargetingOptionDetails", +"description": "Video player size details. This field will be populated when the targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`." +}, +"viewabilityDetails": { +"$ref": "ViewabilityAssignedTargetingOptionDetails", +"description": "Viewability details. This field will be populated when the targeting_type is `TARGETING_TYPE_VIEWABILITY`. You can only target one viewability option per resource." +} +}, +"type": "object" +}, +"AssignedUserRole": { +"description": "A single assigned user role, which defines a user's authorized interaction with a specified partner or advertiser.", +"id": "AssignedUserRole", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that the assigend user role applies to.", +"format": "int64", +"type": "string" +}, +"assignedUserRoleId": { +"description": "Output only. The ID of the assigned user role.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the assigned user role applies to.", +"format": "int64", +"type": "string" +}, +"userRole": { +"description": "Required. The user role to assign to a user for the entity.", +"enum": [ +"USER_ROLE_UNSPECIFIED", +"ADMIN", +"ADMIN_PARTNER_CLIENT", +"STANDARD", +"STANDARD_PLANNER", +"STANDARD_PLANNER_LIMITED", +"STANDARD_PARTNER_CLIENT", +"READ_ONLY", +"REPORTING_ONLY", +"LIMITED_REPORTING_ONLY", +"CREATIVE", +"CREATIVE_ADMIN" +], +"enumDescriptions": [ +"Default value when the user role is not specified or is unknown in this version.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They can view and edit billing information, create or modify users, and enable or disable exchanges. This role can only be assigned for a partner entity.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They can create and modify other `ADMIN_PARTNER_CLIENT` users and view billing information. They cannot view revenue models, markups, or any other reseller-sensitive fields. This role can only be assigned for a partner entity.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They cannot create and modify users or view billing information.", +"The user can view all campaigns, creatives, insertion orders, line items, and reports for the entity, including all cost data. They can create and modify planning-related features, including plans and inventory.", +"The user can view all campaigns, creatives, insertion orders, line items, and reports for the entity. They can create or modify planning-related features, including plans and inventory. They have no access to cost data and cannot start, accept, or negotiate deals.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They cannot create or modify other users or view billing information. They cannot view revenue models, markups, or any other reseller-sensitive fields. This role can only be assigned for an advertiser entity.", +"The user can only build reports and view data for the entity.", +"The user can only create and manage reports.", +"The user can only create and manage the following client-safe reports: General, Audience Performance, Cross-Partner, Keyword, Order ID, Category, and Third-Party Data Provider.", +"The user can view media plan information they need to collaborate, but can't view cost-related data or Marketplace.", +"The user can view media plan information they need to collaborate, but can't view cost-related data or Marketplace. In addition, they can add other creative admins or creative users to the entity." +], +"type": "string" +} +}, +"type": "object" +}, +"AudienceGroupAssignedTargetingOptionDetails": { +"description": "Assigned audience group targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is UNION, except for excluded_first_and_third_party_audience_group and excluded_google_audience_group, of which COMPLEMENT is used as an INTERSECTION with other groups.", +"id": "AudienceGroupAssignedTargetingOptionDetails", +"properties": { +"excludedFirstAndThirdPartyAudienceGroup": { +"$ref": "FirstAndThirdPartyAudienceGroup", +"description": "The first and third party audience ids and recencies of the excluded first and third party audience group. Used for negative targeting. The COMPLEMENT of the UNION of this group and other excluded audience groups is used as an INTERSECTION to any positive audience targeting. All items are logically \u2018OR\u2019 of each other." +}, +"excludedGoogleAudienceGroup": { +"$ref": "GoogleAudienceGroup", +"description": "The Google audience ids of the excluded Google audience group. Used for negative targeting. The COMPLEMENT of the UNION of this group and other excluded audience groups is used as an INTERSECTION to any positive audience targeting. Only contains Affinity, In-market and Installed-apps type Google audiences. All items are logically \u2018OR\u2019 of each other." +}, +"includedCombinedAudienceGroup": { +"$ref": "CombinedAudienceGroup", +"description": "The combined audience ids of the included combined audience group. Contains combined audience ids only." +}, +"includedCustomListGroup": { +"$ref": "CustomListGroup", +"description": "The custom list ids of the included custom list group. Contains custom list ids only." +}, +"includedFirstAndThirdPartyAudienceGroups": { +"description": "The first and third party audience ids and recencies of included first and third party audience groups. Each first and third party audience group contains first and third party audience ids only. The relation between each first and third party audience group is INTERSECTION, and the result is UNION'ed with other audience groups. Repeated groups with same settings will be ignored.", +"items": { +"$ref": "FirstAndThirdPartyAudienceGroup" +}, +"type": "array" +}, +"includedGoogleAudienceGroup": { +"$ref": "GoogleAudienceGroup", +"description": "The Google audience ids of the included Google audience group. Contains Google audience ids only." +} +}, +"type": "object" +}, +"AudioContentTypeAssignedTargetingOptionDetails": { +"description": "Details for audio content type assigned targeting option. This will be populated in the audio_content_type_details field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. Explicitly targeting all options is not supported. Remove all audio content type targeting options to achieve this effect.", +"id": "AudioContentTypeAssignedTargetingOptionDetails", +"properties": { +"audioContentType": { +"description": "Required. The audio content type.", +"enum": [ +"AUDIO_CONTENT_TYPE_UNSPECIFIED", +"AUDIO_CONTENT_TYPE_UNKNOWN", +"AUDIO_CONTENT_TYPE_MUSIC", +"AUDIO_CONTENT_TYPE_BROADCAST", +"AUDIO_CONTENT_TYPE_PODCAST" +], +"enumDescriptions": [ +"Audio content type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The audio content type is unknown.", +"The audio content type is music.", +"The audio content type is broadcast.", +"The audio content type is podcast." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`.", +"type": "string" +} +}, +"type": "object" +}, +"AudioContentTypeTargetingOptionDetails": { +"description": "Represents a targetable audio content type. This will be populated in the audio_content_type_details field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`.", +"id": "AudioContentTypeTargetingOptionDetails", +"properties": { +"audioContentType": { +"description": "Output only. The audio content type.", +"enum": [ +"AUDIO_CONTENT_TYPE_UNSPECIFIED", +"AUDIO_CONTENT_TYPE_UNKNOWN", +"AUDIO_CONTENT_TYPE_MUSIC", +"AUDIO_CONTENT_TYPE_BROADCAST", +"AUDIO_CONTENT_TYPE_PODCAST" +], +"enumDescriptions": [ +"Audio content type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The audio content type is unknown.", +"The audio content type is music.", +"The audio content type is broadcast.", +"The audio content type is podcast." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AudioVideoOffset": { +"description": "The length an audio or a video has been played.", +"id": "AudioVideoOffset", +"properties": { +"percentage": { +"description": "The offset in percentage of the audio or video duration.", +"format": "int64", +"type": "string" +}, +"seconds": { +"description": "The offset in seconds from the start of the audio or video.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AuditAdvertiserResponse": { +"description": "Response message for AdvertiserService.AuditAdvertiser.", +"id": "AuditAdvertiserResponse", +"properties": { +"adGroupCriteriaCount": { +"description": "The number of individual targeting options from the following targeting types that are assigned to a line item under this advertiser. These individual targeting options count towards the limit of 4500000 ad group targeting options per advertiser. Qualifying Targeting types: * Channels, URLs, apps, and collections * Demographic * Google Audiences, including Affinity, Custom Affinity, and In-market audiences * Inventory source * Keyword * Mobile app category * User lists * Video targeting * Viewability", +"format": "int64", +"type": "string" +}, +"campaignCriteriaCount": { +"description": "The number of individual targeting options from the following targeting types that are assigned to a line item under this advertiser. These individual targeting options count towards the limit of 900000 campaign targeting options per advertiser. Qualifying Targeting types: * Position * Browser * Connection speed * Day and time * Device and operating system * Digital content label * Sensitive categories * Environment * Geography, including business chains and proximity * ISP * Language * Third-party verification", +"format": "int64", +"type": "string" +}, +"channelsCount": { +"description": "The number of channels created under this advertiser. These channels count towards the limit of 1000 channels per advertiser.", +"format": "int64", +"type": "string" +}, +"negativeKeywordListsCount": { +"description": "The number of negative keyword lists created under this advertiser. These negative keyword lists count towards the limit of 20 negative keyword lists per advertiser.", +"format": "int64", +"type": "string" +}, +"negativelyTargetedChannelsCount": { +"description": "The number of negatively targeted channels created under this advertiser. These negatively targeted channels count towards the limit of 5 negatively targeted channels per advertiser.", +"format": "int64", +"type": "string" +}, +"usedCampaignsCount": { +"description": "The number of ACTIVE and PAUSED campaigns under this advertiser. These campaigns count towards the limit of 9999 campaigns per advertiser.", +"format": "int64", +"type": "string" +}, +"usedInsertionOrdersCount": { +"description": "The number of ACTIVE, PAUSED and DRAFT insertion orders under this advertiser. These insertion orders count towards the limit of 9999 insertion orders per advertiser.", +"format": "int64", +"type": "string" +}, +"usedLineItemsCount": { +"description": "The number of ACTIVE, PAUSED, and DRAFT line items under this advertiser. These line items count towards the limit of 9999 line items per advertiser.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedSellerStatusAssignedTargetingOptionDetails": { +"description": "Represents an assigned authorized seller status. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. If a resource does not have an `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` assigned targeting option, it is using the \"Authorized Direct Sellers and Resellers\" option.", +"id": "AuthorizedSellerStatusAssignedTargetingOptionDetails", +"properties": { +"authorizedSellerStatus": { +"description": "Output only. The authorized seller status to target.", +"enum": [ +"AUTHORIZED_SELLER_STATUS_UNSPECIFIED", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS" +], +"enumDescriptions": [ +"Default value when authorized seller status is not specified in this version. This enum is a placeholder for the default value, or \"Authorized Direct Sellers and Resellers\" in the UI.", +"Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file. This value is equivalent to \"Authorized Direct Sellers\" in the UI.", +"All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers. This value is equivalent to \"Authorized and Non-Participating Publishers\" in the UI." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedSellerStatusTargetingOptionDetails": { +"description": "Represents a targetable authorized seller status. This will be populated in the authorized_seller_status_details field when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.", +"id": "AuthorizedSellerStatusTargetingOptionDetails", +"properties": { +"authorizedSellerStatus": { +"description": "Output only. The authorized seller status.", +"enum": [ +"AUTHORIZED_SELLER_STATUS_UNSPECIFIED", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS" +], +"enumDescriptions": [ +"Default value when authorized seller status is not specified in this version. This enum is a placeholder for the default value, or \"Authorized Direct Sellers and Resellers\" in the UI.", +"Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file. This value is equivalent to \"Authorized Direct Sellers\" in the UI.", +"All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers. This value is equivalent to \"Authorized and Non-Participating Publishers\" in the UI." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BiddingStrategy": { +"description": "Settings that control the bid strategy. Bid strategy determines the bid price.", +"id": "BiddingStrategy", +"properties": { +"fixedBid": { +"$ref": "FixedBidStrategy", +"description": "A strategy that uses a fixed bid price." +}, +"maximizeSpendAutoBid": { +"$ref": "MaximizeSpendBidStrategy", +"description": "A strategy that automatically adjusts the bid to optimize to your performance goal while spending the full budget. At insertion order level, the markup_type of line items cannot be set to `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In addition, when performance_goal_type is one of: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` , the line_item_type of the insertion order line items must be either: * `LINE_ITEM_TYPE_DISPLAY_DEFAULT` * `LINE_ITEM_TYPE_VIDEO_DEFAULT` , and when performance_goal_type is either: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` the line_item_type of the insertion order line items must be `LINE_ITEM_TYPE_VIDEO_DEFAULT`." +}, +"performanceGoalAutoBid": { +"$ref": "PerformanceGoalBidStrategy", +"description": "A strategy that automatically adjusts the bid to meet or beat a specified performance goal. It is to be used only for a line item entity." +} +}, +"type": "object" +}, +"BrowserAssignedTargetingOptionDetails": { +"description": "Details for assigned browser targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BROWSER`.", +"id": "BrowserAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the browser.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`.", +"type": "string" +} +}, +"type": "object" +}, +"BrowserTargetingOptionDetails": { +"description": "Represents a targetable browser. This will be populated in the browser_details field when targeting_type is `TARGETING_TYPE_BROWSER`.", +"id": "BrowserTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the browser.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BudgetSummary": { +"description": "Summarized information of an individual campaign budget.", +"id": "BudgetSummary", +"properties": { +"externalBudgetId": { +"description": "Corresponds to the external_budget_id of a campaign budget. If the value is not set in the campaign budget, this field will be empty.", +"type": "string" +}, +"preTaxAmountMicros": { +"description": "The sum of charges made under this budget before taxes, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"prismaCpeCode": { +"$ref": "PrismaCpeCode", +"description": "Relevant client, product, and estimate codes from the Mediaocean Prisma tool. Only applicable for campaign budgets with an external_budget_source of EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN." +}, +"taxAmountMicros": { +"description": "The amount of tax applied to charges under this budget, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"totalAmountMicros": { +"description": "The total sum of charges made under this budget, including tax, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BulkEditAdvertiserAssignedTargetingOptionsRequest": { +"description": "Request message for BulkEditAdvertiserAssignedTargetingOptions.", +"id": "BulkEditAdvertiserAssignedTargetingOptionsRequest", +"properties": { +"createRequests": { +"description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", +"items": { +"$ref": "CreateAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"deleteRequests": { +"description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", +"items": { +"$ref": "DeleteAssignedTargetingOptionsRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAdvertiserAssignedTargetingOptionsResponse": { +"id": "BulkEditAdvertiserAssignedTargetingOptionsResponse", +"properties": { +"createdAssignedTargetingOptions": { +"description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedInventorySourcesRequest": { +"description": "Request message for AssignedInventorySourceService.BulkEdit.", +"id": "BulkEditAssignedInventorySourcesRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to these assigned inventory sources.", +"format": "int64", +"type": "string" +}, +"createdAssignedInventorySources": { +"description": "The assigned inventory sources to create in bulk, specified as a list of AssignedInventorySources.", +"items": { +"$ref": "AssignedInventorySource" +}, +"type": "array" +}, +"deletedAssignedInventorySources": { +"description": "The IDs of the assigned inventory sources to delete in bulk, specified as a list of assigned_inventory_source_ids.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner has write access to these assigned inventory sources.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BulkEditAssignedInventorySourcesResponse": { +"description": "Response message for AssignedInventorySourceService.BulkEdit.", +"id": "BulkEditAssignedInventorySourcesResponse", +"properties": { +"assignedInventorySources": { +"description": "The list of assigned inventory sources that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedInventorySource" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedLocationsRequest": { +"description": "Request message for AssignedLocationService.BulkEditAssignedLocations.", +"id": "BulkEditAssignedLocationsRequest", +"properties": { +"createdAssignedLocations": { +"description": "The assigned locations to create in bulk, specified as a list of AssignedLocation resources.", +"items": { +"$ref": "AssignedLocation" +}, +"type": "array" +}, +"deletedAssignedLocations": { +"description": "The IDs of the assigned locations to delete in bulk, specified as a list of assignedLocationId values.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedLocationsResponse": { +"id": "BulkEditAssignedLocationsResponse", +"properties": { +"assignedLocations": { +"description": "The list of assigned locations that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedUserRolesRequest": { +"description": "Request message for BulkEditAssignedUserRoles.", +"id": "BulkEditAssignedUserRolesRequest", +"properties": { +"createdAssignedUserRoles": { +"description": "The assigned user roles to create in batch, specified as a list of AssignedUserRoles.", +"items": { +"$ref": "AssignedUserRole" +}, +"type": "array" +}, +"deletedAssignedUserRoles": { +"description": "The assigned user roles to delete in batch, specified as a list of assigned_user_role_ids. The format of assigned_user_role_id is `entityType-entityid`, for example `partner-123`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedUserRolesResponse": { +"id": "BulkEditAssignedUserRolesResponse", +"properties": { +"createdAssignedUserRoles": { +"description": "The list of assigned user roles that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedUserRole" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditLineItemAssignedTargetingOptionsRequest": { +"description": "Request message for BulkEditLineItemAssignedTargetingOptions.", +"id": "BulkEditLineItemAssignedTargetingOptionsRequest", +"properties": { +"createRequests": { +"description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`.", +"items": { +"$ref": "CreateAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"deleteRequests": { +"description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`.", +"items": { +"$ref": "DeleteAssignedTargetingOptionsRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditLineItemAssignedTargetingOptionsResponse": { +"id": "BulkEditLineItemAssignedTargetingOptionsResponse", +"properties": { +"createdAssignedTargetingOptions": { +"description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditNegativeKeywordsRequest": { +"description": "Request message for NegativeKeywordService.BulkEditNegativeKeywords.", +"id": "BulkEditNegativeKeywordsRequest", +"properties": { +"createdNegativeKeywords": { +"description": "The negative keywords to create in batch, specified as a list of NegativeKeywords.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +}, +"deletedNegativeKeywords": { +"description": "The negative keywords to delete in batch, specified as a list of keyword_values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditNegativeKeywordsResponse": { +"description": "Response message for NegativeKeywordService.BulkEditNegativeKeywords.", +"id": "BulkEditNegativeKeywordsResponse", +"properties": { +"negativeKeywords": { +"description": "The list of negative keywords that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditPartnerAssignedTargetingOptionsRequest": { +"description": "Request message for BulkEditPartnerAssignedTargetingOptions.", +"id": "BulkEditPartnerAssignedTargetingOptionsRequest", +"properties": { +"createRequests": { +"description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"items": { +"$ref": "CreateAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"deleteRequests": { +"description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"items": { +"$ref": "DeleteAssignedTargetingOptionsRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditPartnerAssignedTargetingOptionsResponse": { +"id": "BulkEditPartnerAssignedTargetingOptionsResponse", +"properties": { +"createdAssignedTargetingOptions": { +"description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditSitesRequest": { +"description": "Request message for SiteService.BulkEditSites.", +"id": "BulkEditSitesRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"type": "string" +}, +"createdSites": { +"description": "The sites to create in batch, specified as a list of Sites.", +"items": { +"$ref": "Site" +}, +"type": "array" +}, +"deletedSites": { +"description": "The sites to delete in batch, specified as a list of site url_or_app_ids.", +"items": { +"type": "string" +}, +"type": "array" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BulkEditSitesResponse": { +"description": "Response message for SiteService.BulkEditSites.", +"id": "BulkEditSitesResponse", +"properties": { +"sites": { +"description": "The list of sites that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkListAdvertiserAssignedTargetingOptionsResponse": { +"id": "BulkListAdvertiserAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkListCampaignAssignedTargetingOptionsResponse": { +"id": "BulkListCampaignAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListCampaignAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkListInsertionOrderAssignedTargetingOptionsResponse": { +"id": "BulkListInsertionOrderAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkListLineItemAssignedTargetingOptionsResponse": { +"id": "BulkListLineItemAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListLineItemAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BusinessChainAssignedTargetingOptionDetails": { +"description": "Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", +"id": "BusinessChainAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of a business chain, e.g. \"KFC\", \"Chase Bank\".", +"readOnly": true, +"type": "string" +}, +"proximityRadiusAmount": { +"description": "Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6.", +"format": "double", +"type": "number" +}, +"proximityRadiusUnit": { +"description": "Required. The unit of distance by which the targeting radius is measured.", +"enum": [ +"DISTANCE_UNIT_UNSPECIFIED", +"DISTANCE_UNIT_MILES", +"DISTANCE_UNIT_KILOMETERS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Miles.", +"Kilometers." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. Accepted business chain targeting option IDs can be retrieved using SearchTargetingOptions.", +"type": "string" +} +}, +"type": "object" +}, +"BusinessChainSearchTerms": { +"description": "Search terms for Business Chain targeting options. At least one of the field should be populated.", +"id": "BusinessChainSearchTerms", +"properties": { +"businessChainQuery": { +"description": "The search query for the desired business chain. The query must be the full name of the business, e.g. \"KFC\", \"mercedes-benz\".", +"type": "string" +}, +"regionQuery": { +"description": "The search query for the desired geo region, e.g. \"Seattle\", \"United State\".", +"type": "string" +} +}, +"type": "object" +}, +"BusinessChainTargetingOptionDetails": { +"description": "Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", +"id": "BusinessChainTargetingOptionDetails", +"properties": { +"businessChain": { +"description": "Output only. The display name of the business chain, e.g. \"KFC\", \"Chase Bank\".", +"readOnly": true, +"type": "string" +}, +"geoRegion": { +"description": "Output only. The display name of the geographic region, e.g. \"Ontario, Canada\".", +"readOnly": true, +"type": "string" +}, +"geoRegionType": { +"description": "Output only. The type of the geographic region.", +"enum": [ +"GEO_REGION_TYPE_UNKNOWN", +"GEO_REGION_TYPE_OTHER", +"GEO_REGION_TYPE_COUNTRY", +"GEO_REGION_TYPE_REGION", +"GEO_REGION_TYPE_TERRITORY", +"GEO_REGION_TYPE_PROVINCE", +"GEO_REGION_TYPE_STATE", +"GEO_REGION_TYPE_PREFECTURE", +"GEO_REGION_TYPE_GOVERNORATE", +"GEO_REGION_TYPE_CANTON", +"GEO_REGION_TYPE_UNION_TERRITORY", +"GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", +"GEO_REGION_TYPE_DMA_REGION", +"GEO_REGION_TYPE_METRO", +"GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", +"GEO_REGION_TYPE_COUNTY", +"GEO_REGION_TYPE_MUNICIPALITY", +"GEO_REGION_TYPE_CITY", +"GEO_REGION_TYPE_POSTAL_CODE", +"GEO_REGION_TYPE_DEPARTMENT", +"GEO_REGION_TYPE_AIRPORT", +"GEO_REGION_TYPE_TV_REGION", +"GEO_REGION_TYPE_OKRUG", +"GEO_REGION_TYPE_BOROUGH", +"GEO_REGION_TYPE_CITY_REGION", +"GEO_REGION_TYPE_ARRONDISSEMENT", +"GEO_REGION_TYPE_NEIGHBORHOOD", +"GEO_REGION_TYPE_UNIVERSITY", +"GEO_REGION_TYPE_DISTRICT" +], +"enumDescriptions": [ +"The geographic region type is unknown.", +"The geographic region type is other.", +"The geographic region is a country.", +"The geographic region type is region.", +"The geographic region is a territory.", +"The geographic region is a province.", +"The geographic region is a state.", +"The geographic region is a prefecture.", +"The geographic region is a governorate.", +"The geographic region is a canton.", +"The geographic region is a union territory.", +"The geographic region is an autonomous community.", +"The geographic region is a designated market area (DMA) region.", +"The geographic region type is metro.", +"The geographic region is a congressional district.", +"The geographic region is a county.", +"The geographic region is a municipality.", +"The geographic region is a city.", +"The geographic region targeting type is postal code.", +"The geographic region targeting type is department.", +"The geographic region is an airport.", +"The geographic region is a TV region.", +"The geographic region is an okrug.", +"The geographic region is a borough.", +"The geographic region is a city region.", +"The geographic region is an arrondissement.", +"The geographic region is a neighborhood.", +"The geographic region is a university.", +"The geographic region is a district." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Campaign": { +"description": "A single campaign.", +"id": "Campaign", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the campaign belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"campaignBudgets": { +"description": "The list of budgets available to this campaign. If this field is not set, the campaign uses an unlimited budget.", +"items": { +"$ref": "CampaignBudget" +}, +"type": "array" +}, +"campaignFlight": { +"$ref": "CampaignFlight", +"description": "Required. The planned spend and duration of the campaign." +}, +"campaignGoal": { +"$ref": "CampaignGoal", +"description": "Required. The goal of the campaign." +}, +"campaignId": { +"description": "Output only. The unique ID of the campaign. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the campaign. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not the insertion orders under this campaign can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method, `ENTITY_STATUS_ARCHIVED` is not allowed.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"frequencyCap": { +"$ref": "FrequencyCap", +"description": "Required. The frequency cap setting of the campaign." +}, +"name": { +"description": "Output only. The resource name of the campaign.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the campaign was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CampaignBudget": { +"description": "Settings that control how the campaign budget is allocated.", +"id": "CampaignBudget", +"properties": { +"budgetAmountMicros": { +"description": "Required. The total amount the linked insertion order segments can budget. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"budgetId": { +"description": "The unique ID of the campaign budget. Assigned by the system. Do not set for new budgets. Must be included when updating or adding budgets to campaign_budgets. Otherwise, a new ID will be generated and assigned.", +"format": "int64", +"type": "string" +}, +"budgetUnit": { +"description": "Required. Immutable. Specifies whether the budget is measured in currency or impressions.", +"enum": [ +"BUDGET_UNIT_UNSPECIFIED", +"BUDGET_UNIT_CURRENCY", +"BUDGET_UNIT_IMPRESSIONS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Budgeting in currency amounts.", +"Budgeting in impression amounts." +], +"type": "string" +}, +"dateRange": { +"$ref": "DateRange", +"description": "Required. The date range for the campaign budget. Linked budget segments may have a different date range. They are resolved relative to the parent advertiser's time zone. Both `start_date` and `end_date` must be before the year 2037." +}, +"displayName": { +"description": "Required. The display name of the budget. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"externalBudgetId": { +"description": "Immutable. The ID identifying this budget to the external source. If this field is set and the invoice detail level of the corresponding billing profile is set to \"Budget level PO\", all impressions served against this budget will include this ID on the invoice. Must be unique under the campaign.", +"type": "string" +}, +"externalBudgetSource": { +"description": "Required. The external source of the budget.", +"enum": [ +"EXTERNAL_BUDGET_SOURCE_UNSPECIFIED", +"EXTERNAL_BUDGET_SOURCE_NONE", +"EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN" +], +"enumDescriptions": [ +"External budget source value is not specified or unknown in this version.", +"Budget has no external source.", +"Budget source is Mediaocean." +], +"type": "string" +}, +"invoiceGroupingId": { +"description": "Immutable. The ID used to group budgets to be included the same invoice. If this field is set and the invoice level of the corresponding billing profile is set to \"Budget invoice grouping ID\", all external_budget_id sharing the same invoice_grouping_id will be grouped in the same invoice.", +"type": "string" +}, +"prismaConfig": { +"$ref": "PrismaConfig", +"description": "Additional metadata for use by the Mediaocean Prisma tool. Required for Mediaocean budgets. Only applicable to prisma_enabled advertisers." +} +}, +"type": "object" +}, +"CampaignFlight": { +"description": "Settings that track the planned spend and duration of a campaign.", +"id": "CampaignFlight", +"properties": { +"plannedDates": { +"$ref": "DateRange", +"description": "Required. The dates that the campaign is expected to run. They are resolved relative to the parent advertiser's time zone. * The dates specified here will not affect serving. They are used to generate alerts and warnings. For example, if the flight date of any child insertion order is outside the range of these dates, the user interface will show a warning. * `start_date` is required and must be the current date or later. * `end_date` is optional. If specified, it must be the `start_date` or later. * Any specified date must be before the year 2037." +}, +"plannedSpendAmountMicros": { +"description": "The amount the campaign is expected to spend for its given planned_dates. This will not limit serving, but will be used for tracking spend in the DV360 UI. The amount is in micros. Must be greater than or equal to 0. For example, 500000000 represents 500 standard units of the currency.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CampaignGoal": { +"description": "Settings that control the goal of a campaign.", +"id": "CampaignGoal", +"properties": { +"campaignGoalType": { +"description": "Required. The type of the campaign goal.", +"enum": [ +"CAMPAIGN_GOAL_TYPE_UNSPECIFIED", +"CAMPAIGN_GOAL_TYPE_APP_INSTALL", +"CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS", +"CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION", +"CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" +], +"enumDescriptions": [ +"Goal value is not specified or unknown in this version.", +"Drive app installs or engagements.", +"Raise awareness of a brand or product.", +"Drive offline or in-store sales.", +"Drive online action or visits." +], +"type": "string" +}, +"performanceGoal": { +"$ref": "PerformanceGoal", +"description": "Required. The performance goal of the campaign. Acceptable values for performance_goal_type are: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_OTHER`" +} +}, +"type": "object" +}, +"CarrierAndIspAssignedTargetingOptionDetails": { +"description": "Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`.", +"id": "CarrierAndIspAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the carrier or ISP.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`.", +"type": "string" +} +}, +"type": "object" +}, +"CarrierAndIspTargetingOptionDetails": { +"description": "Represents a targetable carrier or ISP. This will be populated in the carrier_and_isp_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`.", +"id": "CarrierAndIspTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the carrier or ISP.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type indicating if it's carrier or ISP.", +"enum": [ +"CARRIER_AND_ISP_TYPE_UNSPECIFIED", +"CARRIER_AND_ISP_TYPE_ISP", +"CARRIER_AND_ISP_TYPE_CARRIER" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Indicates this targeting resource refers to an ISP.", +"Indicates this targeting resource refers to a mobile carrier." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CategoryAssignedTargetingOptionDetails": { +"description": "Assigned category targeting option details. This will be populated in the category_details field when targeting_type is `TARGETING_TYPE_CATEGORY`.", +"id": "CategoryAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the category.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CATEGORY`.", +"type": "string" +} +}, +"type": "object" +}, +"CategoryTargetingOptionDetails": { +"description": "Represents a targetable category. This will be populated in the category_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CATEGORY`.", +"id": "CategoryTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the category.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Channel": { +"description": "A single channel. Channels are custom groups of related websites and apps.", +"id": "Channel", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the channel.", +"format": "int64", +"type": "string" +}, +"channelId": { +"description": "Output only. The unique ID of the channel. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the channel. Must be UTF-8 encoded with a maximum length of 240 bytes.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the channel.", +"readOnly": true, +"type": "string" +}, +"negativelyTargetedLineItemCount": { +"description": "Output only. Number of line items that are directly targeting this channel negatively.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the channel.", +"format": "int64", +"type": "string" +}, +"positivelyTargetedLineItemCount": { +"description": "Output only. Number of line items that are directly targeting this channel positively.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ChannelAssignedTargetingOptionDetails": { +"description": "Details for assigned channel targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CHANNEL`.", +"id": "ChannelAssignedTargetingOptionDetails", +"properties": { +"channelId": { +"description": "Required. ID of the channel. Should refer to the channel ID field on a [Partner-owned channel](partners.channels#Channel.FIELDS.channel_id) or [advertiser-owned channel](advertisers.channels#Channel.FIELDS.channel_id) resource.", +"format": "int64", +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. For advertiser level assigned targeting option, this field must be true.", +"type": "boolean" +} +}, +"type": "object" +}, +"CmHybridConfig": { +"description": "Settings for advertisers that use both Campaign Manager 360 (CM360) and third-party ad servers.", +"id": "CmHybridConfig", +"properties": { +"cmAccountId": { +"description": "Required. Immutable. Account ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", +"format": "int64", +"type": "string" +}, +"cmAdvertiserIds": { +"description": "Output only. The set of CM360 Advertiser IDs sharing the CM360 Floodlight configuration.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"cmFloodlightConfigId": { +"description": "Required. Immutable. ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", +"format": "int64", +"type": "string" +}, +"cmFloodlightLinkingAuthorized": { +"description": "Required. Immutable. By setting this field to `true`, you, on behalf of your company, authorize the sharing of information from the given Floodlight configuration to this Display & Video 360 advertiser.", +"type": "boolean" +}, +"cmSyncableSiteIds": { +"description": "A list of CM360 sites whose placements will be synced to DV360 as creatives. If absent or empty in CreateAdvertiser method, the system will automatically create a CM360 site. Removing sites from this list may cause DV360 creatives synced from CM360 to be deleted. At least one site must be specified.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"dv360ToCmCostReportingEnabled": { +"description": "Whether or not to report DV360 cost to CM360.", +"type": "boolean" +}, +"dv360ToCmDataSharingEnabled": { +"description": "Whether or not to include DV360 data in CM360 data transfer reports.", +"type": "boolean" +} +}, +"type": "object" +}, +"CmTrackingAd": { +"description": "A Campaign Manager 360 tracking ad.", +"id": "CmTrackingAd", +"properties": { +"cmAdId": { +"description": "The ad ID of the campaign manager 360 tracking Ad.", +"format": "int64", +"type": "string" +}, +"cmCreativeId": { +"description": "The creative ID of the campaign manager 360 tracking Ad.", +"format": "int64", +"type": "string" +}, +"cmPlacementId": { +"description": "The placement ID of the campaign manager 360 tracking Ad.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CombinedAudience": { +"description": "Describes a combined audience resource.", +"id": "CombinedAudience", +"properties": { +"combinedAudienceId": { +"description": "Output only. The unique ID of the combined audience. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The display name of the combined audience. .", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the combined audience.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CombinedAudienceGroup": { +"description": "Details of combined audience group. All combined audience targeting settings are logically \u2018OR\u2019 of each other.", +"id": "CombinedAudienceGroup", +"properties": { +"settings": { +"description": "Required. All combined audience targeting settings in combined audience group. Repeated settings with same id will be ignored. The number of combined audience settings should be no more than five, error will be thrown otherwise.", +"items": { +"$ref": "CombinedAudienceTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"CombinedAudienceTargetingSetting": { +"description": "Details of combined audience targeting setting.", +"id": "CombinedAudienceTargetingSetting", +"properties": { +"combinedAudienceId": { +"description": "Required. Combined audience id of combined audience targeting setting. This id is combined_audience_id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Consent": { +"description": "User consent status.", +"id": "Consent", +"properties": { +"adPersonalization": { +"description": "Represents consent for ad personalization.", +"enum": [ +"CONSENT_STATUS_UNSPECIFIED", +"CONSENT_STATUS_GRANTED", +"CONSENT_STATUS_DENIED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Consent is granted.", +"Consent is denied." +], +"type": "string" +}, +"adUserData": { +"description": "Represents consent for ad user data.", +"enum": [ +"CONSENT_STATUS_UNSPECIFIED", +"CONSENT_STATUS_GRANTED", +"CONSENT_STATUS_DENIED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Consent is granted.", +"Consent is denied." +], +"type": "string" +} +}, +"type": "object" +}, +"ContactInfo": { +"description": "Contact information defining a Customer Match audience member.", +"id": "ContactInfo", +"properties": { +"countryCode": { +"description": "Country code of the member. Must also be set with the following fields: * hashed_first_name * hashed_last_name * zip_codes", +"type": "string" +}, +"hashedEmails": { +"description": "A list of SHA256 hashed email of the member. Before hashing, remove all whitespace and make sure the string is all lowercase.", +"items": { +"type": "string" +}, +"type": "array" +}, +"hashedFirstName": { +"description": "SHA256 hashed first name of the member. Before hashing, remove all whitespace and make sure the string is all lowercase. Must also be set with the following fields: * country_code * hashed_last_name * zip_codes", +"type": "string" +}, +"hashedLastName": { +"description": "SHA256 hashed last name of the member. Before hashing, remove all whitespace and make sure the string is all lowercase. Must also be set with the following fields: * country_code * hashed_first_name * zip_codes", +"type": "string" +}, +"hashedPhoneNumbers": { +"description": "A list of SHA256 hashed phone numbers of the member. Before hashing, all phone numbers must be formatted using the [E.164 format](//en.wikipedia.org/wiki/E.164) and include the country calling code.", +"items": { +"type": "string" +}, +"type": "array" +}, +"zipCodes": { +"description": "A list of zip codes of the member. Must also be set with the following fields: * country_code * hashed_first_name * hashed_last_name", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContactInfoList": { +"description": "Wrapper message for a list of contact information defining Customer Match audience members.", +"id": "ContactInfoList", +"properties": { +"consent": { +"$ref": "Consent", +"description": "Input only. The consent setting for the users in contact_infos. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." +}, +"contactInfos": { +"description": "A list of ContactInfo objects defining Customer Match audience members. The size of members after splitting the contact_infos mustn't be greater than 500,000.", +"items": { +"$ref": "ContactInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContentDurationAssignedTargetingOptionDetails": { +"description": "Details for content duration assigned targeting option. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`. Explicitly targeting all options is not supported. Remove all content duration targeting options to achieve this effect.", +"id": "ContentDurationAssignedTargetingOptionDetails", +"properties": { +"contentDuration": { +"description": "Output only. The content duration.", +"enum": [ +"CONTENT_DURATION_UNSPECIFIED", +"CONTENT_DURATION_UNKNOWN", +"CONTENT_DURATION_0_TO_1_MIN", +"CONTENT_DURATION_1_TO_5_MIN", +"CONTENT_DURATION_5_TO_15_MIN", +"CONTENT_DURATION_15_TO_30_MIN", +"CONTENT_DURATION_30_TO_60_MIN", +"CONTENT_DURATION_OVER_60_MIN" +], +"enumDescriptions": [ +"Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", +"The content duration is unknown.", +"Content is 0-1 minute long.", +"Content is 1-5 minutes long.", +"Content is 5-15 minutes long.", +"Content is 15-30 minutes long.", +"Content is 30-60 minutes long.", +"Content is over 60 minutes long." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentDurationTargetingOptionDetails": { +"description": "Represents a targetable content duration. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", +"id": "ContentDurationTargetingOptionDetails", +"properties": { +"contentDuration": { +"description": "Output only. The content duration.", +"enum": [ +"CONTENT_DURATION_UNSPECIFIED", +"CONTENT_DURATION_UNKNOWN", +"CONTENT_DURATION_0_TO_1_MIN", +"CONTENT_DURATION_1_TO_5_MIN", +"CONTENT_DURATION_5_TO_15_MIN", +"CONTENT_DURATION_15_TO_30_MIN", +"CONTENT_DURATION_30_TO_60_MIN", +"CONTENT_DURATION_OVER_60_MIN" +], +"enumDescriptions": [ +"Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", +"The content duration is unknown.", +"Content is 0-1 minute long.", +"Content is 1-5 minutes long.", +"Content is 5-15 minutes long.", +"Content is 15-30 minutes long.", +"Content is 30-60 minutes long.", +"Content is over 60 minutes long." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentGenreAssignedTargetingOptionDetails": { +"description": "Details for content genre assigned targeting option. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`. Explicitly targeting all options is not supported. Remove all content genre targeting options to achieve this effect.", +"id": "ContentGenreAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the content genre.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentGenreTargetingOptionDetails": { +"description": "Represents a targetable content genre. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", +"id": "ContentGenreTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the content genre", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentInstreamPositionAssignedTargetingOptionDetails": { +"description": "Assigned content instream position targeting option details. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", +"id": "ContentInstreamPositionAssignedTargetingOptionDetails", +"properties": { +"adType": { +"description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. * `AD_TYPE_AUDIO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_AUDIO_DEFAULT`.", +"enum": [ +"AD_TYPE_UNSPECIFIED", +"AD_TYPE_DISPLAY", +"AD_TYPE_VIDEO", +"AD_TYPE_AUDIO" +], +"enumDescriptions": [ +"Ad type is not specified or is unknown in this version.", +"Display creatives, e.g. image and HTML5.", +"Video creatives, e.g. video ads that play during streaming content in video players.", +"Audio creatives, e.g. audio ads that play during audio content." +], +"readOnly": true, +"type": "string" +}, +"contentInstreamPosition": { +"description": "Required. The content instream position for video or audio ads.", +"enum": [ +"CONTENT_INSTREAM_POSITION_UNSPECIFIED", +"CONTENT_INSTREAM_POSITION_PRE_ROLL", +"CONTENT_INSTREAM_POSITION_MID_ROLL", +"CONTENT_INSTREAM_POSITION_POST_ROLL", +"CONTENT_INSTREAM_POSITION_UNKNOWN" +], +"enumDescriptions": [ +"Content instream position is not specified in this version. This enum is a place holder for a default value and does not represent a real in stream ad position.", +"Ads that play before streaming content.", +"Ads that play between the beginning and end of streaming content.", +"Ads that play at the end of streaming content.", +"Ads instream position is unknown." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentInstreamPositionTargetingOptionDetails": { +"description": "Represents a targetable content instream position, which could be used by video and audio ads. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", +"id": "ContentInstreamPositionTargetingOptionDetails", +"properties": { +"contentInstreamPosition": { +"description": "Output only. The content instream position.", +"enum": [ +"CONTENT_INSTREAM_POSITION_UNSPECIFIED", +"CONTENT_INSTREAM_POSITION_PRE_ROLL", +"CONTENT_INSTREAM_POSITION_MID_ROLL", +"CONTENT_INSTREAM_POSITION_POST_ROLL", +"CONTENT_INSTREAM_POSITION_UNKNOWN" +], +"enumDescriptions": [ +"Content instream position is not specified in this version. This enum is a place holder for a default value and does not represent a real in stream ad position.", +"Ads that play before streaming content.", +"Ads that play between the beginning and end of streaming content.", +"Ads that play at the end of streaming content.", +"Ads instream position is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentOutstreamPositionAssignedTargetingOptionDetails": { +"description": "Assigned content outstream position targeting option details. This will be populated in the content_outstream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", +"id": "ContentOutstreamPositionAssignedTargetingOptionDetails", +"properties": { +"adType": { +"description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.", +"enum": [ +"AD_TYPE_UNSPECIFIED", +"AD_TYPE_DISPLAY", +"AD_TYPE_VIDEO", +"AD_TYPE_AUDIO" +], +"enumDescriptions": [ +"Ad type is not specified or is unknown in this version.", +"Display creatives, e.g. image and HTML5.", +"Video creatives, e.g. video ads that play during streaming content in video players.", +"Audio creatives, e.g. audio ads that play during audio content." +], +"readOnly": true, +"type": "string" +}, +"contentOutstreamPosition": { +"description": "Required. The content outstream position.", +"enum": [ +"CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", +"CONTENT_OUTSTREAM_POSITION_UNKNOWN", +"CONTENT_OUTSTREAM_POSITION_IN_ARTICLE", +"CONTENT_OUTSTREAM_POSITION_IN_BANNER", +"CONTENT_OUTSTREAM_POSITION_IN_FEED", +"CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" +], +"enumDescriptions": [ +"Content outstream position is not specified in this version. This enum is a place holder for a default value and does not represent a real content outstream position.", +"The ad position is unknown in the content outstream.", +"Ads that appear between the paragraphs of your pages.", +"Ads that display on the top and the sides of a page.", +"Ads that appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Ads shown before or between content loads." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentOutstreamPositionTargetingOptionDetails": { +"description": "Represents a targetable content outstream position, which could be used by display and video ads. This will be populated in the content_outstream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", +"id": "ContentOutstreamPositionTargetingOptionDetails", +"properties": { +"contentOutstreamPosition": { +"description": "Output only. The content outstream position.", +"enum": [ +"CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", +"CONTENT_OUTSTREAM_POSITION_UNKNOWN", +"CONTENT_OUTSTREAM_POSITION_IN_ARTICLE", +"CONTENT_OUTSTREAM_POSITION_IN_BANNER", +"CONTENT_OUTSTREAM_POSITION_IN_FEED", +"CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" +], +"enumDescriptions": [ +"Content outstream position is not specified in this version. This enum is a place holder for a default value and does not represent a real content outstream position.", +"The ad position is unknown in the content outstream.", +"Ads that appear between the paragraphs of your pages.", +"Ads that display on the top and the sides of a page.", +"Ads that appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Ads shown before or between content loads." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentStreamTypeAssignedTargetingOptionDetails": { +"description": "Details for content stream type assigned targeting option. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`. Explicitly targeting all options is not supported. Remove all content stream type targeting options to achieve this effect.", +"id": "ContentStreamTypeAssignedTargetingOptionDetails", +"properties": { +"contentStreamType": { +"description": "Output only. The content stream type.", +"enum": [ +"CONTENT_STREAM_TYPE_UNSPECIFIED", +"CONTENT_LIVE_STREAM", +"CONTENT_ON_DEMAND" +], +"enumDescriptions": [ +"Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The content is being live-streamed.", +"The content is viewed on-demand." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentStreamTypeTargetingOptionDetails": { +"description": "Represents a targetable content stream type. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", +"id": "ContentStreamTypeTargetingOptionDetails", +"properties": { +"contentStreamType": { +"description": "Output only. The content stream type.", +"enum": [ +"CONTENT_STREAM_TYPE_UNSPECIFIED", +"CONTENT_LIVE_STREAM", +"CONTENT_ON_DEMAND" +], +"enumDescriptions": [ +"Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The content is being live-streamed.", +"The content is viewed on-demand." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConversionCountingConfig": { +"description": "Settings that control how conversions are counted. All post-click conversions will be counted. A percentage value can be set for post-view conversions counting.", +"id": "ConversionCountingConfig", +"properties": { +"floodlightActivityConfigs": { +"description": "The Floodlight activity configs used to track conversions. The number of conversions counted is the sum of all of the conversions counted by all of the Floodlight activity IDs specified in this field.", +"items": { +"$ref": "TrackingFloodlightActivityConfig" +}, +"type": "array" +}, +"postViewCountPercentageMillis": { +"description": "The percentage of post-view conversions to count, in millis (1/1000 of a percent). Must be between 0 and 100000 inclusive. For example, to track 50% of the post-click conversions, set a value of 50000.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CounterEvent": { +"description": "Counter event of the creative.", +"id": "CounterEvent", +"properties": { +"name": { +"description": "Required. The name of the counter event.", +"type": "string" +}, +"reportingName": { +"description": "Required. The name used to identify this counter event in reports.", +"type": "string" +} +}, +"type": "object" +}, +"CreateAssetRequest": { +"description": "A request message for CreateAsset.", +"id": "CreateAssetRequest", +"properties": { +"filename": { +"description": "Required. The filename of the asset, including the file extension. The filename must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"CreateAssetResponse": { +"description": "A response message for CreateAsset.", +"id": "CreateAssetResponse", +"properties": { +"asset": { +"$ref": "Asset", +"description": "The uploaded asset, if successful." +} +}, +"type": "object" +}, +"CreateAssignedTargetingOptionsRequest": { +"description": "A request listing which assigned targeting options of a given targeting type should be created and added.", +"id": "CreateAssignedTargetingOptionsRequest", +"properties": { +"assignedTargetingOptions": { +"description": "Required. The assigned targeting options to create and add.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateSdfDownloadTaskRequest": { +"description": "Request message for [SdfDownloadTaskService.CreateSdfDownloadTask].", +"id": "CreateSdfDownloadTaskRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser to download SDF for.", +"format": "int64", +"type": "string" +}, +"idFilter": { +"$ref": "IdFilter", +"description": "Filters on entities by their entity IDs." +}, +"inventorySourceFilter": { +"$ref": "InventorySourceFilter", +"description": "Filters on Inventory Sources by their IDs." +}, +"parentEntityFilter": { +"$ref": "ParentEntityFilter", +"description": "Filters on selected file types. The entities in each file are filtered by a chosen set of filter entities. The filter entities must be the same type as, or a parent type of, the selected file types." +}, +"partnerId": { +"description": "The ID of the partner to download SDF for.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Required. The SDF version of the downloaded file. If set to `SDF_VERSION_UNSPECIFIED`, this will default to the version specified by the advertiser or partner identified by `root_id`. An advertiser inherits its SDF version from its partner unless configured otherwise.", +"enum": [ +"SDF_VERSION_UNSPECIFIED", +"SDF_VERSION_3_1", +"SDF_VERSION_4", +"SDF_VERSION_4_1", +"SDF_VERSION_4_2", +"SDF_VERSION_5", +"SDF_VERSION_5_1", +"SDF_VERSION_5_2", +"SDF_VERSION_5_3", +"SDF_VERSION_5_4", +"SDF_VERSION_5_5", +"SDF_VERSION_6", +"SDF_VERSION_7" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"SDF version value is not specified or is unknown in this version.", +"SDF version 3.1", +"SDF version 4", +"SDF version 4.1", +"SDF version 4.2", +"SDF version 5.", +"SDF version 5.1", +"SDF version 5.2", +"SDF version 5.3", +"SDF version 5.4", +"SDF version 5.5", +"SDF version 6", +"SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version. Currently in beta. Only available for use by a subset of users." +], +"type": "string" +} +}, +"type": "object" +}, +"Creative": { +"description": "A single Creative.", +"id": "Creative", +"properties": { +"additionalDimensions": { +"description": "Additional dimensions. Applicable when creative_type is one of: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` * `CREATIVE_TYPE_PUBLISHER_HOSTED` If this field is specified, width_pixels and height_pixels are both required and must be greater than or equal to 0.", +"items": { +"$ref": "Dimensions" +}, +"type": "array" +}, +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the creative belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"appendedTag": { +"description": "Third-party HTML tracking tag to be appended to the creative tag.", +"type": "string" +}, +"assets": { +"description": "Required. Assets associated to this creative.", +"items": { +"$ref": "AssetAssociation" +}, +"type": "array" +}, +"cmPlacementId": { +"description": "Output only. The unique ID of the Campaign Manager 360 placement associated with the creative. This field is only applicable for creatives that are synced from Campaign Manager.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"cmTrackingAd": { +"$ref": "CmTrackingAd", +"description": "The Campaign Manager 360 tracking ad associated with the creative. Optional for the following creative_type when created by an advertiser that uses both Campaign Manager 360 and third-party ad serving: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` Output only for other cases." +}, +"companionCreativeIds": { +"description": "The IDs of companion creatives for a video creative. You can assign existing display creatives (with image or HTML5 assets) to serve surrounding the publisher's video player. Companions display around the video player while the video is playing and remain after the video has completed. Creatives contain additional dimensions can not be companion creatives. This field is only supported for following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"counterEvents": { +"description": "Counter events for a rich media creative. Counters track the number of times that a user interacts with any part of a rich media creative in a specified way (mouse-overs, mouse-outs, clicks, taps, data loading, keyboard entries, etc.). Any event that can be captured in the creative can be recorded as a counter. Leave it empty or unset for creatives containing image assets only.", +"items": { +"$ref": "CounterEvent" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The timestamp when the creative was created. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creativeAttributes": { +"description": "Output only. A list of attributes of the creative that is generated by the system.", +"items": { +"enum": [ +"CREATIVE_ATTRIBUTE_UNSPECIFIED", +"CREATIVE_ATTRIBUTE_VAST", +"CREATIVE_ATTRIBUTE_VPAID_LINEAR", +"CREATIVE_ATTRIBUTE_VPAID_NON_LINEAR" +], +"enumDescriptions": [ +"The creative attribute is not specified or is unknown in this version.", +"The creative is a VAST creative.", +"The creative is a linear VPAID creative.", +"The creative is a non-linear VPAID creative." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"creativeId": { +"description": "Output only. The unique ID of the creative. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"creativeType": { +"description": "Required. Immutable. The type of the creative.", +"enum": [ +"CREATIVE_TYPE_UNSPECIFIED", +"CREATIVE_TYPE_STANDARD", +"CREATIVE_TYPE_EXPANDABLE", +"CREATIVE_TYPE_VIDEO", +"CREATIVE_TYPE_NATIVE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_SITE_SQUARE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL", +"CREATIVE_TYPE_LIGHTBOX", +"CREATIVE_TYPE_NATIVE_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE", +"CREATIVE_TYPE_AUDIO", +"CREATIVE_TYPE_PUBLISHER_HOSTED", +"CREATIVE_TYPE_NATIVE_VIDEO", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Standard display creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Expandable creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_THIRD_PARTY`", +"Video creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Native creative rendered by publishers with assets from advertiser. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile creative (banner). Create and update methods are **not** supported for this creative type.", +"Square native creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Interstitial creative including both display and video. Create and update methods are **not** supported for this creative type.", +"Responsive and expandable Lightbox creative. Create and update methods are **not** supported for this creative type.", +"Native app install creative. Create and update methods are **not** supported for this creative type.", +"Square native app install creative. Create and update methods are **not** supported for this creative type.", +"Audio creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Publisher hosted creative. Create and update methods are **not** supported for this creative type.", +"Native video creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile video creative. Create and update methods are **not** supported for this creative type." +], +"type": "string" +}, +"dimensions": { +"$ref": "Dimensions", +"description": "Required. Primary dimensions of the creative. Applicable to all creative types. The value of width_pixels and height_pixels defaults to `0` when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO`" +}, +"displayName": { +"description": "Required. The display name of the creative. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"dynamic": { +"description": "Output only. Indicates whether the creative is dynamic.", +"readOnly": true, +"type": "boolean" +}, +"entityStatus": { +"description": "Required. Controls whether or not the creative can serve. Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED` * `ENTITY_STATUS_PAUSED`", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"exitEvents": { +"description": "Required. Exit events for this creative. An exit (also known as a click tag) is any area in your creative that someone can click or tap to open an advertiser's landing page. Every creative must include at least one exit. You can add an exit to your creative in any of the following ways: * Use Google Web Designer's tap area. * Define a JavaScript variable called \"clickTag\". * Use the Enabler (Enabler.exit()) to track exits in rich media formats.", +"items": { +"$ref": "ExitEvent" +}, +"type": "array" +}, +"expandOnHover": { +"description": "Optional. Indicates the creative will automatically expand on hover. Optional and only valid for third-party expandable creatives. Third-party expandable creatives are creatives with following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`", +"type": "boolean" +}, +"expandingDirection": { +"description": "Optional. Specifies the expanding direction of the creative. Required and only valid for third-party expandable creatives. Third-party expandable creatives are creatives with following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`", +"enum": [ +"EXPANDING_DIRECTION_UNSPECIFIED", +"EXPANDING_DIRECTION_NONE", +"EXPANDING_DIRECTION_UP", +"EXPANDING_DIRECTION_DOWN", +"EXPANDING_DIRECTION_LEFT", +"EXPANDING_DIRECTION_RIGHT", +"EXPANDING_DIRECTION_UP_AND_LEFT", +"EXPANDING_DIRECTION_UP_AND_RIGHT", +"EXPANDING_DIRECTION_DOWN_AND_LEFT", +"EXPANDING_DIRECTION_DOWN_AND_RIGHT", +"EXPANDING_DIRECTION_UP_OR_DOWN", +"EXPANDING_DIRECTION_LEFT_OR_RIGHT", +"EXPANDING_DIRECTION_ANY_DIAGONAL" +], +"enumDescriptions": [ +"The expanding direction is not specified.", +"Does not expand in any direction.", +"Expands up.", +"Expands down.", +"Expands left.", +"Expands right.", +"Expands up and to the left side.", +"Expands up and to the right side.", +"Expands down and to the left side.", +"Expands down and to the right side.", +"Expands either up or down.", +"Expands to either the left or the right side.", +"Can expand in any diagonal direction." +], +"type": "string" +}, +"hostingSource": { +"description": "Required. Indicates where the creative is hosted.", +"enum": [ +"HOSTING_SOURCE_UNSPECIFIED", +"HOSTING_SOURCE_CM", +"HOSTING_SOURCE_THIRD_PARTY", +"HOSTING_SOURCE_HOSTED", +"HOSTING_SOURCE_RICH_MEDIA" +], +"enumDescriptions": [ +"Hosting source is not specified or is unknown in this version.", +"A creative synced from Campaign Manager 360. Create and update methods are **not** supported for this hosting type.", +"A creative hosted by a third-party ad server (3PAS). Create and update methods are supported for this hosting type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", +"A creative created in DV360 and hosted by Campaign Manager 360. Create and update methods are supported for this hosting type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", +"A rich media creative created in Studio and hosted by Campaign Manager 360. Create and update methods are **not** supported for this hosting type." +], +"type": "string" +}, +"html5Video": { +"description": "Output only. Indicates the third-party VAST tag creative requires HTML5 Video support. Output only and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_VIDEO`", +"readOnly": true, +"type": "boolean" +}, +"iasCampaignMonitoring": { +"description": "Indicates whether Integral Ad Science (IAS) campaign monitoring is enabled. To enable this for the creative, make sure the Advertiser.creative_config.ias_client_id has been set to your IAS client ID.", +"type": "boolean" +}, +"integrationCode": { +"description": "ID information used to link this creative to an external system. Must be UTF-8 encoded with a length of no more than 10,000 characters.", +"type": "string" +}, +"jsTrackerUrl": { +"description": "JavaScript measurement URL from supported third-party verification providers (ComScore, DoubleVerify, IAS, Moat). HTML script tags are not supported. This field is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"type": "string" +}, +"lineItemIds": { +"description": "Output only. The IDs of the line items this creative is associated with. To associate a creative to a line item, use LineItem.creative_ids instead.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"mediaDuration": { +"description": "Output only. Media duration of the creative. Applicable when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_PUBLISHER_HOSTED`", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"mp3Audio": { +"description": "Output only. Indicates the third-party audio creative supports MP3. Output only and only valid for third-party audio creatives. Third-party audio creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO`", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Output only. The resource name of the creative.", +"readOnly": true, +"type": "string" +}, +"notes": { +"description": "User notes for this creative. Must be UTF-8 encoded with a length of no more than 20,000 characters.", +"type": "string" +}, +"obaIcon": { +"$ref": "ObaIcon", +"description": "Specifies the OBA icon for a video creative. This field is only supported in following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"oggAudio": { +"description": "Output only. Indicates the third-party audio creative supports OGG. Output only and only valid for third-party audio creatives. Third-party audio creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO`", +"readOnly": true, +"type": "boolean" +}, +"progressOffset": { +"$ref": "AudioVideoOffset", +"description": "Amount of time to play the video before counting a view. This field is required when skippable is true. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"requireHtml5": { +"description": "Optional. Indicates that the creative relies on HTML5 to render properly. Optional and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", +"type": "boolean" +}, +"requireMraid": { +"description": "Optional. Indicates that the creative requires MRAID (Mobile Rich Media Ad Interface Definitions system). Set this if the creative relies on mobile gestures for interactivity, such as swiping or tapping. Optional and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", +"type": "boolean" +}, +"requirePingForAttribution": { +"description": "Optional. Indicates that the creative will wait for a return ping for attribution. Only valid when using a Campaign Manager 360 tracking ad with a third-party ad server parameter and the ${DC_DBM_TOKEN} macro. Optional and only valid for third-party tag creatives or third-party VAST tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", +"type": "boolean" +}, +"reviewStatus": { +"$ref": "ReviewStatusInfo", +"description": "Output only. The current status of the creative review process.", +"readOnly": true +}, +"skipOffset": { +"$ref": "AudioVideoOffset", +"description": "Amount of time to play the video before the skip button appears. This field is required when skippable is true. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"skippable": { +"description": "Whether the user can choose to skip a video creative. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`", +"type": "boolean" +}, +"thirdPartyTag": { +"description": "Optional. The original third-party tag used for the creative. Required and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", +"type": "string" +}, +"thirdPartyUrls": { +"description": "Tracking URLs from third parties to track interactions with a video creative. This field is only supported for the following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"items": { +"$ref": "ThirdPartyUrl" +}, +"type": "array" +}, +"timerEvents": { +"description": "Timer custom events for a rich media creative. Timers track the time during which a user views and interacts with a specified part of a rich media creative. A creative can have multiple timer events, each timed independently. Leave it empty or unset for creatives containing image assets only.", +"items": { +"$ref": "TimerEvent" +}, +"type": "array" +}, +"trackerUrls": { +"description": "Tracking URLs for analytics providers or third-party ad technology vendors. The URLs must start with https (except on inventory that doesn't require SSL compliance). If using macros in your URL, use only macros supported by Display & Video 360. Standard URLs only, no IMG or SCRIPT tags. This field is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"items": { +"type": "string" +}, +"type": "array" +}, +"transcodes": { +"description": "Output only. Audio/Video transcodes. Display & Video 360 transcodes the main asset into a number of alternative versions that use different file formats or have different properties (resolution, audio bit rate, and video bit rate), each designed for specific video players or bandwidths. These transcodes give a publisher's system more options to choose from for each impression on your video and ensures that the appropriate file serves based on the viewer\u2019s connection and screen size. This field is only supported in following creative_type: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_AUDIO`", +"items": { +"$ref": "Transcode" +}, +"readOnly": true, +"type": "array" +}, +"universalAdId": { +"$ref": "UniversalAdId", +"description": "Optional. An optional creative identifier provided by a registry that is unique across all platforms. Universal Ad ID is part of the VAST 4.0 standard. It can be modified after the creative is created. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"updateTime": { +"description": "Output only. The timestamp when the creative was last updated, either by the user or system (e.g. creative review). Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vastTagUrl": { +"description": "Optional. The URL of the VAST tag for a third-party VAST tag creative. Required and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", +"type": "string" +}, +"vpaid": { +"description": "Output only. Indicates the third-party VAST tag creative requires VPAID (Digital Video Player-Ad Interface). Output only and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_VIDEO`", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"CreativeConfig": { +"description": "Creative requirements configuration for the inventory source.", +"id": "CreativeConfig", +"properties": { +"creativeType": { +"description": "The type of creative that can be assigned to the inventory source. Only the following types are supported: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", +"enum": [ +"CREATIVE_TYPE_UNSPECIFIED", +"CREATIVE_TYPE_STANDARD", +"CREATIVE_TYPE_EXPANDABLE", +"CREATIVE_TYPE_VIDEO", +"CREATIVE_TYPE_NATIVE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_SITE_SQUARE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL", +"CREATIVE_TYPE_LIGHTBOX", +"CREATIVE_TYPE_NATIVE_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE", +"CREATIVE_TYPE_AUDIO", +"CREATIVE_TYPE_PUBLISHER_HOSTED", +"CREATIVE_TYPE_NATIVE_VIDEO", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Standard display creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Expandable creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_THIRD_PARTY`", +"Video creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Native creative rendered by publishers with assets from advertiser. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile creative (banner). Create and update methods are **not** supported for this creative type.", +"Square native creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Interstitial creative including both display and video. Create and update methods are **not** supported for this creative type.", +"Responsive and expandable Lightbox creative. Create and update methods are **not** supported for this creative type.", +"Native app install creative. Create and update methods are **not** supported for this creative type.", +"Square native app install creative. Create and update methods are **not** supported for this creative type.", +"Audio creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Publisher hosted creative. Create and update methods are **not** supported for this creative type.", +"Native video creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile video creative. Create and update methods are **not** supported for this creative type." +], +"type": "string" +}, +"displayCreativeConfig": { +"$ref": "InventorySourceDisplayCreativeConfig", +"description": "The configuration for display creatives. Applicable when creative_type is `CREATIVE_TYPE_STANDARD`." +}, +"videoCreativeConfig": { +"$ref": "InventorySourceVideoCreativeConfig", +"description": "The configuration for video creatives. Applicable when creative_type is `CREATIVE_TYPE_VIDEO`." +} +}, +"type": "object" +}, +"CustomBiddingAlgorithm": { +"description": "A single custom bidding algorithm.", +"id": "CustomBiddingAlgorithm", +"properties": { +"advertiserId": { +"description": "Immutable. The unique ID of the advertiser that owns the custom bidding algorithm.", +"format": "int64", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmState": { +"description": "Output only. The status of custom bidding algorithm.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DORMANT", +"SUSPENDED" +], +"enumDescriptions": [ +"State is not specified or is unknown in this version.", +"Algorithm is enabled, either recently used, currently used or scheduled to be used. The algorithm is actively scoring impressions.", +"Algorithm has not been used recently. Although the algorithm still acts as `ENABLED`, it will eventually be suspended if not used.", +"Algorithm is susepended from scoring impressions and doesn't have a serving model trained. If the algorithm is assigned to a line item or otherwise updated, it will switch back to the `ENABLED` state and require time to prepare the serving model again." +], +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmType": { +"description": "Required. Immutable. The type of custom bidding algorithm.", +"enum": [ +"CUSTOM_BIDDING_ALGORITHM_TYPE_UNSPECIFIED", +"SCRIPT_BASED", +"ADS_DATA_HUB_BASED", +"GOAL_BUILDER_BASED" +], +"enumDescriptions": [ +"Algorithm type is not specified or is unknown in this version.", +"Algorithm generated through customer-uploaded custom bidding script files.", +"Algorithm created through Ads Data Hub product.", +"Algorithm created through goal builder in DV3 UI." +], +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the custom bidding algorithm. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Controls whether or not the custom bidding algorithm can be used as a bidding strategy. Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED`", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"modelReadiness": { +"description": "Output only. The state of custom bidding model readiness for each advertiser who has access. This field may only include the state of the queried advertiser if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", +"items": { +"$ref": "CustomBiddingModelReadinessState" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the custom bidding algorithm.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "Immutable. The unique ID of the partner that owns the custom bidding algorithm.", +"format": "int64", +"type": "string" +}, +"sharedAdvertiserIds": { +"description": "The IDs of the advertisers who have access to this algorithm. If advertiser_id is set, this field will only consist of that value. This field will not be set if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomBiddingModelReadinessState": { +"description": "The custom bidding algorithm model readiness state for a single shared advertiser.", +"id": "CustomBiddingModelReadinessState", +"properties": { +"advertiserId": { +"description": "The unique ID of the relevant advertiser.", +"format": "int64", +"type": "string" +}, +"readinessState": { +"description": "The readiness state of custom bidding model.", +"enum": [ +"READINESS_STATE_UNSPECIFIED", +"READINESS_STATE_ACTIVE", +"READINESS_STATE_INSUFFICIENT_DATA", +"READINESS_STATE_TRAINING", +"READINESS_STATE_NO_VALID_SCRIPT" +], +"enumDescriptions": [ +"State is not specified or is unknown in this version.", +"The model is trained and ready for serving.", +"There is not enough data to train the serving model.", +"The model is training and not ready for serving.", +"A valid custom bidding script has not been provided with which to train the model. This state will only be applied to algorithms whose `custom_bidding_algorithm_type` is `SCRIPT_BASED`." +], +"type": "string" +} +}, +"type": "object" +}, +"CustomBiddingScript": { +"description": "A single custom bidding script.", +"id": "CustomBiddingScript", +"properties": { +"active": { +"description": "Output only. Whether the script is currently being used for scoring by the parent algorithm.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time when the script was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm the script belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"customBiddingScriptId": { +"description": "Output only. The unique ID of the custom bidding script.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"errors": { +"description": "Output only. Error details of a rejected custom bidding script. This field will only be populated when state is REJECTED.", +"items": { +"$ref": "ScriptError" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the custom bidding script.", +"readOnly": true, +"type": "string" +}, +"script": { +"$ref": "CustomBiddingScriptRef", +"description": "The reference to the uploaded script file." +}, +"state": { +"description": "Output only. The state of the custom bidding script.", +"enum": [ +"STATE_UNSPECIFIED", +"ACCEPTED", +"REJECTED", +"PENDING" +], +"enumDescriptions": [ +"The script state is not specified or is unknown in this version.", +"The script has been accepted for scoring impressions.", +"The script has been rejected by backend pipelines. It may have errors.", +"The script is being processed for backend pipelines." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomBiddingScriptRef": { +"description": "The reference to the uploaded custom bidding script file.", +"id": "CustomBiddingScriptRef", +"properties": { +"resourceName": { +"description": "A resource name to be used in media.download to Download the script files. Or media.upload to Upload the script files. Resource names have the format `customBiddingAlgorithms/{custom_bidding_algorithm_id}/scriptRef/{ref_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"CustomList": { +"description": "Describes a custom list entity, such as a custom affinity or custom intent audience list.", +"id": "CustomList", +"properties": { +"customListId": { +"description": "Output only. The unique ID of the custom list. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The display name of the custom list. .", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the custom list.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomListGroup": { +"description": "Details of custom list group. All custom list targeting settings are logically \u2018OR\u2019 of each other.", +"id": "CustomListGroup", +"properties": { +"settings": { +"description": "Required. All custom list targeting settings in custom list group. Repeated settings with same id will be ignored.", +"items": { +"$ref": "CustomListTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomListTargetingSetting": { +"description": "Details of custom list targeting setting.", +"id": "CustomListTargetingSetting", +"properties": { +"customListId": { +"description": "Required. Custom id of custom list targeting setting. This id is custom_list_id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DateRange": { +"description": "A date range.", +"id": "DateRange", +"properties": { +"endDate": { +"$ref": "Date", +"description": "The upper bound of the date range, inclusive. Must specify a positive value for `year`, `month`, and `day`." +}, +"startDate": { +"$ref": "Date", +"description": "The lower bound of the date range, inclusive. Must specify a positive value for `year`, `month`, and `day`." +} +}, +"type": "object" +}, +"DayAndTimeAssignedTargetingOptionDetails": { +"description": "Representation of a segment of time defined on a specific day of the week and with a start and end time. The time represented by `start_hour` must be before the time represented by `end_hour`.", +"id": "DayAndTimeAssignedTargetingOptionDetails", +"properties": { +"dayOfWeek": { +"description": "Required. The day of the week for this day and time targeting setting.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"endHour": { +"description": "Required. The end hour for day and time targeting. Must be between 1 (1 hour after start of day) and 24 (end of day).", +"format": "int32", +"type": "integer" +}, +"startHour": { +"description": "Required. The start hour for day and time targeting. Must be between 0 (start of day) and 23 (1 hour before end of day).", +"format": "int32", +"type": "integer" +}, +"timeZoneResolution": { +"description": "Required. The mechanism used to determine which timezone to use for this day and time targeting setting.", +"enum": [ +"TIME_ZONE_RESOLUTION_UNSPECIFIED", +"TIME_ZONE_RESOLUTION_END_USER", +"TIME_ZONE_RESOLUTION_ADVERTISER" +], +"enumDescriptions": [ +"Time zone resolution is either unspecific or unknown.", +"Times are resolved in the time zone of the user that saw the ad.", +"Times are resolved in the time zone of the advertiser that served the ad." +], +"type": "string" +} +}, +"type": "object" +}, +"DeactivateManualTriggerRequest": { +"description": "Request message for ManualTriggerService.DeactivateManualTrigger.", +"id": "DeactivateManualTriggerRequest", +"properties": {}, +"type": "object" +}, +"DeleteAssignedTargetingOptionsRequest": { +"description": "A request listing which assigned targeting options of a given targeting type should be deleted.", +"id": "DeleteAssignedTargetingOptionsRequest", +"properties": { +"assignedTargetingOptionIds": { +"description": "Required. The assigned targeting option IDs to delete.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"type": "string" +} +}, +"type": "object" +}, +"DeviceMakeModelAssignedTargetingOptionDetails": { +"description": "Assigned device make and model targeting option details. This will be populated in the device_make_model_details field when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", +"id": "DeviceMakeModelAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the device make and model.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceMakeModelTargetingOptionDetails": { +"description": "Represents a targetable device make and model. This will be populated in the device_make_model_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", +"id": "DeviceMakeModelTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the device make and model.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DeviceTypeAssignedTargetingOptionDetails": { +"description": "Targeting details for device type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.", +"id": "DeviceTypeAssignedTargetingOptionDetails", +"properties": { +"deviceType": { +"description": "Required. The display name of the device type.", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"DEVICE_TYPE_COMPUTER", +"DEVICE_TYPE_CONNECTED_TV", +"DEVICE_TYPE_SMART_PHONE", +"DEVICE_TYPE_TABLET" +], +"enumDescriptions": [ +"Default value when device type is not specified in this version. This enum is a placeholder for default value and does not represent a real device type option.", +"Computer.", +"Connected TV.", +"Smart phone.", +"Tablet." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. ID of the device type.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceTypeTargetingOptionDetails": { +"description": "Represents a targetable device type. This will be populated in the device_type_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.", +"id": "DeviceTypeTargetingOptionDetails", +"properties": { +"deviceType": { +"description": "Output only. The device type that is used to be targeted.", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"DEVICE_TYPE_COMPUTER", +"DEVICE_TYPE_CONNECTED_TV", +"DEVICE_TYPE_SMART_PHONE", +"DEVICE_TYPE_TABLET" +], +"enumDescriptions": [ +"Default value when device type is not specified in this version. This enum is a placeholder for default value and does not represent a real device type option.", +"Computer.", +"Connected TV.", +"Smart phone.", +"Tablet." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DigitalContentLabelAssignedTargetingOptionDetails": { +"description": "Targeting details for digital content label. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.", +"id": "DigitalContentLabelAssignedTargetingOptionDetails", +"properties": { +"contentRatingTier": { +"description": "Output only. The display name of the digital content label rating tier.", +"enum": [ +"CONTENT_RATING_TIER_UNSPECIFIED", +"CONTENT_RATING_TIER_UNRATED", +"CONTENT_RATING_TIER_GENERAL", +"CONTENT_RATING_TIER_PARENTAL_GUIDANCE", +"CONTENT_RATING_TIER_TEENS", +"CONTENT_RATING_TIER_MATURE" +], +"enumDescriptions": [ +"Content label is not specified in this version. This enum is a place holder for a default value and does not represent a real content rating.", +"Content that has not been labeled.", +"Content suitable for general audiences.", +"Content suitable for most audiences with parental guidance.", +"Content suitable for teen and older audiences.", +"Content suitable only for mature audiences." +], +"readOnly": true, +"type": "string" +}, +"excludedTargetingOptionId": { +"description": "Required. ID of the digital content label to be EXCLUDED.", +"type": "string" +} +}, +"type": "object" +}, +"DigitalContentLabelTargetingOptionDetails": { +"description": "Represents a targetable digital content label rating tier. This will be populated in the digital_content_label_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.", +"id": "DigitalContentLabelTargetingOptionDetails", +"properties": { +"contentRatingTier": { +"description": "Output only. An enum for the content label brand safety tiers.", +"enum": [ +"CONTENT_RATING_TIER_UNSPECIFIED", +"CONTENT_RATING_TIER_UNRATED", +"CONTENT_RATING_TIER_GENERAL", +"CONTENT_RATING_TIER_PARENTAL_GUIDANCE", +"CONTENT_RATING_TIER_TEENS", +"CONTENT_RATING_TIER_MATURE" +], +"enumDescriptions": [ +"Content label is not specified in this version. This enum is a place holder for a default value and does not represent a real content rating.", +"Content that has not been labeled.", +"Content suitable for general audiences.", +"Content suitable for most audiences with parental guidance.", +"Content suitable for teen and older audiences.", +"Content suitable only for mature audiences." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Dimensions": { +"description": "Dimensions.", +"id": "Dimensions", +"properties": { +"heightPixels": { +"description": "The height in pixels.", +"format": "int32", +"type": "integer" +}, +"widthPixels": { +"description": "The width in pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DoubleVerify": { +"description": "Details of DoubleVerify settings.", +"id": "DoubleVerify", +"properties": { +"appStarRating": { +"$ref": "DoubleVerifyAppStarRating", +"description": "Avoid bidding on apps with the star ratings." +}, +"avoidedAgeRatings": { +"description": "Avoid bidding on apps with the age rating.", +"items": { +"enum": [ +"AGE_RATING_UNSPECIFIED", +"APP_AGE_RATE_UNKNOWN", +"APP_AGE_RATE_4_PLUS", +"APP_AGE_RATE_9_PLUS", +"APP_AGE_RATE_12_PLUS", +"APP_AGE_RATE_17_PLUS", +"APP_AGE_RATE_18_PLUS" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any age rating options.", +"Apps with unknown age rating.", +"Apps rated for Everyone (4+).", +"Apps rated for Everyone (9+).", +"Apps rated for Teens (12+).", +"Apps rated for Mature (17+).", +"Apps rated for Adults Only (18+)." +], +"type": "string" +}, +"type": "array" +}, +"brandSafetyCategories": { +"$ref": "DoubleVerifyBrandSafetyCategories", +"description": "DV Brand Safety Controls." +}, +"customSegmentId": { +"description": "The custom segment ID provided by DoubleVerify. The ID must start with \"51\" and consist of eight digits. Custom segment ID cannot be specified along with any of the following fields: * brand_safety_categories * avoided_age_ratings * app_star_rating * fraud_invalid_traffic", +"format": "int64", +"type": "string" +}, +"displayViewability": { +"$ref": "DoubleVerifyDisplayViewability", +"description": "Display viewability settings (applicable to display line items only)." +}, +"fraudInvalidTraffic": { +"$ref": "DoubleVerifyFraudInvalidTraffic", +"description": "Avoid Sites and Apps with historical Fraud & IVT Rates." +}, +"videoViewability": { +"$ref": "DoubleVerifyVideoViewability", +"description": "Video viewability settings (applicable to video line items only)." +} +}, +"type": "object" +}, +"DoubleVerifyAppStarRating": { +"description": "Details of DoubleVerify star ratings settings.", +"id": "DoubleVerifyAppStarRating", +"properties": { +"avoidInsufficientStarRating": { +"description": "Avoid bidding on apps with insufficient star ratings.", +"type": "boolean" +}, +"avoidedStarRating": { +"description": "Avoid bidding on apps with the star ratings.", +"enum": [ +"APP_STAR_RATE_UNSPECIFIED", +"APP_STAR_RATE_1_POINT_5_LESS", +"APP_STAR_RATE_2_LESS", +"APP_STAR_RATE_2_POINT_5_LESS", +"APP_STAR_RATE_3_LESS", +"APP_STAR_RATE_3_POINT_5_LESS", +"APP_STAR_RATE_4_LESS", +"APP_STAR_RATE_4_POINT_5_LESS" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any app star rating options.", +"Official Apps with rating < 1.5 Stars.", +"Official Apps with rating < 2 Stars.", +"Official Apps with rating < 2.5 Stars.", +"Official Apps with rating < 3 Stars.", +"Official Apps with rating < 3.5 Stars.", +"Official Apps with rating < 4 Stars.", +"Official Apps with rating < 4.5 Stars." +], +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerifyBrandSafetyCategories": { +"description": "Settings for brand safety controls.", +"id": "DoubleVerifyBrandSafetyCategories", +"properties": { +"avoidUnknownBrandSafetyCategory": { +"description": "Unknown or unrateable.", +"type": "boolean" +}, +"avoidedHighSeverityCategories": { +"description": "Brand safety high severity avoidance categories.", +"items": { +"enum": [ +"HIGHER_SEVERITY_UNSPECIFIED", +"ADULT_CONTENT_PORNOGRAPHY", +"COPYRIGHT_INFRINGEMENT", +"SUBSTANCE_ABUSE", +"GRAPHIC_VIOLENCE_WEAPONS", +"HATE_PROFANITY", +"CRIMINAL_SKILLS", +"NUISANCE_INCENTIVIZED_MALWARE_CLUTTER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any high severity categories.", +"Adult Content: Pornography, Mature Topics & Nudity.", +"Copyright Infringement.", +"Drugs/Alcohol/Controlled Substances: Substance Abuse.", +"Extreme Graphic/Explicit Violence/Weapons.", +"Hate/Profanity.", +"Illegal Activities: Criminal Skills.", +"Incentivized/Malware/Clutter." +], +"type": "string" +}, +"type": "array" +}, +"avoidedMediumSeverityCategories": { +"description": "Brand safety medium severity avoidance categories.", +"items": { +"enum": [ +"MEDIUM_SEVERITY_UNSPECIFIED", +"AD_SERVERS", +"ADULT_CONTENT_SWIMSUIT", +"ALTERNATIVE_LIFESTYLES", +"CELEBRITY_GOSSIP", +"GAMBLING", +"OCCULT", +"SEX_EDUCATION", +"DISASTER_AVIATION", +"DISASTER_MAN_MADE", +"DISASTER_NATURAL", +"DISASTER_TERRORIST_EVENTS", +"DISASTER_VEHICLE", +"ALCOHOL", +"SMOKING", +"NEGATIVE_NEWS_FINANCIAL", +"NON_ENGLISH", +"PARKING_PAGE", +"UNMODERATED_UGC", +"INFLAMMATORY_POLITICS_AND_NEWS", +"NEGATIVE_NEWS_PHARMACEUTICAL" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any medium severity categories.", +"Ad Servers.", +"Adult Content: Swimsuit.", +"Controversial Subjects: Alternative Lifestyles.", +"Controversial Subjects: Celebrity Gossip.", +"Controversial Subjects: Gambling.", +"Controversial Subjects: Occult.", +"Controversial Subjects: Sex Education.", +"Disaster: Aviation.", +"Disaster: Man-made.", +"Disaster: Natural.", +"Disaster: Terrorist Events.", +"Disaster: Vehicle.", +"Drugs/Alcohol/Controlled Substances: Alcohol.", +"Drugs/Alcohol/Controlled Substances: Smoking.", +"Negative News: Financial.", +"Non-Std Content: Non-English.", +"Non-Std Content: Parking Page.", +"Unmoderated UGC: Forums, Images & Video.", +"Controversial Subjects: Inflammatory Politics and News.", +"Negative News: Pharmaceutical." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DoubleVerifyDisplayViewability": { +"description": "Details of DoubleVerify display viewability settings.", +"id": "DoubleVerifyDisplayViewability", +"properties": { +"iab": { +"description": "Target web and app inventory to maximize IAB viewable rate.", +"enum": [ +"IAB_VIEWED_RATE_UNSPECIFIED", +"IAB_VIEWED_RATE_80_PERCENT_HIGHER", +"IAB_VIEWED_RATE_75_PERCENT_HIGHER", +"IAB_VIEWED_RATE_70_PERCENT_HIGHER", +"IAB_VIEWED_RATE_65_PERCENT_HIGHER", +"IAB_VIEWED_RATE_60_PERCENT_HIGHER", +"IAB_VIEWED_RATE_55_PERCENT_HIGHER", +"IAB_VIEWED_RATE_50_PERCENT_HIGHER", +"IAB_VIEWED_RATE_40_PERCENT_HIGHER", +"IAB_VIEWED_RATE_30_PERCENT_HIGHER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any IAB viewed rate options.", +"Target web and app inventory to maximize IAB viewable rate 80% or higher.", +"Target web and app inventory to maximize IAB viewable rate 75% or higher.", +"Target web and app inventory to maximize IAB viewable rate 70% or higher.", +"Target web and app inventory to maximize IAB viewable rate 65% or higher.", +"Target web and app inventory to maximize IAB viewable rate 60% or higher.", +"Target web and app inventory to maximize IAB viewable rate 55% or higher.", +"Target web and app inventory to maximize IAB viewable rate 50% or higher.", +"Target web and app inventory to maximize IAB viewable rate 40% or higher.", +"Target web and app inventory to maximize IAB viewable rate 30% or higher." +], +"type": "string" +}, +"viewableDuring": { +"description": "Target web and app inventory to maximize 100% viewable duration.", +"enum": [ +"AVERAGE_VIEW_DURATION_UNSPECIFIED", +"AVERAGE_VIEW_DURATION_5_SEC", +"AVERAGE_VIEW_DURATION_10_SEC", +"AVERAGE_VIEW_DURATION_15_SEC" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any average view duration options.", +"Target web and app inventory to maximize 100% viewable duration 5 seconds or more.", +"Target web and app inventory to maximize 100% viewable duration 10 seconds or more.", +"Target web and app inventory to maximize 100% viewable duration 15 seconds or more." +], +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerifyFraudInvalidTraffic": { +"description": "DoubleVerify Fraud & Invalid Traffic settings.", +"id": "DoubleVerifyFraudInvalidTraffic", +"properties": { +"avoidInsufficientOption": { +"description": "Insufficient Historical Fraud & IVT Stats.", +"type": "boolean" +}, +"avoidedFraudOption": { +"description": "Avoid Sites and Apps with historical Fraud & IVT.", +"enum": [ +"FRAUD_UNSPECIFIED", +"AD_IMPRESSION_FRAUD_100", +"AD_IMPRESSION_FRAUD_50", +"AD_IMPRESSION_FRAUD_25", +"AD_IMPRESSION_FRAUD_10", +"AD_IMPRESSION_FRAUD_8", +"AD_IMPRESSION_FRAUD_6", +"AD_IMPRESSION_FRAUD_4", +"AD_IMPRESSION_FRAUD_2" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any fraud and invalid traffic options.", +"100% Fraud & IVT.", +"50% or Higher Fraud & IVT.", +"25% or Higher Fraud & IVT.", +"10% or Higher Fraud & IVT.", +"8% or Higher Fraud & IVT.", +"6% or Higher Fraud & IVT.", +"4% or Higher Fraud & IVT.", +"2% or Higher Fraud & IVT." +], +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerifyVideoViewability": { +"description": "Details of DoubleVerify video viewability settings.", +"id": "DoubleVerifyVideoViewability", +"properties": { +"playerImpressionRate": { +"description": "Target inventory to maximize impressions with 400x300 or greater player size.", +"enum": [ +"PLAYER_SIZE_400X300_UNSPECIFIED", +"PLAYER_SIZE_400X300_95", +"PLAYER_SIZE_400X300_70", +"PLAYER_SIZE_400X300_25", +"PLAYER_SIZE_400X300_5" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any impressions options.", +"Sites with 95%+ of impressions.", +"Sites with 70%+ of impressions.", +"Sites with 25%+ of impressions.", +"Sites with 5%+ of impressions." +], +"type": "string" +}, +"videoIab": { +"description": "Target web inventory to maximize IAB viewable rate.", +"enum": [ +"VIDEO_IAB_UNSPECIFIED", +"IAB_VIEWABILITY_80_PERCENT_HIGHER", +"IAB_VIEWABILITY_75_PERCENT_HIGHER", +"IAB_VIEWABILITY_70_PERCENT_HIGHER", +"IAB_VIEWABILITY_65_PERCENT_HIHGER", +"IAB_VIEWABILITY_60_PERCENT_HIGHER", +"IAB_VIEWABILITY_55_PERCENT_HIHGER", +"IAB_VIEWABILITY_50_PERCENT_HIGHER", +"IAB_VIEWABILITY_40_PERCENT_HIHGER", +"IAB_VIEWABILITY_30_PERCENT_HIHGER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any video IAB viewable rate options.", +"Target web and app inventory to maximize IAB viewable rate 80% or higher.", +"Target web and app inventory to maximize IAB viewable rate 75% or higher.", +"Target web and app inventory to maximize IAB viewable rate 70% or higher.", +"Target web and app inventory to maximize IAB viewable rate 65% or higher.", +"Target web and app inventory to maximize IAB viewable rate 60% or higher.", +"Target web and app inventory to maximize IAB viewable rate 55% or higher.", +"Target web and app inventory to maximize IAB viewable rate 50% or higher.", +"Target web and app inventory to maximize IAB viewable rate 40% or higher.", +"Target web and app inventory to maximize IAB viewable rate 30% or higher." +], +"type": "string" +}, +"videoViewableRate": { +"description": "Target web inventory to maximize fully viewable rate.", +"enum": [ +"VIDEO_VIEWABLE_RATE_UNSPECIFIED", +"VIEWED_PERFORMANCE_40_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_35_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_30_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_25_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_20_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_10_PERCENT_HIGHER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any video viewable rate options.", +"Target web inventory to maximize fully viewable rate 40% or higher.", +"Target web inventory to maximize fully viewable rate 35% or higher.", +"Target web inventory to maximize fully viewable rate 30% or higher.", +"Target web inventory to maximize fully viewable rate 25% or higher.", +"Target web inventory to maximize fully viewable rate 20% or higher.", +"Target web inventory to maximize fully viewable rate 10% or higher." +], +"type": "string" +} +}, +"type": "object" +}, +"EditCustomerMatchMembersRequest": { +"description": "Request message for FirstAndThirdPartyAudienceService.EditCustomerMatchMembers.", +"id": "EditCustomerMatchMembersRequest", +"properties": { +"addedContactInfoList": { +"$ref": "ContactInfoList", +"description": "Input only. A list of contact information to define the members to be added." +}, +"addedMobileDeviceIdList": { +"$ref": "MobileDeviceIdList", +"description": "Input only. A list of mobile device IDs to define the members to be added." +}, +"advertiserId": { +"description": "Required. The ID of the owner advertiser of the updated Customer Match FirstAndThirdPartyAudience.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EditCustomerMatchMembersResponse": { +"description": "The response of FirstAndThirdPartyAudienceService.EditCustomerMatchMembers.", +"id": "EditCustomerMatchMembersResponse", +"properties": { +"firstAndThirdPartyAudienceId": { +"description": "Required. The ID of the updated Customer Match FirstAndThirdPartyAudience.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EditGuaranteedOrderReadAccessorsRequest": { +"description": "Request message for GuaranteedOrderService.EditGuaranteedOrderReadAccessors.", +"id": "EditGuaranteedOrderReadAccessorsRequest", +"properties": { +"addedAdvertisers": { +"description": "The advertisers to add as read accessors to the guaranteed order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"partnerId": { +"description": "Required. The partner context in which the change is being made.", +"format": "int64", +"type": "string" +}, +"readAccessInherited": { +"description": "Whether to give all advertisers of the read/write accessor partner read access to the guaranteed order. Only applicable if read_write_partner_id is set in the guaranteed order.", +"type": "boolean" +}, +"removedAdvertisers": { +"description": "The advertisers to remove as read accessors to the guaranteed order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EditGuaranteedOrderReadAccessorsResponse": { +"id": "EditGuaranteedOrderReadAccessorsResponse", +"properties": { +"readAccessInherited": { +"description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order.", +"type": "boolean" +}, +"readAdvertiserIds": { +"description": "The IDs of advertisers with read access to the guaranteed order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EditInventorySourceReadWriteAccessorsRequest": { +"description": "Request message for InventorySourceService.EditInventorySourceReadWriteAccessors.", +"id": "EditInventorySourceReadWriteAccessorsRequest", +"properties": { +"advertisersUpdate": { +"$ref": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", +"description": "The advertisers to add or remove from the list of advertisers that have read/write access to the inventory source. This change will remove an existing partner read/write accessor." +}, +"assignPartner": { +"description": "Set the partner context as read/write accessor of the inventory source. This will remove all other current read/write advertiser accessors.", +"type": "boolean" +}, +"partnerId": { +"description": "Required. The partner context by which the accessors change is being made.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate": { +"description": "Update to the list of advertisers with read/write access to the inventory source.", +"id": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", +"properties": { +"addedAdvertisers": { +"description": "The advertisers to add.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"removedAdvertisers": { +"description": "The advertisers to remove.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnvironmentAssignedTargetingOptionDetails": { +"description": "Assigned environment targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_ENVIRONMENT`.", +"id": "EnvironmentAssignedTargetingOptionDetails", +"properties": { +"environment": { +"description": "Required. The serving environment.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"ENVIRONMENT_WEB_OPTIMIZED", +"ENVIRONMENT_WEB_NOT_OPTIMIZED", +"ENVIRONMENT_APP" +], +"enumDescriptions": [ +"Default value when environment is not specified in this version. This enum is a placeholder for default value and does not represent a real environment option.", +"Target inventory displayed in browsers. This includes inventory that was designed for the device it was viewed on, such as mobile websites viewed on a mobile device. ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the deletion of this targeting option.", +"Target inventory displayed in browsers. This includes inventory that was not designed for the device but viewed on it, such as websites optimized for desktop but viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the addition of this targeting option.", +"Target inventory displayed in apps." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_ENVIRONMENT` (e.g., \"508010\" for targeting the `ENVIRONMENT_WEB_OPTIMIZED` option).", +"type": "string" +} +}, +"type": "object" +}, +"EnvironmentTargetingOptionDetails": { +"description": "Represents a targetable environment. This will be populated in the environment_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_ENVIRONMENT`.", +"id": "EnvironmentTargetingOptionDetails", +"properties": { +"environment": { +"description": "Output only. The serving environment.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"ENVIRONMENT_WEB_OPTIMIZED", +"ENVIRONMENT_WEB_NOT_OPTIMIZED", +"ENVIRONMENT_APP" +], +"enumDescriptions": [ +"Default value when environment is not specified in this version. This enum is a placeholder for default value and does not represent a real environment option.", +"Target inventory displayed in browsers. This includes inventory that was designed for the device it was viewed on, such as mobile websites viewed on a mobile device. ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the deletion of this targeting option.", +"Target inventory displayed in browsers. This includes inventory that was not designed for the device but viewed on it, such as websites optimized for desktop but viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the addition of this targeting option.", +"Target inventory displayed in apps." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExchangeAssignedTargetingOptionDetails": { +"description": "Details for assigned exchange targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.", +"id": "ExchangeAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_EXCHANGE`.", +"type": "string" +} +}, +"type": "object" +}, +"ExchangeConfig": { +"description": "Settings that control which exchanges are enabled for a partner.", +"id": "ExchangeConfig", +"properties": { +"enabledExchanges": { +"description": "All enabled exchanges in the partner. Duplicate enabled exchanges will be ignored.", +"items": { +"$ref": "ExchangeConfigEnabledExchange" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExchangeConfigEnabledExchange": { +"description": "An enabled exchange in the partner.", +"id": "ExchangeConfigEnabledExchange", +"properties": { +"exchange": { +"description": "The enabled exchange.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack." +], +"type": "string" +}, +"googleAdManagerAgencyId": { +"description": "Output only. Agency ID of Google Ad Manager. The field is only relevant when Google Ad Manager is the enabled exchange.", +"readOnly": true, +"type": "string" +}, +"googleAdManagerBuyerNetworkId": { +"description": "Output only. Network ID of Google Ad Manager. The field is only relevant when Google Ad Manager is the enabled exchange.", +"readOnly": true, +"type": "string" +}, +"seatId": { +"description": "Output only. Seat ID of the enabled exchange.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExchangeReviewStatus": { +"description": "Exchange review status for the creative.", +"id": "ExchangeReviewStatus", +"properties": { +"exchange": { +"description": "The exchange reviewing the creative.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack." +], +"type": "string" +}, +"status": { +"description": "Status of the exchange review.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +} +}, +"type": "object" +}, +"ExchangeTargetingOptionDetails": { +"description": "Represents a targetable exchange. This will be populated in the exchange_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.", +"id": "ExchangeTargetingOptionDetails", +"properties": { +"exchange": { +"description": "Output only. The type of exchange.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExitEvent": { +"description": "Exit event of the creative.", +"id": "ExitEvent", +"properties": { +"name": { +"description": "The name of the click tag of the exit event. The name must be unique within one creative. Leave it empty or unset for creatives containing image assets only.", +"type": "string" +}, +"reportingName": { +"description": "The name used to identify this event in reports. Leave it empty or unset for creatives containing image assets only.", +"type": "string" +}, +"type": { +"description": "Required. The type of the exit event.", +"enum": [ +"EXIT_EVENT_TYPE_UNSPECIFIED", +"EXIT_EVENT_TYPE_DEFAULT", +"EXIT_EVENT_TYPE_BACKUP" +], +"enumDescriptions": [ +"Exit event type is not specified or is unknown in this version.", +"The exit event is the default one.", +"The exit event is a backup exit event. There could be multiple backup exit events in a creative." +], +"type": "string" +}, +"url": { +"description": "Required. The click through URL of the exit event. This is required when type is: * `EXIT_EVENT_TYPE_DEFAULT` * `EXIT_EVENT_TYPE_BACKUP`", +"type": "string" +} +}, +"type": "object" +}, +"FirstAndThirdPartyAudience": { +"description": "Describes a first or third party audience list used for targeting. First party audiences are created via usage of client data. Third party audiences are provided by Third Party data providers and can only be licensed to customers.", +"id": "FirstAndThirdPartyAudience", +"properties": { +"activeDisplayAudienceSize": { +"description": "Output only. The estimated audience size for the Display network in the past month. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"appId": { +"description": "The app_id matches with the type of the mobile_device_ids being uploaded. Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID`", +"type": "string" +}, +"audienceSource": { +"description": "Output only. The source of the audience.", +"enum": [ +"AUDIENCE_SOURCE_UNSPECIFIED", +"DISPLAY_VIDEO_360", +"CAMPAIGN_MANAGER", +"AD_MANAGER", +"SEARCH_ADS_360", +"YOUTUBE", +"ADS_DATA_HUB" +], +"enumDescriptions": [ +"Default value when audience source is not specified or is unknown.", +"Originated from Display & Video 360.", +"Originated from Campaign Manager 360.", +"Originated from Google Ad Manager.", +"Originated from Search Ads 360.", +"Originated from Youtube.", +"Originated from Ads Data Hub." +], +"readOnly": true, +"type": "string" +}, +"audienceType": { +"description": "The type of the audience.", +"enum": [ +"AUDIENCE_TYPE_UNSPECIFIED", +"CUSTOMER_MATCH_CONTACT_INFO", +"CUSTOMER_MATCH_DEVICE_ID", +"CUSTOMER_MATCH_USER_ID", +"ACTIVITY_BASED", +"FREQUENCY_CAP", +"TAG_BASED", +"YOUTUBE_USERS", +"LICENSED" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +false, +false, +false +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"Audience was generated through matching customers to known contact information.", +"Audience was generated through matching customers to known Mobile device IDs.", +"Audience was generated through matching customers to known User IDs.", +"Audience was created based on campaign activity.", +"Audience was created based on excluding the number of impressions they were served.", +"Audience was created based on custom variables attached to pixel.", +"Audience was created based on past interactions with videos, YouTube ads, or YouTube channel.", +"Subtype of third party audience type." +], +"type": "string" +}, +"contactInfoList": { +"$ref": "ContactInfoList", +"description": "Input only. A list of contact information to define the initial audience members. Only applicable to audience_type `CUSTOMER_MATCH_CONTACT_INFO`" +}, +"description": { +"description": "The user-provided description of the audience. Only applicable to first party audiences.", +"type": "string" +}, +"displayAudienceSize": { +"description": "Output only. The estimated audience size for the Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayDesktopAudienceSize": { +"description": "Output only. The estimated desktop audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayMobileAppAudienceSize": { +"description": "Output only. The estimated mobile app audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayMobileWebAudienceSize": { +"description": "Output only. The estimated mobile web audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The display name of the first and third party audience.", +"type": "string" +}, +"firstAndThirdPartyAudienceId": { +"description": "Output only. The unique ID of the first and third party audience. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"firstAndThirdPartyAudienceType": { +"description": "Whether the audience is a first or third party audience.", +"enum": [ +"FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_UNSPECIFIED", +"FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY", +"FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_THIRD_PARTY" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"Audience that is created via usage of client data.", +"Audience that is provided by Third Party data providers." +], +"type": "string" +}, +"gmailAudienceSize": { +"description": "Output only. The estimated audience size for Gmail network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"membershipDurationDays": { +"description": "The duration in days that an entry remains in the audience after the qualifying event. If the audience has no expiration, set the value of this field to 10000. Otherwise, the set value must be greater than 0 and less than or equal to 540. Only applicable to first party audiences. This field is required if one of the following audience_type is used: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"format": "int64", +"type": "string" +}, +"mobileDeviceIdList": { +"$ref": "MobileDeviceIdList", +"description": "Input only. A list of mobile device IDs to define the initial audience members. Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID`" +}, +"name": { +"description": "Output only. The resource name of the first and third party audience.", +"readOnly": true, +"type": "string" +}, +"youtubeAudienceSize": { +"description": "Output only. The estimated audience size for YouTube network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FirstAndThirdPartyAudienceGroup": { +"description": "Details of first and third party audience group. All first and third party audience targeting settings are logically \u2018OR\u2019 of each other.", +"id": "FirstAndThirdPartyAudienceGroup", +"properties": { +"settings": { +"description": "Required. All first and third party audience targeting settings in first and third party audience group. Repeated settings with same id are not allowed.", +"items": { +"$ref": "FirstAndThirdPartyAudienceTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"FirstAndThirdPartyAudienceTargetingSetting": { +"description": "Details of first and third party audience targeting setting.", +"id": "FirstAndThirdPartyAudienceTargetingSetting", +"properties": { +"firstAndThirdPartyAudienceId": { +"description": "Required. First and third party audience id of the first and third party audience targeting setting. This id is first_and_third_party_audience_id.", +"format": "int64", +"type": "string" +}, +"recency": { +"description": "The recency of the first and third party audience targeting setting. Only applicable to first party audiences, otherwise will be ignored. For more info, refer to https://support.google.com/displayvideo/answer/2949947#recency When unspecified, no recency limit will be used.", +"enum": [ +"RECENCY_NO_LIMIT", +"RECENCY_1_MINUTE", +"RECENCY_5_MINUTES", +"RECENCY_10_MINUTES", +"RECENCY_15_MINUTES", +"RECENCY_30_MINUTES", +"RECENCY_1_HOUR", +"RECENCY_2_HOURS", +"RECENCY_3_HOURS", +"RECENCY_6_HOURS", +"RECENCY_12_HOURS", +"RECENCY_1_DAY", +"RECENCY_2_DAYS", +"RECENCY_3_DAYS", +"RECENCY_5_DAYS", +"RECENCY_7_DAYS", +"RECENCY_10_DAYS", +"RECENCY_14_DAYS", +"RECENCY_15_DAYS", +"RECENCY_21_DAYS", +"RECENCY_28_DAYS", +"RECENCY_30_DAYS", +"RECENCY_40_DAYS", +"RECENCY_45_DAYS", +"RECENCY_60_DAYS", +"RECENCY_90_DAYS", +"RECENCY_120_DAYS", +"RECENCY_180_DAYS", +"RECENCY_270_DAYS", +"RECENCY_365_DAYS" +], +"enumDescriptions": [ +"No limit of recency.", +"Recency is 1 minute.", +"Recency is 5 minutes.", +"Recency is 10 minutes.", +"Recency is 15 minutes.", +"Recency is 30 minutes.", +"Recency is 1 hour.", +"Recency is 2 hours.", +"Recency is 3 hours.", +"Recency is 6 hours.", +"Recency is 12 hours.", +"Recency is 1 day.", +"Recency is 2 days.", +"Recency is 3 days.", +"Recency is 5 days.", +"Recency is 7 days.", +"Recency is 10 days.", +"Recency is 14 days.", +"Recency is 15 days.", +"Recency is 21 days.", +"Recency is 28 days.", +"Recency is 30 days.", +"Recency is 40 days.", +"Recency is 45 days.", +"Recency is 60 days.", +"Recency is 90 days.", +"Recency is 120 days.", +"Recency is 180 days.", +"Recency is 270 days.", +"Recency is 365 days." +], +"type": "string" +} +}, +"type": "object" +}, +"FixedBidStrategy": { +"description": "A strategy that uses a fixed bidding price.", +"id": "FixedBidStrategy", +"properties": { +"bidAmountMicros": { +"description": "The fixed bid amount, in micros of the advertiser's currency. For insertion order entity, bid_amount_micros should be set as 0. For line item entity, bid_amount_micros must be greater than or equal to billable unit of the given currency and smaller than or equal to the upper limit 1000000000. For example, 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"FloodlightGroup": { +"description": "A single Floodlight group.", +"id": "FloodlightGroup", +"properties": { +"activeViewConfig": { +"$ref": "ActiveViewVideoViewabilityMetricConfig", +"description": "The Active View video viewability metric configuration for the Floodlight group." +}, +"customVariables": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "User-defined custom variables owned by the Floodlight group. Use custom Floodlight variables to create reporting data that is tailored to your unique business needs. Custom Floodlight variables use the keys `U1=`, `U2=`, and so on, and can take any values that you choose to pass to them. You can use them to track virtually any type of data that you collect about your customers, such as the genre of movie that a customer purchases, the country to which the item is shipped, and so on. Custom Floodlight variables may not be used to pass any data that could be used or recognized as personally identifiable information (PII). Example: `custom_variables { fields { \"U1\": value { number_value: 123.4 }, \"U2\": value { string_value: \"MyVariable2\" }, \"U3\": value { string_value: \"MyVariable3\" } } }` Acceptable values for keys are \"U1\" through \"U100\", inclusive. String values must be less than 64 characters long, and cannot contain the following characters: `\"<>`.", +"type": "object" +}, +"displayName": { +"description": "Required. The display name of the Floodlight group.", +"type": "string" +}, +"floodlightGroupId": { +"description": "Output only. The unique ID of the Floodlight group. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lookbackWindow": { +"$ref": "LookbackWindow", +"description": "Required. The lookback window for the Floodlight group. Both click_days and impression_days are required. Acceptable values for both are `0` to `90`, inclusive." +}, +"name": { +"description": "Output only. The resource name of the Floodlight group.", +"readOnly": true, +"type": "string" +}, +"webTagType": { +"description": "Required. The web tag type enabled for the Floodlight group.", +"enum": [ +"WEB_TAG_TYPE_UNSPECIFIED", +"WEB_TAG_TYPE_NONE", +"WEB_TAG_TYPE_IMAGE", +"WEB_TAG_TYPE_DYNAMIC" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"No tag type.", +"Image tag.", +"Dynamic tag." +], +"type": "string" +} +}, +"type": "object" +}, +"FrequencyCap": { +"description": "Settings that control the number of times a user may be shown with the same ad during a given time period.", +"id": "FrequencyCap", +"properties": { +"maxImpressions": { +"description": "The maximum number of times a user may be shown the same ad during this period. Must be greater than 0. Required when unlimited is `false` and max_views is not set.", +"format": "int32", +"type": "integer" +}, +"timeUnit": { +"description": "The time unit in which the frequency cap will be applied. Required when unlimited is `false`.", +"enum": [ +"TIME_UNIT_UNSPECIFIED", +"TIME_UNIT_LIFETIME", +"TIME_UNIT_MONTHS", +"TIME_UNIT_WEEKS", +"TIME_UNIT_DAYS", +"TIME_UNIT_HOURS", +"TIME_UNIT_MINUTES" +], +"enumDescriptions": [ +"Time unit value is not specified or is unknown in this version.", +"The frequency cap will be applied to the whole life time of the line item.", +"The frequency cap will be applied to a number of months.", +"The frequency cap will be applied to a number of weeks.", +"The frequency cap will be applied to a number of days.", +"The frequency cap will be applied to a number of hours.", +"The frequency cap will be applied to a number of minutes." +], +"type": "string" +}, +"timeUnitCount": { +"description": "The number of time_unit the frequency cap will last. Required when unlimited is `false`. The following restrictions apply based on the value of time_unit: * `TIME_UNIT_LIFETIME` - this field is output only and will default to 1 * `TIME_UNIT_MONTHS` - must be between 1 and 2 * `TIME_UNIT_WEEKS` - must be between 1 and 4 * `TIME_UNIT_DAYS` - must be between 1 and 6 * `TIME_UNIT_HOURS` - must be between 1 and 23 * `TIME_UNIT_MINUTES` - must be between 1 and 59", +"format": "int32", +"type": "integer" +}, +"unlimited": { +"description": "Whether unlimited frequency capping is applied. When this field is set to `true`, the remaining frequency cap fields are not applicable.", +"type": "boolean" +} +}, +"type": "object" +}, +"GenderAssignedTargetingOptionDetails": { +"description": "Details for assigned gender targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", +"id": "GenderAssignedTargetingOptionDetails", +"properties": { +"gender": { +"description": "Required. The gender of the audience.", +"enum": [ +"GENDER_UNSPECIFIED", +"GENDER_MALE", +"GENDER_FEMALE", +"GENDER_UNKNOWN" +], +"enumDescriptions": [ +"Default value when gender is not specified in this version. This enum is a place holder for default value and does not represent a real gender option.", +"The audience gender is male.", +"The audience gender is female.", +"The audience gender is unknown." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_GENDER`.", +"type": "string" +} +}, +"type": "object" +}, +"GenderTargetingOptionDetails": { +"description": "Represents a targetable gender. This will be populated in the gender_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", +"id": "GenderTargetingOptionDetails", +"properties": { +"gender": { +"description": "Output only. The gender of an audience.", +"enum": [ +"GENDER_UNSPECIFIED", +"GENDER_MALE", +"GENDER_FEMALE", +"GENDER_UNKNOWN" +], +"enumDescriptions": [ +"Default value when gender is not specified in this version. This enum is a place holder for default value and does not represent a real gender option.", +"The audience gender is male.", +"The audience gender is female.", +"The audience gender is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GenerateDefaultLineItemRequest": { +"description": "Request message for LineItemService.GenerateDefaultLineItem.", +"id": "GenerateDefaultLineItemRequest", +"properties": { +"displayName": { +"description": "Required. The display name of the line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The unique ID of the insertion order that the line item belongs to.", +"format": "int64", +"type": "string" +}, +"lineItemType": { +"description": "Required. The type of the line item.", +"enum": [ +"LINE_ITEM_TYPE_UNSPECIFIED", +"LINE_ITEM_TYPE_DISPLAY_DEFAULT", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_VIDEO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_AUDIO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP", +"LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME", +"LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", +"Image, HTML5, native, or rich media ads.", +"Display ads that drive installs of an app.", +"Video ads sold on a CPM basis for a variety of environments.", +"Video ads that drive installs of an app.", +"Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"RTB Audio ads sold for a variety of environments.", +"Over-the-top ads present in OTT insertion orders. This type is only applicable to line items with an insertion order of insertion_order_type `OVER_THE_TOP`.", +"Display ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API." +], +"type": "string" +}, +"mobileApp": { +"$ref": "MobileApp", +"description": "The mobile app promoted by the line item. This is applicable only when line_item_type is either `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`." +} +}, +"type": "object" +}, +"GeoRegionAssignedTargetingOptionDetails": { +"description": "Details for assigned geographic region targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GEO_REGION`.", +"id": "GeoRegionAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the geographic region (e.g., \"Ontario, Canada\").", +"readOnly": true, +"type": "string" +}, +"geoRegionType": { +"description": "Output only. The type of geographic region targeting.", +"enum": [ +"GEO_REGION_TYPE_UNKNOWN", +"GEO_REGION_TYPE_OTHER", +"GEO_REGION_TYPE_COUNTRY", +"GEO_REGION_TYPE_REGION", +"GEO_REGION_TYPE_TERRITORY", +"GEO_REGION_TYPE_PROVINCE", +"GEO_REGION_TYPE_STATE", +"GEO_REGION_TYPE_PREFECTURE", +"GEO_REGION_TYPE_GOVERNORATE", +"GEO_REGION_TYPE_CANTON", +"GEO_REGION_TYPE_UNION_TERRITORY", +"GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", +"GEO_REGION_TYPE_DMA_REGION", +"GEO_REGION_TYPE_METRO", +"GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", +"GEO_REGION_TYPE_COUNTY", +"GEO_REGION_TYPE_MUNICIPALITY", +"GEO_REGION_TYPE_CITY", +"GEO_REGION_TYPE_POSTAL_CODE", +"GEO_REGION_TYPE_DEPARTMENT", +"GEO_REGION_TYPE_AIRPORT", +"GEO_REGION_TYPE_TV_REGION", +"GEO_REGION_TYPE_OKRUG", +"GEO_REGION_TYPE_BOROUGH", +"GEO_REGION_TYPE_CITY_REGION", +"GEO_REGION_TYPE_ARRONDISSEMENT", +"GEO_REGION_TYPE_NEIGHBORHOOD", +"GEO_REGION_TYPE_UNIVERSITY", +"GEO_REGION_TYPE_DISTRICT" +], +"enumDescriptions": [ +"The geographic region type is unknown.", +"The geographic region type is other.", +"The geographic region is a country.", +"The geographic region type is region.", +"The geographic region is a territory.", +"The geographic region is a province.", +"The geographic region is a state.", +"The geographic region is a prefecture.", +"The geographic region is a governorate.", +"The geographic region is a canton.", +"The geographic region is a union territory.", +"The geographic region is an autonomous community.", +"The geographic region is a designated market area (DMA) region.", +"The geographic region type is metro.", +"The geographic region is a congressional district.", +"The geographic region is a county.", +"The geographic region is a municipality.", +"The geographic region is a city.", +"The geographic region targeting type is postal code.", +"The geographic region targeting type is department.", +"The geographic region is an airport.", +"The geographic region is a TV region.", +"The geographic region is an okrug.", +"The geographic region is a borough.", +"The geographic region is a city region.", +"The geographic region is an arrondissement.", +"The geographic region is a neighborhood.", +"The geographic region is a university.", +"The geographic region is a district." +], +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_GEO_REGION`.", +"type": "string" +} +}, +"type": "object" +}, +"GeoRegionSearchTerms": { +"description": "Search terms for geo region targeting options.", +"id": "GeoRegionSearchTerms", +"properties": { +"geoRegionQuery": { +"description": "The search query for the desired geo region. The query can be a prefix, e.g. \"New Yor\", \"Seattle\", \"USA\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GeoRegionTargetingOptionDetails": { +"description": "Represents a targetable geographic region. This will be populated in the geo_region_details field when targeting_type is `TARGETING_TYPE_GEO_REGION`.", +"id": "GeoRegionTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the geographic region (e.g., \"Ontario, Canada\").", +"readOnly": true, +"type": "string" +}, +"geoRegionType": { +"description": "Output only. The type of geographic region targeting.", +"enum": [ +"GEO_REGION_TYPE_UNKNOWN", +"GEO_REGION_TYPE_OTHER", +"GEO_REGION_TYPE_COUNTRY", +"GEO_REGION_TYPE_REGION", +"GEO_REGION_TYPE_TERRITORY", +"GEO_REGION_TYPE_PROVINCE", +"GEO_REGION_TYPE_STATE", +"GEO_REGION_TYPE_PREFECTURE", +"GEO_REGION_TYPE_GOVERNORATE", +"GEO_REGION_TYPE_CANTON", +"GEO_REGION_TYPE_UNION_TERRITORY", +"GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", +"GEO_REGION_TYPE_DMA_REGION", +"GEO_REGION_TYPE_METRO", +"GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", +"GEO_REGION_TYPE_COUNTY", +"GEO_REGION_TYPE_MUNICIPALITY", +"GEO_REGION_TYPE_CITY", +"GEO_REGION_TYPE_POSTAL_CODE", +"GEO_REGION_TYPE_DEPARTMENT", +"GEO_REGION_TYPE_AIRPORT", +"GEO_REGION_TYPE_TV_REGION", +"GEO_REGION_TYPE_OKRUG", +"GEO_REGION_TYPE_BOROUGH", +"GEO_REGION_TYPE_CITY_REGION", +"GEO_REGION_TYPE_ARRONDISSEMENT", +"GEO_REGION_TYPE_NEIGHBORHOOD", +"GEO_REGION_TYPE_UNIVERSITY", +"GEO_REGION_TYPE_DISTRICT" +], +"enumDescriptions": [ +"The geographic region type is unknown.", +"The geographic region type is other.", +"The geographic region is a country.", +"The geographic region type is region.", +"The geographic region is a territory.", +"The geographic region is a province.", +"The geographic region is a state.", +"The geographic region is a prefecture.", +"The geographic region is a governorate.", +"The geographic region is a canton.", +"The geographic region is a union territory.", +"The geographic region is an autonomous community.", +"The geographic region is a designated market area (DMA) region.", +"The geographic region type is metro.", +"The geographic region is a congressional district.", +"The geographic region is a county.", +"The geographic region is a municipality.", +"The geographic region is a city.", +"The geographic region targeting type is postal code.", +"The geographic region targeting type is department.", +"The geographic region is an airport.", +"The geographic region is a TV region.", +"The geographic region is an okrug.", +"The geographic region is a borough.", +"The geographic region is a city region.", +"The geographic region is an arrondissement.", +"The geographic region is a neighborhood.", +"The geographic region is a university.", +"The geographic region is a district." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAudience": { +"description": "Describes a Google audience resource. Includes Google audience lists.", +"id": "GoogleAudience", +"properties": { +"displayName": { +"description": "Output only. The display name of the Google audience. .", +"readOnly": true, +"type": "string" +}, +"googleAudienceId": { +"description": "Output only. The unique ID of the Google audience. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"googleAudienceType": { +"description": "Output only. The type of Google audience. .", +"enum": [ +"GOOGLE_AUDIENCE_TYPE_UNSPECIFIED", +"GOOGLE_AUDIENCE_TYPE_AFFINITY", +"GOOGLE_AUDIENCE_TYPE_IN_MARKET", +"GOOGLE_AUDIENCE_TYPE_INSTALLED_APPS", +"GOOGLE_AUDIENCE_TYPE_NEW_MOBILE_DEVICES", +"GOOGLE_AUDIENCE_TYPE_LIFE_EVENT", +"GOOGLE_AUDIENCE_TYPE_EXTENDED_DEMOGRAPHIC" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"Affinity type Google audience.", +"In-Market type Google audience.", +"Installed-Apps type Google audience.", +"New-Mobile-Devices type Google audience.", +"Life-Event type Google audience.", +"Extended-Demographic type Google audience." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the google audience.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAudienceGroup": { +"description": "Details of Google audience group. All Google audience targeting settings are logically \u2018OR\u2019 of each other.", +"id": "GoogleAudienceGroup", +"properties": { +"settings": { +"description": "Required. All Google audience targeting settings in Google audience group. Repeated settings with same id will be ignored.", +"items": { +"$ref": "GoogleAudienceTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAudienceTargetingSetting": { +"description": "Details of Google audience targeting setting.", +"id": "GoogleAudienceTargetingSetting", +"properties": { +"googleAudienceId": { +"description": "Required. Google audience id of the Google audience targeting setting. This id is google_audience_id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleBytestreamMedia": { +"description": "Media resource.", +"id": "GoogleBytestreamMedia", +"properties": { +"resourceName": { +"description": "Name of the media resource.", +"type": "string" +} +}, +"type": "object" +}, +"GuaranteedOrder": { +"description": "A guaranteed order. Guaranteed orders are parent entity of guaranteed inventory sources. When creating a guaranteed inventory source, a guaranteed order ID must be assigned to the inventory source.", +"id": "GuaranteedOrder", +"properties": { +"defaultAdvertiserId": { +"description": "Output only. The ID of default advertiser of the guaranteed order. The default advertiser is either the read_write_advertiser_id or, if that is not set, the first advertiser listed in read_advertiser_ids. Otherwise, there is no default advertiser.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"defaultCampaignId": { +"description": "The ID of the default campaign that is assigned to the guaranteed order. The default campaign must belong to the default advertiser.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"exchange": { +"description": "Required. Immutable. The exchange where the guaranteed order originated.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack." +], +"type": "string" +}, +"guaranteedOrderId": { +"description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", +"readOnly": true, +"type": "string" +}, +"legacyGuaranteedOrderId": { +"description": "Output only. The legacy ID of the guaranteed order. Assigned by the original exchange. The legacy ID is unique within one exchange, but is not guaranteed to be unique across all guaranteed orders. This ID is used in SDF and UI.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the guaranteed order.", +"readOnly": true, +"type": "string" +}, +"publisherName": { +"description": "Required. The publisher name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"readAccessInherited": { +"description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order. Only applicable if read_write_partner_id is set. If True, overrides read_advertiser_ids.", +"type": "boolean" +}, +"readAdvertiserIds": { +"description": "The IDs of advertisers with read access to the guaranteed order. This field must not include the advertiser assigned to read_write_advertiser_id if it is set. All advertisers in this field must belong to read_write_partner_id or the same partner as read_write_advertiser_id.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"readWriteAdvertiserId": { +"description": "The advertiser with read/write access to the guaranteed order. This is also the default advertiser of the guaranteed order.", +"format": "int64", +"type": "string" +}, +"readWritePartnerId": { +"description": "The partner with read/write access to the guaranteed order.", +"format": "int64", +"type": "string" +}, +"status": { +"$ref": "GuaranteedOrderStatus", +"description": "The status settings of the guaranteed order." +}, +"updateTime": { +"description": "Output only. The timestamp when the guaranteed order was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GuaranteedOrderStatus": { +"description": "The status settings of the guaranteed order.", +"id": "GuaranteedOrderStatus", +"properties": { +"configStatus": { +"description": "Output only. The configuration status of the guaranteed order. Acceptable values are `PENDING` and `COMPLETED`. A guaranteed order must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve. Currently the configuration action can only be performed via UI.", +"enum": [ +"GUARANTEED_ORDER_CONFIG_STATUS_UNSPECIFIED", +"PENDING", +"COMPLETED" +], +"enumDescriptions": [ +"The approval status is not specified or is unknown in this version.", +"The beginning state of a guaranteed order. The guaranteed order in this state needs to be configured before it can serve.", +"The state after the buyer configures a guaranteed order." +], +"readOnly": true, +"type": "string" +}, +"entityPauseReason": { +"description": "The user-provided reason for pausing this guaranteed order. Must be UTF-8 encoded with a maximum length of 100 bytes. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", +"type": "string" +}, +"entityStatus": { +"description": "Whether or not the guaranteed order is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +} +}, +"type": "object" +}, +"HouseholdIncomeAssignedTargetingOptionDetails": { +"description": "Details for assigned household income targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", +"id": "HouseholdIncomeAssignedTargetingOptionDetails", +"properties": { +"householdIncome": { +"description": "Required. The household income of the audience.", +"enum": [ +"HOUSEHOLD_INCOME_UNSPECIFIED", +"HOUSEHOLD_INCOME_UNKNOWN", +"HOUSEHOLD_INCOME_LOWER_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT", +"HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT", +"HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT", +"HOUSEHOLD_INCOME_TOP_10_PERCENT" +], +"enumDescriptions": [ +"Default value when household income is not specified in this version. This enum is a placeholder for default value and does not represent a real household income option.", +"The household income of the audience is unknown.", +"The audience is in the lower 50% of U.S. household incomes.", +"The audience is in the top 41-50% of U.S. household incomes.", +"The audience is in the top 31-40% of U.S. household incomes.", +"The audience is in the top 21-30% of U.S. household incomes.", +"The audience is in the top 11-20% of U.S. household incomes.", +"The audience is in the top 10% of U.S. household incomes." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_HOUSEHOLD_INCOME`.", +"type": "string" +} +}, +"type": "object" +}, +"HouseholdIncomeTargetingOptionDetails": { +"description": "Represents a targetable household income. This will be populated in the household_income_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", +"id": "HouseholdIncomeTargetingOptionDetails", +"properties": { +"householdIncome": { +"description": "Output only. The household income of an audience.", +"enum": [ +"HOUSEHOLD_INCOME_UNSPECIFIED", +"HOUSEHOLD_INCOME_UNKNOWN", +"HOUSEHOLD_INCOME_LOWER_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT", +"HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT", +"HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT", +"HOUSEHOLD_INCOME_TOP_10_PERCENT" +], +"enumDescriptions": [ +"Default value when household income is not specified in this version. This enum is a placeholder for default value and does not represent a real household income option.", +"The household income of the audience is unknown.", +"The audience is in the lower 50% of U.S. household incomes.", +"The audience is in the top 41-50% of U.S. household incomes.", +"The audience is in the top 31-40% of U.S. household incomes.", +"The audience is in the top 21-30% of U.S. household incomes.", +"The audience is in the top 11-20% of U.S. household incomes.", +"The audience is in the top 10% of U.S. household incomes." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"IdFilter": { +"description": "A filtering option that filters entities by their entity IDs.", +"id": "IdFilter", +"properties": { +"adGroupAdIds": { +"description": "YouTube Ads to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"adGroupIds": { +"description": "YouTube Ad Groups to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"campaignIds": { +"description": "Campaigns to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"insertionOrderIds": { +"description": "Insertion Orders to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"lineItemIds": { +"description": "Line Items to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"mediaProductIds": { +"description": "Media Products to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InsertionOrder": { +"description": "A single insertion order.", +"id": "InsertionOrder", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the insertion order belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"bidStrategy": { +"$ref": "BiddingStrategy", +"description": "The bidding strategy of the insertion order. By default, fixed_bid is set." +}, +"billableOutcome": { +"description": "Immutable. The billable outcome of the insertion order. Outcome based buying is deprecated. `BILLABLE_OUTCOME_PAY_PER_IMPRESSION` is the only valid value.", +"enum": [ +"BILLABLE_OUTCOME_UNSPECIFIED", +"BILLABLE_OUTCOME_PAY_PER_IMPRESSION", +"BILLABLE_OUTCOME_PAY_PER_CLICK", +"BILLABLE_OUTCOME_PAY_PER_VIEWABLE_IMPRESSION" +], +"enumDeprecated": [ +false, +false, +true, +true +], +"enumDescriptions": [ +"Unspecified billable outcome.", +"Pay per impressions.", +"Pay per click.", +"Pay per active view." +], +"type": "string" +}, +"budget": { +"$ref": "InsertionOrderBudget", +"description": "Required. The budget allocation settings of the insertion order." +}, +"campaignId": { +"description": "Required. Immutable. The unique ID of the campaign that the insertion order belongs to.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the insertion order. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not the insertion order can spend its budget and bid on inventory. * For CreateInsertionOrder method, only `ENTITY_STATUS_DRAFT` is allowed. To activate an insertion order, use UpdateInsertionOrder method and update the status to `ENTITY_STATUS_ACTIVE` after creation. * An insertion order cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other status. * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE` if its parent campaign is not active.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"frequencyCap": { +"$ref": "FrequencyCap", +"description": "Required. The frequency capping setting of the insertion order." +}, +"insertionOrderId": { +"description": "Output only. The unique ID of the insertion order. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"insertionOrderType": { +"description": "The type of insertion order. If this field is unspecified in creation, the value defaults to `RTB`.", +"enum": [ +"INSERTION_ORDER_TYPE_UNSPECIFIED", +"RTB", +"OVER_THE_TOP" +], +"enumDescriptions": [ +"Insertion order type is not specified or is unknown.", +"Real-time bidding.", +"Over-the-top." +], +"type": "string" +}, +"integrationDetails": { +"$ref": "IntegrationDetails", +"description": "Additional integration details of the insertion order." +}, +"name": { +"description": "Output only. The resource name of the insertion order.", +"readOnly": true, +"type": "string" +}, +"pacing": { +"$ref": "Pacing", +"description": "Required. The budget spending speed setting of the insertion order." +}, +"partnerCosts": { +"description": "The partner costs associated with the insertion order. If absent or empty in CreateInsertionOrder method, the newly created insertion order will inherit partner costs from the partner settings.", +"items": { +"$ref": "PartnerCost" +}, +"type": "array" +}, +"performanceGoal": { +"$ref": "PerformanceGoal", +"description": "Required. Performance goal of the insertion order." +}, +"reservationType": { +"description": "Output only. The reservation type of the insertion order.", +"enum": [ +"RESERVATION_TYPE_UNSPECIFIED", +"RESERVATION_TYPE_NOT_GUARANTEED", +"RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED", +"RESERVATION_TYPE_TAG_GUARANTEED" +], +"enumDescriptions": [ +"Reservation type value is not specified or is unknown in this version.", +"Not created through a guaranteed inventory source.", +"Created through a programmatic guaranteed inventory source.", +"Created through a tag guaranteed inventory source." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the insertion order was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InsertionOrderBudget": { +"description": "Settings that control how insertion order budget is allocated.", +"id": "InsertionOrderBudget", +"properties": { +"automationType": { +"description": "The type of automation used to manage bid and budget for the insertion order. If this field is unspecified in creation, the value defaults to `INSERTION_ORDER_AUTOMATION_TYPE_NONE`.", +"enum": [ +"INSERTION_ORDER_AUTOMATION_TYPE_UNSPECIFIED", +"INSERTION_ORDER_AUTOMATION_TYPE_BUDGET", +"INSERTION_ORDER_AUTOMATION_TYPE_NONE", +"INSERTION_ORDER_AUTOMATION_TYPE_BID_BUDGET" +], +"enumDescriptions": [ +"Insertion order automation option is not specified or is unknown in this version.", +"Automatic budget allocation. Allow the system to automatically shift budget to owning line items to optimize performance defined by kpi. No automation on bid settings.", +"No automation of bid or budget on insertion order level. Bid and budget must be manually configured at the line item level.", +"Allow the system to automatically adjust bids and shift budget to owning line items to optimize performance defined by kpi." +], +"type": "string" +}, +"budgetSegments": { +"description": "Required. The list of budget segments. Use a budget segment to specify a specific budget for a given period of time an insertion order is running.", +"items": { +"$ref": "InsertionOrderBudgetSegment" +}, +"type": "array" +}, +"budgetUnit": { +"description": "Required. Immutable. The budget unit specifies whether the budget is currency based or impression based.", +"enum": [ +"BUDGET_UNIT_UNSPECIFIED", +"BUDGET_UNIT_CURRENCY", +"BUDGET_UNIT_IMPRESSIONS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Budgeting in currency amounts.", +"Budgeting in impression amounts." +], +"type": "string" +} +}, +"type": "object" +}, +"InsertionOrderBudgetSegment": { +"description": "Settings that control the budget of a single budget segment.", +"id": "InsertionOrderBudgetSegment", +"properties": { +"budgetAmountMicros": { +"description": "Required. The budget amount the insertion order will spend for the given date_range. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"campaignBudgetId": { +"description": "The budget_id of the campaign budget that this insertion order budget segment is a part of.", +"format": "int64", +"type": "string" +}, +"dateRange": { +"$ref": "DateRange", +"description": "Required. The start and end date settings of the budget segment. They are resolved relative to the parent advertiser's time zone. * When creating a new budget segment, both `start_date` and `end_date` must be in the future. * An existing budget segment with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." +}, +"description": { +"description": "The budget segment description. It can be used to enter Purchase Order information for each budget segment and have that information printed on the invoices. Must be UTF-8 encoded.", +"type": "string" +} +}, +"type": "object" +}, +"IntegralAdScience": { +"description": "Details of Integral Ad Science settings.", +"id": "IntegralAdScience", +"properties": { +"customSegmentId": { +"description": "The custom segment ID provided by Integral Ad Science. The ID must be between `1000001` and `1999999`, inclusive.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"displayViewability": { +"description": "Display Viewability section (applicable to display line items only).", +"enum": [ +"PERFORMANCE_VIEWABILITY_UNSPECIFIED", +"PERFORMANCE_VIEWABILITY_40", +"PERFORMANCE_VIEWABILITY_50", +"PERFORMANCE_VIEWABILITY_60", +"PERFORMANCE_VIEWABILITY_70" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any display viewability options.", +"Target 40% Viewability or Higher.", +"Target 50% Viewability or Higher.", +"Target 60% Viewability or Higher.", +"Target 70% Viewability or Higher." +], +"type": "string" +}, +"excludeUnrateable": { +"description": "Brand Safety - **Unrateable**.", +"type": "boolean" +}, +"excludedAdFraudRisk": { +"description": "Ad Fraud settings.", +"enum": [ +"SUSPICIOUS_ACTIVITY_UNSPECIFIED", +"SUSPICIOUS_ACTIVITY_HR", +"SUSPICIOUS_ACTIVITY_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any ad fraud prevention options.", +"Ad Fraud - Exclude High Risk.", +"Ad Fraud - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedAdultRisk": { +"description": "Brand Safety - **Adult content**.", +"enum": [ +"ADULT_UNSPECIFIED", +"ADULT_HR", +"ADULT_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any adult options.", +"Adult - Exclude High Risk.", +"Adult - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedAlcoholRisk": { +"description": "Brand Safety - **Alcohol**.", +"enum": [ +"ALCOHOL_UNSPECIFIED", +"ALCOHOL_HR", +"ALCOHOL_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any alcohol options.", +"Alcohol - Exclude High Risk.", +"Alcohol - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedDrugsRisk": { +"description": "Brand Safety - **Drugs**.", +"enum": [ +"DRUGS_UNSPECIFIED", +"DRUGS_HR", +"DRUGS_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any drugs options.", +"Drugs - Exclude High Risk.", +"Drugs - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedGamblingRisk": { +"description": "Brand Safety - **Gambling**.", +"enum": [ +"GAMBLING_UNSPECIFIED", +"GAMBLING_HR", +"GAMBLING_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any gambling options.", +"Gambling - Exclude High Risk.", +"Gambling - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedHateSpeechRisk": { +"description": "Brand Safety - **Hate speech**.", +"enum": [ +"HATE_SPEECH_UNSPECIFIED", +"HATE_SPEECH_HR", +"HATE_SPEECH_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any hate speech options.", +"Hate Speech - Exclude High Risk.", +"Hate Speech - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedIllegalDownloadsRisk": { +"description": "Brand Safety - **Illegal downloads**.", +"enum": [ +"ILLEGAL_DOWNLOADS_UNSPECIFIED", +"ILLEGAL_DOWNLOADS_HR", +"ILLEGAL_DOWNLOADS_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any illegal downloads options.", +"Illegal Downloads - Exclude High Risk.", +"Illegal Downloads - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedOffensiveLanguageRisk": { +"description": "Brand Safety - **Offensive language**.", +"enum": [ +"OFFENSIVE_LANGUAGE_UNSPECIFIED", +"OFFENSIVE_LANGUAGE_HR", +"OFFENSIVE_LANGUAGE_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any language options.", +"Offensive Language - Exclude High Risk.", +"Offensive Language - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedViolenceRisk": { +"description": "Brand Safety - **Violence**.", +"enum": [ +"VIOLENCE_UNSPECIFIED", +"VIOLENCE_HR", +"VIOLENCE_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any violence options.", +"Violence - Exclude High Risk.", +"Violence - Exclude High and Moderate Risk." +], +"type": "string" +}, +"traqScoreOption": { +"description": "True advertising quality (applicable to Display line items only).", +"enum": [ +"TRAQ_UNSPECIFIED", +"TRAQ_250", +"TRAQ_500", +"TRAQ_600", +"TRAQ_700", +"TRAQ_750", +"TRAQ_875", +"TRAQ_1000" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any true advertising quality scores.", +"TRAQ score 250-1000.", +"TRAQ score 500-1000.", +"TRAQ score 600-1000.", +"TRAQ score 700-1000.", +"TRAQ score 750-1000.", +"TRAQ score 875-1000.", +"TRAQ score 1000." +], +"type": "string" +}, +"videoViewability": { +"description": "Video Viewability Section (applicable to video line items only).", +"enum": [ +"VIDEO_VIEWABILITY_UNSPECIFIED", +"VIDEO_VIEWABILITY_40", +"VIDEO_VIEWABILITY_50", +"VIDEO_VIEWABILITY_60", +"VIDEO_VIEWABILITY_70" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any video viewability options.", +"40%+ in view (IAB video viewability standard).", +"50%+ in view (IAB video viewability standard).", +"60%+ in view (IAB video viewability standard).", +"70%+ in view (IAB video viewability standard)." +], +"type": "string" +} +}, +"type": "object" +}, +"IntegrationDetails": { +"description": "Integration details of an entry.", +"id": "IntegrationDetails", +"properties": { +"details": { +"description": "Additional details of the entry in string format. Must be UTF-8 encoded with a length of no more than 1000 characters.", +"type": "string" +}, +"integrationCode": { +"description": "An external identifier to be associated with the entry. The integration code will show up together with the entry in many places in the system, for example, reporting. Must be UTF-8 encoded with a length of no more than 500 characters.", +"type": "string" +} +}, +"type": "object" +}, +"InventorySource": { +"description": "An inventory source.", +"id": "InventorySource", +"properties": { +"commitment": { +"description": "Whether the inventory source has a guaranteed or non-guaranteed delivery.", +"enum": [ +"INVENTORY_SOURCE_COMMITMENT_UNSPECIFIED", +"INVENTORY_SOURCE_COMMITMENT_GUARANTEED", +"INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED" +], +"enumDescriptions": [ +"The commitment is not specified or is unknown in this version.", +"The commitment is guaranteed delivery.", +"The commitment is non-guaranteed delivery." +], +"type": "string" +}, +"creativeConfigs": { +"description": "The creative requirements of the inventory source. Not applicable for auction packages.", +"items": { +"$ref": "CreativeConfig" +}, +"type": "array" +}, +"dealId": { +"description": "The ID in the exchange space that uniquely identifies the inventory source. Must be unique across buyers within each exchange but not necessarily unique across exchanges.", +"type": "string" +}, +"deliveryMethod": { +"description": "The delivery method of the inventory source. * For non-guaranteed inventory sources, the only acceptable value is `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed inventory sources, acceptable values are `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.", +"enum": [ +"INVENTORY_SOURCE_DELIVERY_METHOD_UNSPECIFIED", +"INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC", +"INVENTORY_SOURCE_DELIVERY_METHOD_TAG" +], +"enumDescriptions": [ +"The delivery method is not specified or is unknown in this version.", +"The delivery method is programmatic.", +"The delivery method is tag." +], +"type": "string" +}, +"displayName": { +"description": "The display name of the inventory source. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"exchange": { +"description": "The exchange to which the inventory source belongs.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack." +], +"type": "string" +}, +"guaranteedOrderId": { +"description": "Immutable. The ID of the guaranteed order that this inventory source belongs to. Only applicable when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`.", +"type": "string" +}, +"inventorySourceId": { +"description": "Output only. The unique ID of the inventory source. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inventorySourceProductType": { +"description": "Output only. The product type of the inventory source, denoting the way through which it sells inventory.", +"enum": [ +"INVENTORY_SOURCE_PRODUCT_TYPE_UNSPECIFIED", +"PREFERRED_DEAL", +"PRIVATE_AUCTION", +"PROGRAMMATIC_GUARANTEED", +"TAG_GUARANTEED", +"YOUTUBE_RESERVE", +"INSTANT_RESERVE", +"GUARANTEED_PACKAGE", +"PROGRAMMATIC_TV", +"AUCTION_PACKAGE" +], +"enumDescriptions": [ +"The product type is not specified or is unknown in this version. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Preferred Deal.", +"The inventory source sells inventory through Private Auction.", +"The inventory source sells inventory through Programmatic Guaranteed.", +"The inventory source sells inventory through Tag Guaranteed.", +"The inventory source sells inventory through YouTube Reserve.", +"The inventory source sells inventory through Instant Reserve. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Guaranteed Package. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Programmtic TV. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Auction Package. Modifying inventory sources of this product type are not supported via API." +], +"readOnly": true, +"type": "string" +}, +"inventorySourceType": { +"description": "Denotes the type of the inventory source.", +"enum": [ +"INVENTORY_SOURCE_TYPE_UNSPECIFIED", +"INVENTORY_SOURCE_TYPE_PRIVATE", +"INVENTORY_SOURCE_TYPE_AUCTION_PACKAGE" +], +"enumDescriptions": [ +"The inventory source type is not specified or is unknown in this version.", +"Private inventory source.", +"Auction package." +], +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the inventory source.", +"readOnly": true, +"type": "string" +}, +"publisherName": { +"description": "The publisher/seller name of the inventory source.", +"type": "string" +}, +"rateDetails": { +"$ref": "RateDetails", +"description": "Required. The rate details of the inventory source." +}, +"readAdvertiserIds": { +"description": "Output only. The IDs of advertisers with read-only access to the inventory source.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"readPartnerIds": { +"description": "Output only. The IDs of partners with read-only access to the inventory source. All advertisers of partners in this field inherit read-only access to the inventory source.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"readWriteAccessors": { +"$ref": "InventorySourceAccessors", +"description": "The partner or advertisers that have read/write access to the inventory source. Output only when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`, in which case the read/write accessors are inherited from the parent guaranteed order. Required when commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED`. If commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED` and a partner is set in this field, all advertisers under this partner will automatically have read-only access to the inventory source. These advertisers will not be included in read_advertiser_ids." +}, +"status": { +"$ref": "InventorySourceStatus", +"description": "The status settings of the inventory source." +}, +"timeRange": { +"$ref": "TimeRange", +"description": "The time range when this inventory source starts and stops serving." +}, +"updateTime": { +"description": "Output only. The timestamp when the inventory source was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceAccessors": { +"description": "The partner or advertisers with access to the inventory source.", +"id": "InventorySourceAccessors", +"properties": { +"advertisers": { +"$ref": "InventorySourceAccessorsAdvertiserAccessors", +"description": "The advertisers with access to the inventory source. All advertisers must belong to the same partner." +}, +"partner": { +"$ref": "InventorySourceAccessorsPartnerAccessor", +"description": "The partner with access to the inventory source." +} +}, +"type": "object" +}, +"InventorySourceAccessorsAdvertiserAccessors": { +"description": "The advertisers with access to the inventory source.", +"id": "InventorySourceAccessorsAdvertiserAccessors", +"properties": { +"advertiserIds": { +"description": "The IDs of the advertisers.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InventorySourceAccessorsPartnerAccessor": { +"description": "The partner with access to the inventory source.", +"id": "InventorySourceAccessorsPartnerAccessor", +"properties": { +"partnerId": { +"description": "The ID of the partner.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceAssignedTargetingOptionDetails": { +"description": "Targeting details for inventory source. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`.", +"id": "InventorySourceAssignedTargetingOptionDetails", +"properties": { +"inventorySourceId": { +"description": "Required. ID of the inventory source. Should refer to the inventory_source_id field of an InventorySource resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceDisplayCreativeConfig": { +"description": "The configuration for display creatives.", +"id": "InventorySourceDisplayCreativeConfig", +"properties": { +"creativeSize": { +"$ref": "Dimensions", +"description": "The size requirements for display creatives that can be assigned to the inventory source." +} +}, +"type": "object" +}, +"InventorySourceFilter": { +"description": "A filtering option for filtering on Inventory Source entities.", +"id": "InventorySourceFilter", +"properties": { +"inventorySourceIds": { +"description": "Inventory Sources to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Leave empty to download all Inventory Sources for the selected Advertiser or Partner.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InventorySourceGroup": { +"description": "A collection of targetable inventory sources.", +"id": "InventorySourceGroup", +"properties": { +"displayName": { +"description": "Required. The display name of the inventory source group. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Output only. The unique ID of the inventory source group. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the inventory source group.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceGroupAssignedTargetingOptionDetails": { +"description": "Targeting details for inventory source group. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.", +"id": "InventorySourceGroupAssignedTargetingOptionDetails", +"properties": { +"inventorySourceGroupId": { +"description": "Required. ID of the inventory source group. Should refer to the inventory_source_group_id field of an InventorySourceGroup resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceStatus": { +"description": "The status related settings of the inventory source.", +"id": "InventorySourceStatus", +"properties": { +"configStatus": { +"description": "Output only. The configuration status of the inventory source. Only applicable for guaranteed inventory sources. Acceptable values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve.", +"enum": [ +"INVENTORY_SOURCE_CONFIG_STATUS_UNSPECIFIED", +"INVENTORY_SOURCE_CONFIG_STATUS_PENDING", +"INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED" +], +"enumDescriptions": [ +"The approval status is not specified or is unknown in this version.", +"The beginning state of a guaranteed inventory source. The inventory source in this state needs to be configured.", +"The state after the buyer configures a guaranteed inventory source." +], +"readOnly": true, +"type": "string" +}, +"entityPauseReason": { +"description": "The user-provided reason for pausing this inventory source. Must not exceed 100 characters. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", +"type": "string" +}, +"entityStatus": { +"description": "Whether or not the inventory source is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"sellerPauseReason": { +"description": "Output only. The seller-provided reason for pausing this inventory source. Only applicable for inventory sources synced directly from the publishers and when seller_status is set to `ENTITY_STATUS_PAUSED`.", +"readOnly": true, +"type": "string" +}, +"sellerStatus": { +"description": "Output only. The status set by the seller for the inventory source. Only applicable for inventory sources synced directly from the publishers. Acceptable values are `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceVideoCreativeConfig": { +"description": "The configuration for video creatives.", +"id": "InventorySourceVideoCreativeConfig", +"properties": { +"duration": { +"description": "The duration requirements for the video creatives that can be assigned to the inventory source.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Invoice": { +"description": "A single invoice.", +"id": "Invoice", +"properties": { +"budgetInvoiceGroupingId": { +"description": "The budget grouping ID for this invoice. This field will only be set if the invoice level of the corresponding billing profile was set to \"Budget invoice grouping ID\".", +"type": "string" +}, +"budgetSummaries": { +"description": "The list of summarized information for each budget associated with this invoice. This field will only be set if the invoice detail level of the corresponding billing profile was set to \"Budget level PO\".", +"items": { +"$ref": "BudgetSummary" +}, +"type": "array" +}, +"correctedInvoiceId": { +"description": "The ID of the original invoice being adjusted by this invoice, if applicable. May appear on the invoice PDF as `Reference invoice number`. If replaced_invoice_ids is set, this field will be empty.", +"type": "string" +}, +"currencyCode": { +"description": "The currency used in the invoice in ISO 4217 format.", +"type": "string" +}, +"displayName": { +"description": "The display name of the invoice.", +"type": "string" +}, +"dueDate": { +"$ref": "Date", +"description": "The date when the invoice is due." +}, +"invoiceId": { +"description": "The unique ID of the invoice.", +"type": "string" +}, +"invoiceType": { +"description": "The type of invoice document.", +"enum": [ +"INVOICE_TYPE_UNSPECIFIED", +"INVOICE_TYPE_CREDIT", +"INVOICE_TYPE_INVOICE" +], +"enumDescriptions": [ +"Not specified or is unknown in this version.", +"The invoice has a negative amount.", +"The invoice has a positive amount." +], +"type": "string" +}, +"issueDate": { +"$ref": "Date", +"description": "The date when the invoice was issued." +}, +"name": { +"description": "The resource name of the invoice.", +"type": "string" +}, +"nonBudgetMicros": { +"description": "The total amount of costs or adjustments not tied to a particular budget, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"paymentsAccountId": { +"description": "The ID of the payments account the invoice belongs to. Appears on the invoice PDF as `Billing Account Number`.", +"type": "string" +}, +"paymentsProfileId": { +"description": "The ID of the payments profile the invoice belongs to. Appears on the invoice PDF as `Billing ID`.", +"type": "string" +}, +"pdfUrl": { +"description": "The URL to download a PDF copy of the invoice. This URL is user specific and requires a valid OAuth 2.0 access token to access. The access token must be provided in an `Authorization: Bearer` HTTP header and be authorized for one of the following scopes: * `https://www.googleapis.com/auth/display-video-mediaplanning` * `https://www.googleapis.com/auth/display-video` The URL will be valid for 7 days after retrieval of this invoice object or until this invoice is retrieved again.", +"type": "string" +}, +"purchaseOrderNumber": { +"description": "Purchase order number associated with the invoice.", +"type": "string" +}, +"replacedInvoiceIds": { +"description": "The ID(s) of any originally issued invoice that is being cancelled by this invoice, if applicable. Multiple invoices may be listed if those invoices are being consolidated into a single invoice. May appear on invoice PDF as `Replaced invoice numbers`. If corrected_invoice_id is set, this field will be empty.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceDateRange": { +"$ref": "DateRange", +"description": "The service start and end dates which are covered by this invoice." +}, +"subtotalAmountMicros": { +"description": "The pre-tax subtotal amount, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"totalAmountMicros": { +"description": "The invoice total amount, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"totalTaxAmountMicros": { +"description": "The sum of all taxes in invoice, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"KeywordAssignedTargetingOptionDetails": { +"description": "Details for assigned keyword targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_KEYWORD`.", +"id": "KeywordAssignedTargetingOptionDetails", +"properties": { +"keyword": { +"description": "Required. The keyword, for example `car insurance`. Positive keyword cannot be offensive word. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number of characters is 80. Maximum number of words is 10.", +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +} +}, +"type": "object" +}, +"LanguageAssignedTargetingOptionDetails": { +"description": "Details for assigned language targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_LANGUAGE`.", +"id": "LanguageAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the language (e.g., \"French\").", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. All assigned language targeting options on the same resource must have the same value for this field.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_LANGUAGE`.", +"type": "string" +} +}, +"type": "object" +}, +"LanguageTargetingOptionDetails": { +"description": "Represents a targetable language. This will be populated in the language_details field when targeting_type is `TARGETING_TYPE_LANGUAGE`.", +"id": "LanguageTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the language (e.g., \"French\").", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LineItem": { +"description": "A single line item.", +"id": "LineItem", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the line item belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"bidStrategy": { +"$ref": "BiddingStrategy", +"description": "Required. The bidding strategy of the line item." +}, +"budget": { +"$ref": "LineItemBudget", +"description": "Required. The budget allocation setting of the line item." +}, +"campaignId": { +"description": "Output only. The unique ID of the campaign that the line item belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"conversionCounting": { +"$ref": "ConversionCountingConfig", +"description": "The conversion tracking setting of the line item." +}, +"creativeIds": { +"description": "The IDs of the creatives associated with the line item.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not the line item can spend its budget and bid on inventory. * For CreateLineItem method, only `ENTITY_STATUS_DRAFT` is allowed. To activate a line item, use UpdateLineItem method and update the status to `ENTITY_STATUS_ACTIVE` after creation. * A line item cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other status. * If the line item's parent insertion order is not active, the line item can't spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"excludeNewExchanges": { +"description": "Whether to exclude new exchanges from automatically being targeted by the line item. This field is false by default.", +"type": "boolean" +}, +"flight": { +"$ref": "LineItemFlight", +"description": "Required. The start and end time of the line item's flight." +}, +"frequencyCap": { +"$ref": "FrequencyCap", +"description": "Required. The impression frequency cap settings of the line item. The max_impressions field in this settings object must be used if assigning a limited cap." +}, +"insertionOrderId": { +"description": "Required. Immutable. The unique ID of the insertion order that the line item belongs to.", +"format": "int64", +"type": "string" +}, +"integrationDetails": { +"$ref": "IntegrationDetails", +"description": "Integration details of the line item." +}, +"inventorySourceIds": { +"description": "The IDs of the private inventory sources assigned to the line item.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"lineItemId": { +"description": "Output only. The unique ID of the line item. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lineItemType": { +"description": "Required. Immutable. The type of the line item.", +"enum": [ +"LINE_ITEM_TYPE_UNSPECIFIED", +"LINE_ITEM_TYPE_DISPLAY_DEFAULT", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_VIDEO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_AUDIO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP", +"LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME", +"LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", +"Image, HTML5, native, or rich media ads.", +"Display ads that drive installs of an app.", +"Video ads sold on a CPM basis for a variety of environments.", +"Video ads that drive installs of an app.", +"Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"RTB Audio ads sold for a variety of environments.", +"Over-the-top ads present in OTT insertion orders. This type is only applicable to line items with an insertion order of insertion_order_type `OVER_THE_TOP`.", +"Display ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API." +], +"type": "string" +}, +"mobileApp": { +"$ref": "MobileApp", +"description": "The mobile app promoted by the line item. This is applicable only when line_item_type is either `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`." +}, +"name": { +"description": "Output only. The resource name of the line item.", +"readOnly": true, +"type": "string" +}, +"pacing": { +"$ref": "Pacing", +"description": "Required. The budget spending speed setting of the line item." +}, +"partnerCosts": { +"description": "The partner costs associated with the line item. If absent or empty in CreateLineItem method, the newly created line item will inherit partner costs from its parent insertion order.", +"items": { +"$ref": "PartnerCost" +}, +"type": "array" +}, +"partnerRevenueModel": { +"$ref": "PartnerRevenueModel", +"description": "Required. The partner revenue model setting of the line item." +}, +"reservationType": { +"description": "Output only. The reservation type of the line item.", +"enum": [ +"RESERVATION_TYPE_UNSPECIFIED", +"RESERVATION_TYPE_NOT_GUARANTEED", +"RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED", +"RESERVATION_TYPE_TAG_GUARANTEED" +], +"enumDescriptions": [ +"Reservation type value is not specified or is unknown in this version.", +"Not created through a guaranteed inventory source.", +"Created through a programmatic guaranteed inventory source.", +"Created through a tag guaranteed inventory source." +], +"readOnly": true, +"type": "string" +}, +"targetingExpansion": { +"$ref": "TargetingExpansionConfig", +"description": "The [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item. This config is only applicable for display, video, or audio line items that use automated bidding and positively target eligible audience lists." +}, +"updateTime": { +"description": "Output only. The timestamp when the line item was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"warningMessages": { +"description": "Output only. The warning messages generated by the line item. These warnings do not block saving the line item, but some may block the line item from running.", +"items": { +"enum": [ +"LINE_ITEM_WARNING_MESSAGE_UNSPECIFIED", +"INVALID_FLIGHT_DATES", +"EXPIRED", +"PENDING_FLIGHT", +"ALL_PARTNER_ENABLED_EXCHANGES_NEGATIVELY_TARGETED", +"INVALID_INVENTORY_SOURCE", +"APP_INVENTORY_INVALID_SITE_TARGETING", +"APP_INVENTORY_INVALID_AUDIENCE_LISTS", +"NO_VALID_CREATIVE", +"PARENT_INSERTION_ORDER_PAUSED", +"PARENT_INSERTION_ORDER_EXPIRED", +"NO_POSITIVE_AUDIENCE_LIST_TARGETED", +"APP_INSTALL_NO_CONVERSION_PIXEL", +"TARGETING_REVOKED_OR_CLOSED_USER_LIST", +"APP_INSTALL_NO_OPTIMAL_BIDDING_STRATEGY", +"CREATIVE_SIZE_NOT_IN_USE_FOR_TARGETED_DEALS", +"NO_CREATIVE_FOR_TARGETED_DEALS", +"TARGETING_DEPRECATED_GEO_TARGET", +"DEPRECATED_FIRST_PARTY_AUDIENCE_EXCLUSION" +], +"enumDescriptions": [ +"Not specified or is unknown.", +"This line item has invalid flight dates. The line item will not run.", +"This line item's end date is in the past.", +"This line item will begin running in the future.", +"All partner enabled exchanges are negatively targeted. The line item will not run.", +"No active inventory sources are being targeted. The line item will not run.", +"This line item's Apps & URLs targeting doesn't include any mobile apps. This line item's type requires you to include mobile apps in your channel, sitelist, or apps targeting. The line item will not run.", +"This line item isn't targeting any mobile users. This line item's type requires you to target a user list with mobile users. The line item will not run.", +"This line item does not contain any valid creative. The line item will not run.", +"The insertion order of this line item is paused. The line item will not run.", +"The insertion order of this line item has its end date set in the past. The line item will not run.", +"This line item does not target any audience lists, which may result in spending your budget too quickly.", +"This app install line item does not have any conversion pixel set up.", +"This line item targets one or more user lists that are no longer available. In the future, this will prevent the line item from serving, so consider removing these lists from your targeting.", +"This app install line item does not have an optimal bidding strategy.", +"Deals targeted by this line item accept creative sizes which are not in use. This may limit the line item's delivery or performance.", +"This line item does not contain any creative for the targeted deals.", +"This line item targets a geo target that is deprecated.", +"This line item uses the exclude_first_party_audience setting, which is deprecated and scheduled to sunset after **March 25, 2023**. Update your API integration to directly exclude any first-party audiences using audience targeting before **March 25, 2023** to account for the sunset of the exclude_first_party_audience field." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"LineItemBudget": { +"description": "Settings that control how budget is allocated.", +"id": "LineItemBudget", +"properties": { +"budgetAllocationType": { +"description": "Required. The type of the budget allocation. `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when automatic budget allocation is enabled for the parent insertion order.", +"enum": [ +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNSPECIFIED", +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC", +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED", +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Automatic budget allocation is enabled for the line item.", +"A fixed max budget amount is allocated for the line item.", +"No budget limit is applied to the line item." +], +"type": "string" +}, +"budgetUnit": { +"description": "Output only. The budget unit specifies whether the budget is currency based or impression based. This value is inherited from the parent insertion order.", +"enum": [ +"BUDGET_UNIT_UNSPECIFIED", +"BUDGET_UNIT_CURRENCY", +"BUDGET_UNIT_IMPRESSIONS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Budgeting in currency amounts.", +"Budgeting in impression amounts." +], +"readOnly": true, +"type": "string" +}, +"maxAmount": { +"description": "The maximum budget amount the line item will spend. Must be greater than 0. When budget_allocation_type is: * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable and is set by the system. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`, if budget_unit is: - `BUDGET_UNIT_CURRENCY`, this field represents maximum budget amount to spend, in micros of the advertiser's currency. For example, 1500000 represents 1.5 standard units of the currency. - `BUDGET_UNIT_IMPRESSIONS`, this field represents the maximum number of impressions to serve. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not applicable and will be ignored by the system.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LineItemFlight": { +"description": "Settings that control the active duration of a line item.", +"id": "LineItemFlight", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "The flight start and end dates of the line item. They are resolved relative to the parent advertiser's time zone. * Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM`. Output only otherwise. * When creating a new flight, both `start_date` and `end_date` must be in the future. * An existing flight with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." +}, +"flightDateType": { +"description": "Required. The type of the line item's flight dates.", +"enum": [ +"LINE_ITEM_FLIGHT_DATE_TYPE_UNSPECIFIED", +"LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED", +"LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM", +"LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The line item's flight dates are inherited from its parent insertion order.", +"The line item uses its own custom flight dates.", +"The line item uses a trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This value will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information." +], +"type": "string" +}, +"triggerId": { +"description": "The ID of the manual trigger associated with the line item. * Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER`. Must not be set otherwise. * When set, the line item's flight dates are inherited from its parent insertion order. * Active line items will spend when the selected trigger is activated within the parent insertion order's flight dates. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This field will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ListAdvertiserAssignedTargetingOptionsResponse": { +"description": "Response message for ListAdvertiserAssignedTargetingOptions.", +"id": "ListAdvertiserAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdvertisersResponse": { +"id": "ListAdvertisersResponse", +"properties": { +"advertisers": { +"description": "The list of advertisers. This list will be absent if empty.", +"items": { +"$ref": "Advertiser" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAdvertisers` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAssignedInventorySourcesResponse": { +"description": "Response message for AssignedInventorySourceService.ListAssignedInventorySources.", +"id": "ListAssignedInventorySourcesResponse", +"properties": { +"assignedInventorySources": { +"description": "The list of assigned inventory sources. This list will be absent if empty.", +"items": { +"$ref": "AssignedInventorySource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAssignedInventorySources` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAssignedLocationsResponse": { +"description": "Response message for AssignedLocationService.ListAssignedLocations.", +"id": "ListAssignedLocationsResponse", +"properties": { +"assignedLocations": { +"description": "The list of assigned locations. This list will be absent if empty.", +"items": { +"$ref": "AssignedLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAssignedLocations` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListCampaignAssignedTargetingOptionsResponse": { +"description": "Response message for ListCampaignAssignedTargetingOptions.", +"id": "ListCampaignAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListCampaignAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListCampaignsResponse": { +"id": "ListCampaignsResponse", +"properties": { +"campaigns": { +"description": "The list of campaigns. This list will be absent if empty.", +"items": { +"$ref": "Campaign" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCampaigns` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListChannelsResponse": { +"id": "ListChannelsResponse", +"properties": { +"channels": { +"description": "The list of channels. This list will be absent if empty.", +"items": { +"$ref": "Channel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListChannels` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListCombinedAudiencesResponse": { +"id": "ListCombinedAudiencesResponse", +"properties": { +"combinedAudiences": { +"description": "The list of combined audiences. This list will be absent if empty.", +"items": { +"$ref": "CombinedAudience" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCombinedAudiences` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListCreativesResponse": { +"id": "ListCreativesResponse", +"properties": { +"creatives": { +"description": "The list of creatives. This list will be absent if empty.", +"items": { +"$ref": "Creative" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCreativesRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomBiddingAlgorithmsResponse": { +"id": "ListCustomBiddingAlgorithmsResponse", +"properties": { +"customBiddingAlgorithms": { +"description": "The list of custom bidding algorithms. This list will be absent if empty.", +"items": { +"$ref": "CustomBiddingAlgorithm" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomBiddingAlgorithmsRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomBiddingScriptsResponse": { +"id": "ListCustomBiddingScriptsResponse", +"properties": { +"customBiddingScripts": { +"description": "The list of custom bidding scripts. This list will be absent if empty.", +"items": { +"$ref": "CustomBiddingScript" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomBiddingScriptsRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomListsResponse": { +"id": "ListCustomListsResponse", +"properties": { +"customLists": { +"description": "The list of custom lists. This list will be absent if empty.", +"items": { +"$ref": "CustomList" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomLists` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListFirstAndThirdPartyAudiencesResponse": { +"id": "ListFirstAndThirdPartyAudiencesResponse", +"properties": { +"firstAndThirdPartyAudiences": { +"description": "The list of first and third party audiences. Audience size properties will not be included. This list will be absent if empty.", +"items": { +"$ref": "FirstAndThirdPartyAudience" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListFirstAndThirdPartyAudiences` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListGoogleAudiencesResponse": { +"id": "ListGoogleAudiencesResponse", +"properties": { +"googleAudiences": { +"description": "The list of Google audiences. This list will be absent if empty.", +"items": { +"$ref": "GoogleAudience" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGoogleAudiences` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListGuaranteedOrdersResponse": { +"id": "ListGuaranteedOrdersResponse", +"properties": { +"guaranteedOrders": { +"description": "The list of guaranteed orders. This list will be absent if empty.", +"items": { +"$ref": "GuaranteedOrder" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGuaranteedOrders` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInsertionOrderAssignedTargetingOptionsResponse": { +"id": "ListInsertionOrderAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListInsertionOrdersResponse": { +"id": "ListInsertionOrdersResponse", +"properties": { +"insertionOrders": { +"description": "The list of insertion orders. This list will be absent if empty.", +"items": { +"$ref": "InsertionOrder" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInsertionOrders` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInventorySourceGroupsResponse": { +"description": "Response message for InventorySourceGroupService.ListInventorySourceGroups.", +"id": "ListInventorySourceGroupsResponse", +"properties": { +"inventorySourceGroups": { +"description": "The list of inventory source groups. This list will be absent if empty.", +"items": { +"$ref": "InventorySourceGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySourceGroups` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInventorySourcesResponse": { +"id": "ListInventorySourcesResponse", +"properties": { +"inventorySources": { +"description": "The list of inventory sources. This list will be absent if empty.", +"items": { +"$ref": "InventorySource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySources` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInvoicesResponse": { +"id": "ListInvoicesResponse", +"properties": { +"invoices": { +"description": "The list of invoices. This list will be absent if empty.", +"items": { +"$ref": "Invoice" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInvoices` method to retrieve the next page of results. This token will be absent if there are no more invoices to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLineItemAssignedTargetingOptionsResponse": { +"description": "Response message for ListLineItemAssignedTargetingOptions.", +"id": "ListLineItemAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListLineItemAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLineItemsResponse": { +"id": "ListLineItemsResponse", +"properties": { +"lineItems": { +"description": "The list of line items. This list will be absent if empty.", +"items": { +"$ref": "LineItem" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListLineItems` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationListsResponse": { +"id": "ListLocationListsResponse", +"properties": { +"locationLists": { +"description": "The list of location lists. This list will be absent if empty.", +"items": { +"$ref": "LocationList" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListLocationLists` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListManualTriggersResponse": { +"id": "ListManualTriggersResponse", +"properties": { +"manualTriggers": { +"description": "The list of manual triggers. This list will be absent if empty.", +"items": { +"$ref": "ManualTrigger" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListManualTriggers` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListNegativeKeywordListsResponse": { +"description": "Response message for NegativeKeywordListService.ListNegativeKeywordLists.", +"id": "ListNegativeKeywordListsResponse", +"properties": { +"negativeKeywordLists": { +"description": "The list of negative keyword lists. This list will be absent if empty.", +"items": { +"$ref": "NegativeKeywordList" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListNegativeKeywordLists` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListNegativeKeywordsResponse": { +"description": "Response message for NegativeKeywordService.ListNegativeKeywords.", +"id": "ListNegativeKeywordsResponse", +"properties": { +"negativeKeywords": { +"description": "The list of negative keywords. This list will be absent if empty.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListNegativeKeywords` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListPartnerAssignedTargetingOptionsResponse": { +"id": "ListPartnerAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListPartnerAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListPartnersResponse": { +"id": "ListPartnersResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListPartners` method to retrieve the next page of results.", +"type": "string" +}, +"partners": { +"description": "The list of partners. This list will be absent if empty.", +"items": { +"$ref": "Partner" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSitesResponse": { +"description": "Response message for SiteService.ListSites.", +"id": "ListSitesResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListSites` method to retrieve the next page of results.", +"type": "string" +}, +"sites": { +"description": "The list of sites. This list will be absent if empty.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTargetingOptionsResponse": { +"description": "Response message for ListTargetingOptions.", +"id": "ListTargetingOptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListTargetingOptions` method to retrieve the next page of results.", +"type": "string" +}, +"targetingOptions": { +"description": "The list of targeting options. This list will be absent if empty.", +"items": { +"$ref": "TargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsersResponse": { +"id": "ListUsersResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListUsers` method to retrieve the next page of results. This token will be absent if there are no more results to return.", +"type": "string" +}, +"users": { +"description": "The list of users. This list will be absent if empty.", +"items": { +"$ref": "User" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocationList": { +"description": "A list of locations used for targeting.", +"id": "LocationList", +"properties": { +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser the location list belongs to.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the location list. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"locationListId": { +"description": "Output only. The unique ID of the location list. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"locationType": { +"description": "Required. Immutable. The type of location. All locations in the list will share this type.", +"enum": [ +"TARGETING_LOCATION_TYPE_UNSPECIFIED", +"TARGETING_LOCATION_TYPE_PROXIMITY", +"TARGETING_LOCATION_TYPE_REGIONAL" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"The type for proximity geo location.", +"The type for regional geo location." +], +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the location list.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LookbackWindow": { +"description": "Specifies how many days into the past to look when determining whether to record a conversion.", +"id": "LookbackWindow", +"properties": { +"clickDays": { +"description": "Lookback window, in days, from the last time a given user clicked on one of your ads.", +"format": "int32", +"type": "integer" +}, +"impressionDays": { +"description": "Lookback window, in days, from the last time a given user viewed one of your ads.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"LookupInvoiceCurrencyResponse": { +"id": "LookupInvoiceCurrencyResponse", +"properties": { +"currencyCode": { +"description": "Currency used by the advertiser in ISO 4217 format.", +"type": "string" +} +}, +"type": "object" +}, +"ManualTrigger": { +"description": "A single manual trigger in Display & Video 360. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This resource will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"id": "ManualTrigger", +"properties": { +"activationDurationMinutes": { +"description": "Required. The maximum duration of each activation in minutes. Must be between 1 and 360 inclusive. After this duration, the trigger will be automatically deactivated.", +"format": "int64", +"type": "string" +}, +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the manual trigger. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"latestActivationTime": { +"description": "Output only. The timestamp of the trigger's latest activation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the manual trigger.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the manual trigger. Will be set to the `INACTIVE` state upon creation.", +"enum": [ +"STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE" +], +"enumDescriptions": [ +"Default value when state is not specified or is unknown in this version.", +"The trigger is currently inactive and ready to be activated.", +"The trigger is currently active (activated)." +], +"readOnly": true, +"type": "string" +}, +"triggerId": { +"description": "Output only. The unique ID of the manual trigger.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MaximizeSpendBidStrategy": { +"description": "A strategy that automatically adjusts the bid to optimize a specified performance goal while spending the full budget.", +"id": "MaximizeSpendBidStrategy", +"properties": { +"customBiddingAlgorithmId": { +"description": "The ID of the Custom Bidding Algorithm used by this strategy. Only applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", +"format": "int64", +"type": "string" +}, +"maxAverageCpmBidAmountMicros": { +"description": "The maximum average CPM that may be bid, in micros of the advertiser's currency. Must be greater than or equal to a billable unit of the given currency. For example, 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"performanceGoalType": { +"description": "Required. The type of the performance goal that the bidding strategy tries to minimize while spending the full budget. `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not supported for this strategy.", +"enum": [ +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Cost per action.", +"Cost per click.", +"Viewable CPM.", +"Custom bidding algorithm.", +"Completed inview and audible views.", +"Inview time over 10 secs views.", +"Viewable impressions." +], +"type": "string" +}, +"raiseBidForDeals": { +"description": "Whether the strategy takes deal floor prices into account.", +"type": "boolean" +} +}, +"type": "object" +}, +"MeasurementConfig": { +"description": "Measurement settings of a partner.", +"id": "MeasurementConfig", +"properties": { +"dv360ToCmCostReportingEnabled": { +"description": "Whether or not to report DV360 cost to CM360.", +"type": "boolean" +}, +"dv360ToCmDataSharingEnabled": { +"description": "Whether or not to include DV360 data in CM360 data transfer reports.", +"type": "boolean" +} +}, +"type": "object" +}, +"MobileApp": { +"description": "A mobile app promoted by a mobile app install line item.", +"id": "MobileApp", +"properties": { +"appId": { +"description": "Required. The ID of the app provided by the platform store. Android apps are identified by the bundle ID used by Android's Play store, such as `com.google.android.gm`. iOS apps are identified by a nine-digit app ID used by Apple's App store, such as `422689480`.", +"type": "string" +}, +"displayName": { +"description": "Output only. The app name.", +"readOnly": true, +"type": "string" +}, +"platform": { +"description": "Output only. The app platform.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"IOS", +"ANDROID" +], +"enumDescriptions": [ +"Platform is not specified.", +"iOS platform.", +"Android platform." +], +"readOnly": true, +"type": "string" +}, +"publisher": { +"description": "Output only. The app publisher.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MobileDeviceIdList": { +"description": "Wrapper message for a list of mobile device IDs defining Customer Match audience members.", +"id": "MobileDeviceIdList", +"properties": { +"consent": { +"$ref": "Consent", +"description": "Input only. The consent setting for the users in mobile_device_ids. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." +}, +"mobileDeviceIds": { +"description": "A list of mobile device IDs defining Customer Match audience members. The size of mobile_device_ids mustn't be greater than 500,000.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"NativeContentPositionAssignedTargetingOptionDetails": { +"description": "Details for native content position assigned targeting option. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. Explicitly targeting all options is not supported. Remove all native content position targeting options to achieve this effect.", +"id": "NativeContentPositionAssignedTargetingOptionDetails", +"properties": { +"contentPosition": { +"description": "Required. The content position.", +"enum": [ +"NATIVE_CONTENT_POSITION_UNSPECIFIED", +"NATIVE_CONTENT_POSITION_UNKNOWN", +"NATIVE_CONTENT_POSITION_IN_ARTICLE", +"NATIVE_CONTENT_POSITION_IN_FEED", +"NATIVE_CONTENT_POSITION_PERIPHERAL", +"NATIVE_CONTENT_POSITION_RECOMMENDATION" +], +"enumDescriptions": [ +"Native content position is not specified in this version. This enum is a place holder for a default value and does not represent a real native content position.", +"The native content position is unknown.", +"Native content position is in-article, i.e., ads appear between the paragraphs of pages.", +"Native content position is in-feed, i.e., ads appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Native content position is peripheral, i.e., ads appear outside of core content on pages, such as the right- or left-hand side of the page.", +"Native content position is recommendation, i.e., ads appear in sections for recommended content." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.", +"type": "string" +} +}, +"type": "object" +}, +"NativeContentPositionTargetingOptionDetails": { +"description": "Represents a targetable native content position. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.", +"id": "NativeContentPositionTargetingOptionDetails", +"properties": { +"contentPosition": { +"description": "Output only. The content position.", +"enum": [ +"NATIVE_CONTENT_POSITION_UNSPECIFIED", +"NATIVE_CONTENT_POSITION_UNKNOWN", +"NATIVE_CONTENT_POSITION_IN_ARTICLE", +"NATIVE_CONTENT_POSITION_IN_FEED", +"NATIVE_CONTENT_POSITION_PERIPHERAL", +"NATIVE_CONTENT_POSITION_RECOMMENDATION" +], +"enumDescriptions": [ +"Native content position is not specified in this version. This enum is a place holder for a default value and does not represent a real native content position.", +"The native content position is unknown.", +"Native content position is in-article, i.e., ads appear between the paragraphs of pages.", +"Native content position is in-feed, i.e., ads appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Native content position is peripheral, i.e., ads appear outside of core content on pages, such as the right- or left-hand side of the page.", +"Native content position is recommendation, i.e., ads appear in sections for recommended content." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NegativeKeyword": { +"description": "A negatively targeted keyword that belongs to a negative keyword list.", +"id": "NegativeKeyword", +"properties": { +"keywordValue": { +"description": "Required. Immutable. The negatively targeted keyword, for example `car insurance`. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number of characters is 80. Maximum number of words is 10. Valid characters are restricted to ASCII characters only. The only URL-escaping permitted is for representing whitespace between words. Leading or trailing whitespace is ignored.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the negative keyword.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NegativeKeywordList": { +"description": "A list of negative keywords used for targeting.", +"id": "NegativeKeywordList", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the negative keyword list belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the negative keyword list. Must be UTF-8 encoded with a maximum size of 255 bytes.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the negative keyword list.", +"readOnly": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Output only. The unique ID of the negative keyword list. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"targetedLineItemCount": { +"description": "Output only. Number of line items that are directly targeting this negative keyword list.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NegativeKeywordListAssignedTargetingOptionDetails": { +"description": "Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.", +"id": "NegativeKeywordListAssignedTargetingOptionDetails", +"properties": { +"negativeKeywordListId": { +"description": "Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ObaIcon": { +"description": "OBA Icon for a Creative", +"id": "ObaIcon", +"properties": { +"clickTrackingUrl": { +"description": "Required. The click tracking URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", +"type": "string" +}, +"dimensions": { +"$ref": "Dimensions", +"description": "The dimensions of the OBA icon." +}, +"landingPageUrl": { +"description": "Required. The landing page URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", +"type": "string" +}, +"position": { +"description": "The position of the OBA icon on the creative.", +"enum": [ +"OBA_ICON_POSITION_UNSPECIFIED", +"OBA_ICON_POSITION_UPPER_RIGHT", +"OBA_ICON_POSITION_UPPER_LEFT", +"OBA_ICON_POSITION_LOWER_RIGHT", +"OBA_ICON_POSITION_LOWER_LEFT" +], +"enumDescriptions": [ +"The OBA icon position is not specified.", +"At the upper right side of the creative.", +"At the upper left side of the creative.", +"At the lower right side of the creative.", +"At the lower left side of the creative." +], +"type": "string" +}, +"program": { +"description": "The program of the OBA icon. For example: \u201cAdChoices\u201d.", +"type": "string" +}, +"resourceMimeType": { +"description": "The MIME type of the OBA icon resource.", +"type": "string" +}, +"resourceUrl": { +"description": "The URL of the OBA icon resource.", +"type": "string" +}, +"viewTrackingUrl": { +"description": "Required. The view tracking URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", +"type": "string" +} +}, +"type": "object" +}, +"OmidAssignedTargetingOptionDetails": { +"description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`.", +"id": "OmidAssignedTargetingOptionDetails", +"properties": { +"omid": { +"description": "Required. The type of Open Measurement enabled inventory.", +"enum": [ +"OMID_UNSPECIFIED", +"OMID_FOR_MOBILE_DISPLAY_ADS" +], +"enumDescriptions": [ +"Default value when omid targeting is not specified in this version.", +"Open Measurement enabled mobile display inventory." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`.", +"type": "string" +} +}, +"type": "object" +}, +"OmidTargetingOptionDetails": { +"description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`.", +"id": "OmidTargetingOptionDetails", +"properties": { +"omid": { +"description": "Output only. The type of Open Measurement enabled inventory.", +"enum": [ +"OMID_UNSPECIFIED", +"OMID_FOR_MOBILE_DISPLAY_ADS" +], +"enumDescriptions": [ +"Default value when omid targeting is not specified in this version.", +"Open Measurement enabled mobile display inventory." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OnScreenPositionAssignedTargetingOptionDetails": { +"description": "On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", +"id": "OnScreenPositionAssignedTargetingOptionDetails", +"properties": { +"adType": { +"description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.", +"enum": [ +"AD_TYPE_UNSPECIFIED", +"AD_TYPE_DISPLAY", +"AD_TYPE_VIDEO", +"AD_TYPE_AUDIO" +], +"enumDescriptions": [ +"Ad type is not specified or is unknown in this version.", +"Display creatives, e.g. image and HTML5.", +"Video creatives, e.g. video ads that play during streaming content in video players.", +"Audio creatives, e.g. audio ads that play during audio content." +], +"readOnly": true, +"type": "string" +}, +"onScreenPosition": { +"description": "Output only. The on screen position.", +"enum": [ +"ON_SCREEN_POSITION_UNSPECIFIED", +"ON_SCREEN_POSITION_UNKNOWN", +"ON_SCREEN_POSITION_ABOVE_THE_FOLD", +"ON_SCREEN_POSITION_BELOW_THE_FOLD" +], +"enumDescriptions": [ +"On screen position is not specified in this version. This enum is a place holder for a default value and does not represent a real on screen position.", +"The ad position is unknown on the screen.", +"The ad is located above the fold.", +"The ad is located below the fold." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", +"type": "string" +} +}, +"type": "object" +}, +"OnScreenPositionTargetingOptionDetails": { +"description": "Represents a targetable on screen position, which could be used by display and video ads. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", +"id": "OnScreenPositionTargetingOptionDetails", +"properties": { +"onScreenPosition": { +"description": "Output only. The on screen position.", +"enum": [ +"ON_SCREEN_POSITION_UNSPECIFIED", +"ON_SCREEN_POSITION_UNKNOWN", +"ON_SCREEN_POSITION_ABOVE_THE_FOLD", +"ON_SCREEN_POSITION_BELOW_THE_FOLD" +], +"enumDescriptions": [ +"On screen position is not specified in this version. This enum is a place holder for a default value and does not represent a real on screen position.", +"The ad position is unknown on the screen.", +"The ad is located above the fold.", +"The ad is located below the fold." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperatingSystemAssignedTargetingOptionDetails": { +"description": "Assigned operating system targeting option details. This will be populated in the operating_system_details field when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", +"id": "OperatingSystemAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the operating system.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting option ID populated in targeting_option_id field when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", +"type": "string" +} +}, +"type": "object" +}, +"OperatingSystemTargetingOptionDetails": { +"description": "Represents a targetable operating system. This will be populated in the operating_system_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", +"id": "OperatingSystemTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the operating system.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Pacing": { +"description": "Settings that control the rate at which a budget is spent.", +"id": "Pacing", +"properties": { +"dailyMaxImpressions": { +"description": "Maximum number of impressions to serve every day. Applicable when the budget is impression based. Must be greater than 0.", +"format": "int64", +"type": "string" +}, +"dailyMaxMicros": { +"description": "Maximum currency amount to spend every day in micros of advertiser's currency. Applicable when the budget is currency based. Must be greater than 0. For example, for 1.5 standard unit of the currency, set this field to 1500000. The value assigned will be rounded to whole billable units for the relevant currency by the following rules: any positive value less than a single billable unit will be rounded up to one billable unit and any value larger than a single billable unit will be rounded down to the nearest billable value. For example, if the currency's billable unit is 0.01, and this field is set to 10257770, it will round down to 10250000, a value of 10.25. If set to 505, it will round up to 10000, a value of 0.01.", +"format": "int64", +"type": "string" +}, +"pacingPeriod": { +"description": "Required. The time period in which the pacing budget will be spent. When automatic budget allocation is enabled at the insertion order via automationType, this field is output only and defaults to `PACING_PERIOD_FLIGHT`.", +"enum": [ +"PACING_PERIOD_UNSPECIFIED", +"PACING_PERIOD_DAILY", +"PACING_PERIOD_FLIGHT" +], +"enumDescriptions": [ +"Period value is not specified or is unknown in this version.", +"The pacing setting will be applied on daily basis.", +"The pacing setting will be applied to the whole flight duration." +], +"type": "string" +}, +"pacingType": { +"description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period.", +"enum": [ +"PACING_TYPE_UNSPECIFIED", +"PACING_TYPE_AHEAD", +"PACING_TYPE_ASAP", +"PACING_TYPE_EVEN" +], +"enumDescriptions": [ +"Pacing mode value is not specified or is unknown in this version.", +"Only applicable to `PACING_PERIOD_FLIGHT` pacing period. Ahead pacing attempts to spend faster than evenly, to make sure the entire budget is spent by the end of the flight.", +"Spend all of pacing budget amount as quick as possible.", +"Spend a consistent budget amount every period of time." +], +"type": "string" +} +}, +"type": "object" +}, +"ParentEntityFilter": { +"description": "A filtering option that filters on selected file types belonging to a chosen set of filter entities.", +"id": "ParentEntityFilter", +"properties": { +"fileType": { +"description": "Required. File types that will be returned.", +"items": { +"enum": [ +"FILE_TYPE_UNSPECIFIED", +"FILE_TYPE_CAMPAIGN", +"FILE_TYPE_MEDIA_PRODUCT", +"FILE_TYPE_INSERTION_ORDER", +"FILE_TYPE_LINE_ITEM", +"FILE_TYPE_AD_GROUP", +"FILE_TYPE_AD" +], +"enumDescriptions": [ +"Default value when type is unspecified or is unknown in this version.", +"Campaign.", +"Media Product.", +"Insertion Order.", +"Line Item.", +"YouTube Ad Group.", +"YouTube Ad." +], +"type": "string" +}, +"type": "array" +}, +"filterIds": { +"description": "The IDs of the specified filter type. This is used to filter entities to fetch. If filter type is not `FILTER_TYPE_NONE`, at least one ID must be specified.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"filterType": { +"description": "Required. Filter type used to filter fetched entities.", +"enum": [ +"FILTER_TYPE_UNSPECIFIED", +"FILTER_TYPE_NONE", +"FILTER_TYPE_ADVERTISER_ID", +"FILTER_TYPE_CAMPAIGN_ID", +"FILTER_TYPE_MEDIA_PRODUCT_ID", +"FILTER_TYPE_INSERTION_ORDER_ID", +"FILTER_TYPE_LINE_ITEM_ID" +], +"enumDescriptions": [ +"Default value when type is unspecified or is unknown in this version.", +"If selected, no filter will be applied to the download. Can only be used if an Advertiser is specified in CreateSdfDownloadTaskRequest.", +"Advertiser ID. If selected, all filter IDs must be Advertiser IDs that belong to the Partner specified in CreateSdfDownloadTaskRequest.", +"Campaign ID. If selected, all filter IDs must be Campaign IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"Media Product ID. If selected, all filter IDs must be Media Product IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_MEDIA_PRODUCT`.", +"Insertion Order ID. If selected, all filter IDs must be Insertion Order IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_INSERTION_ORDER`, `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and `FILE_TYPE_AD`.", +"Line Item ID. If selected, all filter IDs must be Line Item IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and `FILE_TYPE_AD`." +], +"type": "string" +} +}, +"type": "object" +}, +"ParentalStatusAssignedTargetingOptionDetails": { +"description": "Details for assigned parental status targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", +"id": "ParentalStatusAssignedTargetingOptionDetails", +"properties": { +"parentalStatus": { +"description": "Required. The parental status of the audience.", +"enum": [ +"PARENTAL_STATUS_UNSPECIFIED", +"PARENTAL_STATUS_PARENT", +"PARENTAL_STATUS_NOT_A_PARENT", +"PARENTAL_STATUS_UNKNOWN" +], +"enumDescriptions": [ +"Default value when parental status is not specified in this version. This enum is a place holder for default value and does not represent a real parental status option.", +"The audience is a parent.", +"The audience is not a parent.", +"The parental status of the audience is unknown." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`.", +"type": "string" +} +}, +"type": "object" +}, +"ParentalStatusTargetingOptionDetails": { +"description": "Represents a targetable parental status. This will be populated in the parental_status_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", +"id": "ParentalStatusTargetingOptionDetails", +"properties": { +"parentalStatus": { +"description": "Output only. The parental status of an audience.", +"enum": [ +"PARENTAL_STATUS_UNSPECIFIED", +"PARENTAL_STATUS_PARENT", +"PARENTAL_STATUS_NOT_A_PARENT", +"PARENTAL_STATUS_UNKNOWN" +], +"enumDescriptions": [ +"Default value when parental status is not specified in this version. This enum is a place holder for default value and does not represent a real parental status option.", +"The audience is a parent.", +"The audience is not a parent.", +"The parental status of the audience is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Partner": { +"description": "A single partner in Display & Video 360 (DV360).", +"id": "Partner", +"properties": { +"adServerConfig": { +"$ref": "PartnerAdServerConfig", +"description": "Ad server related settings of the partner." +}, +"dataAccessConfig": { +"$ref": "PartnerDataAccessConfig", +"description": "Settings that control how partner data may be accessed." +}, +"displayName": { +"description": "The display name of the partner. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Output only. The status of the partner.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"readOnly": true, +"type": "string" +}, +"exchangeConfig": { +"$ref": "ExchangeConfig", +"description": "Settings that control which exchanges are enabled for the partner." +}, +"generalConfig": { +"$ref": "PartnerGeneralConfig", +"description": "General settings of the partner." +}, +"name": { +"description": "Output only. The resource name of the partner.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "Output only. The unique ID of the partner. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the partner was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PartnerAdServerConfig": { +"description": "Ad server related settings of a partner.", +"id": "PartnerAdServerConfig", +"properties": { +"measurementConfig": { +"$ref": "MeasurementConfig", +"description": "Measurement settings of a partner." +} +}, +"type": "object" +}, +"PartnerCost": { +"description": "Settings that control a partner cost. A partner cost is any type of expense involved in running a campaign, other than the costs of purchasing impressions (which is called the media cost) and using third-party audience segment data (data fee). Some examples of partner costs include the fees for using DV360, a third-party ad server, or a third-party ad serving verification service.", +"id": "PartnerCost", +"properties": { +"costType": { +"description": "Required. The type of the partner cost.", +"enum": [ +"PARTNER_COST_TYPE_UNSPECIFIED", +"PARTNER_COST_TYPE_ADLOOX", +"PARTNER_COST_TYPE_ADLOOX_PREBID", +"PARTNER_COST_TYPE_ADSAFE", +"PARTNER_COST_TYPE_ADXPOSE", +"PARTNER_COST_TYPE_AGGREGATE_KNOWLEDGE", +"PARTNER_COST_TYPE_AGENCY_TRADING_DESK", +"PARTNER_COST_TYPE_DV360_FEE", +"PARTNER_COST_TYPE_COMSCORE_VCE", +"PARTNER_COST_TYPE_DATA_MANAGEMENT_PLATFORM", +"PARTNER_COST_TYPE_DEFAULT", +"PARTNER_COST_TYPE_DOUBLE_VERIFY", +"PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID", +"PARTNER_COST_TYPE_EVIDON", +"PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO", +"PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_PREBID", +"PARTNER_COST_TYPE_MEDIA_COST_DATA", +"PARTNER_COST_TYPE_MOAT_VIDEO", +"PARTNER_COST_TYPE_NIELSEN_DAR", +"PARTNER_COST_TYPE_SHOP_LOCAL", +"PARTNER_COST_TYPE_TERACENT", +"PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER", +"PARTNER_COST_TYPE_TRUST_METRICS", +"PARTNER_COST_TYPE_VIZU", +"PARTNER_COST_TYPE_ADLINGO_FEE", +"PARTNER_COST_TYPE_CUSTOM_FEE_1", +"PARTNER_COST_TYPE_CUSTOM_FEE_2", +"PARTNER_COST_TYPE_CUSTOM_FEE_3", +"PARTNER_COST_TYPE_CUSTOM_FEE_4", +"PARTNER_COST_TYPE_CUSTOM_FEE_5", +"PARTNER_COST_TYPE_SCIBIDS_FEE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The cost is charged for using Adloox. Billed by the partner.", +"The cost is charged for using Adloox Pre-Bid. Billed through DV360.", +"The cost is charged for using AdSafe. Billed by the partner.", +"The cost is charged for using AdExpose. Billed by the partner.", +"The cost is charged for using Aggregate Knowledge. Billed by the partner.", +"The cost is charged for using an Agency Trading Desk. Billed by the partner.", +"The cost is charged for using DV360. Billed through DV360.", +"The cost is charged for using comScore vCE. Billed through DV360.", +"The cost is charged for using a Data Management Platform. Billed by the partner.", +"The default cost type. Billed by the partner.", +"The cost is charged for using DoubleVerify. Billed by the partner.", +"The cost is charged for using DoubleVerify Pre-Bid. Billed through DV360.", +"The cost is charged for using Evidon. Billed by the partner.", +"The cost is charged for using Integral Ad Science Video. Billed by the partner.", +"The cost is charged for using Integral Ad Science Pre-Bid. Billed through DV360.", +"The cost is charged for using media cost data. Billed by the partner.", +"The cost is charged for using MOAT Video. Billed by the partner.", +"The cost is charged for using Nielsen Digital Ad Ratings. Billed through DV360.", +"The cost is charged for using ShopLocal. Billed by the partner.", +"The cost is charged for using Teracent. Billed by the partner.", +"The cost is charged for using a third-party ad server. Billed by the partner.", +"The cost is charged for using TrustMetrics. Billed by the partner.", +"The cost is charged for using Vizu. Billed by the partner.", +"The cost is charged for using AdLingo. Billed through DV360.", +"The cost is charged as custom fee 1. Billed by the partner.", +"The cost is charged as custom fee 2. Billed by the partner.", +"The cost is charged as custom fee 3. Billed by the partner.", +"The cost is charged as custom fee 4. Billed by the partner.", +"The cost is charged as custom fee 5. Billed by the partner.", +"The cost is charged for using Scibids. Billed through DV360. This type is currently only available to certain customers. Other customers attempting to use this type will receive an error." +], +"type": "string" +}, +"feeAmount": { +"description": "The CPM fee amount in micros of advertiser's currency. Applicable when the fee_type is `PARTNER_FEE_TYPE_CPM_FEE`. Must be greater than or equal to 0. For example, for 1.5 standard unit of the advertiser's currency, set this field to 1500000.", +"format": "int64", +"type": "string" +}, +"feePercentageMillis": { +"description": "The media fee percentage in millis (1/1000 of a percent). Applicable when the fee_type is `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0. For example: 100 represents 0.1%.", +"format": "int64", +"type": "string" +}, +"feeType": { +"description": "Required. The fee type for this partner cost.", +"enum": [ +"PARTNER_COST_FEE_TYPE_UNSPECIFIED", +"PARTNER_COST_FEE_TYPE_CPM_FEE", +"PARTNER_COST_FEE_TYPE_MEDIA_FEE" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"The partner cost is a fixed CPM fee. Not applicable when the partner cost cost_type is one of: * `PARTNER_COST_TYPE_MEDIA_COST_DATA` * `PARTNER_COST_TYPE_DV360_FEE`.", +"The partner cost is a percentage surcharge based on the media cost. Not applicable when the partner cost_type is one of: * `PARTNER_COST_TYPE_SHOP_LOCAL` * `PARTNER_COST_TYPE_TRUST_METRICS` * `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO` * `PARTNER_COST_TYPE_MOAT_VIDEO`." +], +"type": "string" +}, +"invoiceType": { +"description": "The invoice type for this partner cost. * Required when cost_type is one of: - `PARTNER_COST_TYPE_ADLOOX` - `PARTNER_COST_TYPE_DOUBLE_VERIFY` - `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`. * Output only for other types.", +"enum": [ +"PARTNER_COST_INVOICE_TYPE_UNSPECIFIED", +"PARTNER_COST_INVOICE_TYPE_DV360", +"PARTNER_COST_INVOICE_TYPE_PARTNER" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Partner cost is billed through DV360.", +"Partner cost is billed by the partner." +], +"type": "string" +} +}, +"type": "object" +}, +"PartnerDataAccessConfig": { +"description": "Settings that control how partner related data may be accessed.", +"id": "PartnerDataAccessConfig", +"properties": { +"sdfConfig": { +"$ref": "SdfConfig", +"description": "Structured Data Files (SDF) settings for the partner. The SDF configuration for the partner." +} +}, +"type": "object" +}, +"PartnerGeneralConfig": { +"description": "General settings of a partner.", +"id": "PartnerGeneralConfig", +"properties": { +"currencyCode": { +"description": "Immutable. Partner's currency in ISO 4217 format.", +"type": "string" +}, +"timeZone": { +"description": "Immutable. The standard TZ database name of the partner's time zone. For example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones", +"type": "string" +} +}, +"type": "object" +}, +"PartnerRevenueModel": { +"description": "Settings that control how partner revenue is calculated.", +"id": "PartnerRevenueModel", +"properties": { +"markupAmount": { +"description": "Required. The markup amount of the partner revenue model. Must be greater than or equal to 0. * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field represents the CPM markup in micros of advertiser's currency. For example, 1500000 represents 1.5 standard units of the currency. * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field represents the media cost percent markup in millis. For example, 100 represents 0.1% (decimal 0.001). * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this field represents the total media cost percent markup in millis. For example, 100 represents 0.1% (decimal 0.001).", +"format": "int64", +"type": "string" +}, +"markupType": { +"description": "Required. The markup type of the partner revenue model.", +"enum": [ +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_UNSPECIFIED", +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM", +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP", +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Calculate the partner revenue based on a fixed CPM.", +"Calculate the partner revenue based on a percentage surcharge of its media cost.", +"Calculate the partner revenue based on a percentage surcharge of its total media cost, which includes all partner costs and data costs." +], +"type": "string" +} +}, +"type": "object" +}, +"PerformanceGoal": { +"description": "Settings that control the performance goal of a campaign.", +"id": "PerformanceGoal", +"properties": { +"performanceGoalAmountMicros": { +"description": "The goal amount, in micros of the advertiser's currency. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_VCPM` For example 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"performanceGoalPercentageMicros": { +"description": "The decimal representation of the goal percentage in micros. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_CLICK_CVR` * `PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR` * `PERFORMANCE_GOAL_TYPE_VTR` * `PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE` * `PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE` For example, 70000 represents 7% (decimal 0.07).", +"format": "int64", +"type": "string" +}, +"performanceGoalString": { +"description": "A key performance indicator (KPI) string, which can be empty. Must be UTF-8 encoded with a length of no more than 100 characters. Applicable when performance_goal_type is set to `PERFORMANCE_GOAL_TYPE_OTHER`.", +"type": "string" +}, +"performanceGoalType": { +"description": "Required. The type of the performance goal.", +"enum": [ +"PERFORMANCE_GOAL_TYPE_UNSPECIFIED", +"PERFORMANCE_GOAL_TYPE_CPM", +"PERFORMANCE_GOAL_TYPE_CPC", +"PERFORMANCE_GOAL_TYPE_CPA", +"PERFORMANCE_GOAL_TYPE_CTR", +"PERFORMANCE_GOAL_TYPE_VIEWABILITY", +"PERFORMANCE_GOAL_TYPE_CPIAVC", +"PERFORMANCE_GOAL_TYPE_CPE", +"PERFORMANCE_GOAL_TYPE_CLICK_CVR", +"PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR", +"PERFORMANCE_GOAL_TYPE_VCPM", +"PERFORMANCE_GOAL_TYPE_VTR", +"PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE", +"PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE", +"PERFORMANCE_GOAL_TYPE_OTHER" +], +"enumDescriptions": [ +"Performance goal type is not specified or is unknown in this version.", +"The performance goal is set in CPM (cost per mille).", +"The performance goal is set in CPC (cost per click).", +"The performance goal is set in CPA (cost per action).", +"The performance goal is set in CTR (click-through rate) percentage.", +"The performance goal is set in Viewability percentage.", +"The performance goal is set as CPIAVC (cost per impression audible and visible at completion).", +"The performance goal is set in CPE (cost per engagement).", +"The performance goal is set in click conversion rate (conversions per click) percentage.", +"The performance goal is set in impression conversion rate (conversions per impression) percentage.", +"The performance goal is set in VCPM (cost per thousand viewable impressions).", +"The performance goal is set in YouTube view rate (YouTube views per impression) percentage.", +"The performance goal is set in audio completion rate (complete audio listens per impression) percentage.", +"The performance goal is set in video completion rate (complete video views per impression) percentage.", +"The performance goal is set to Other." +], +"type": "string" +} +}, +"type": "object" +}, +"PerformanceGoalBidStrategy": { +"description": "A strategy that automatically adjusts the bid to meet or beat a specified performance goal.", +"id": "PerformanceGoalBidStrategy", +"properties": { +"customBiddingAlgorithmId": { +"description": "The ID of the Custom Bidding Algorithm used by this strategy. Only applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", +"format": "int64", +"type": "string" +}, +"maxAverageCpmBidAmountMicros": { +"description": "The maximum average CPM that may be bid, in micros of the advertiser's currency. Must be greater than or equal to a billable unit of the given currency. Not applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. For example, 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"performanceGoalAmountMicros": { +"description": "Required. The performance goal the bidding strategy will attempt to meet or beat, in micros of the advertiser's currency or in micro of the ROAS (Return On Advertising Spend) value which is also based on advertiser's currency. Must be greater than or equal to a billable unit of the given currency and smaller or equal to upper bounds. Each performance_goal_type has its upper bound: * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`, upper bound is 10000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`, upper bound is 1000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is 1000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`, upper bound is 1000.00 and lower bound is 0.01. Example: If set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price will be based on the probability that each available impression will be viewable. For example, if viewable CPM target is $2 and an impression is 40% likely to be viewable, the bid price will be $0.80 CPM (40% of $2). For example, 1500000 represents 1.5 standard units of the currency or ROAS value.", +"format": "int64", +"type": "string" +}, +"performanceGoalType": { +"description": "Required. The type of the performance goal that the bidding strategy will try to meet or beat. For line item level usage, the value must be one of: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", +"enum": [ +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Cost per action.", +"Cost per click.", +"Viewable CPM.", +"Custom bidding algorithm.", +"Completed inview and audible views.", +"Inview time over 10 secs views.", +"Viewable impressions." +], +"type": "string" +} +}, +"type": "object" +}, +"PoiAssignedTargetingOptionDetails": { +"description": "Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`.", +"id": "PoiAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of a POI, e.g. \"Times Square\", \"Space Needle\", followed by its full address if available.", +"readOnly": true, +"type": "string" +}, +"latitude": { +"description": "Output only. Latitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"longitude": { +"description": "Output only. Longitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"proximityRadiusAmount": { +"description": "Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`.", +"format": "double", +"type": "number" +}, +"proximityRadiusUnit": { +"description": "Required. The unit of distance by which the targeting radius is measured.", +"enum": [ +"DISTANCE_UNIT_UNSPECIFIED", +"DISTANCE_UNIT_MILES", +"DISTANCE_UNIT_KILOMETERS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Miles.", +"Kilometers." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using `targetingTypes.targetingOptions.search`. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\". **Upon** **creation, this field value will be updated to append a semicolon and** **alphanumerical hash value if only latitude/longitude coordinates are** **provided.**", +"type": "string" +} +}, +"type": "object" +}, +"PoiSearchTerms": { +"description": "Search terms for POI targeting options.", +"id": "PoiSearchTerms", +"properties": { +"poiQuery": { +"description": "The search query for the desired POI name, street address, or coordinate of the desired POI. The query can be a prefix, e.g. \"Times squar\", \"40.7505045,-73.99562\", \"315 W 44th St\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"PoiTargetingOptionDetails": { +"description": "Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`.", +"id": "PoiTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of a POI(e.g. \"Times Square\", \"Space Needle\"), followed by its full address if available.", +"readOnly": true, +"type": "string" +}, +"latitude": { +"description": "Output only. Latitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"longitude": { +"description": "Output only. Longitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"PrismaConfig": { +"description": "Settings specific to the Mediaocean Prisma tool.", +"id": "PrismaConfig", +"properties": { +"prismaCpeCode": { +"$ref": "PrismaCpeCode", +"description": "Required. Relevant client, product, and estimate codes from the Mediaocean Prisma tool." +}, +"prismaType": { +"description": "Required. The Prisma type.", +"enum": [ +"PRISMA_TYPE_UNSPECIFIED", +"PRISMA_TYPE_DISPLAY", +"PRISMA_TYPE_SEARCH", +"PRISMA_TYPE_VIDEO", +"PRISMA_TYPE_AUDIO", +"PRISMA_TYPE_SOCIAL", +"PRISMA_TYPE_FEE" +], +"enumDescriptions": [ +"Type is not specified or unknown in this version.", +"Display type.", +"Search type.", +"Video type.", +"Audio type.", +"Social type.", +"Fee type." +], +"type": "string" +}, +"supplier": { +"description": "Required. The entity allocated this budget (DSP, site, etc.).", +"type": "string" +} +}, +"type": "object" +}, +"PrismaCpeCode": { +"description": "Google Payments Center supports searching and filtering on the component fields of this code.", +"id": "PrismaCpeCode", +"properties": { +"prismaClientCode": { +"description": "The Prisma client code.", +"type": "string" +}, +"prismaEstimateCode": { +"description": "The Prisma estimate code.", +"type": "string" +}, +"prismaProductCode": { +"description": "The Prisma product code.", +"type": "string" +} +}, +"type": "object" +}, +"ProximityLocationListAssignedTargetingOptionDetails": { +"description": "Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.", +"id": "ProximityLocationListAssignedTargetingOptionDetails", +"properties": { +"proximityLocationListId": { +"description": "Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`.", +"format": "int64", +"type": "string" +}, +"proximityRadiusRange": { +"description": "Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource.", +"enum": [ +"PROXIMITY_RADIUS_RANGE_UNSPECIFIED", +"PROXIMITY_RADIUS_RANGE_SMALL", +"PROXIMITY_RADIUS_RANGE_MEDIUM", +"PROXIMITY_RADIUS_RANGE_LARGE" +], +"enumDescriptions": [ +"The targeted radius range is not specified or is unknown. Default value when radius range is not specified in this version. This enum is a placeholder for default value and does not represent a real radius range option.", +"The targeted radius range is small.", +"The targeted radius range is medium.", +"The targeted radius range is large." +], +"type": "string" +} +}, +"type": "object" +}, +"PublisherReviewStatus": { +"description": "Publisher review status for the creative.", +"id": "PublisherReviewStatus", +"properties": { +"publisherName": { +"description": "The publisher reviewing the creative.", +"type": "string" +}, +"status": { +"description": "Status of the publisher review.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +} +}, +"type": "object" +}, +"RateDetails": { +"description": "The rate related settings of the inventory source.", +"id": "RateDetails", +"properties": { +"inventorySourceRateType": { +"description": "The rate type. Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and `INVENTORY_SOURCE_RATE_TYPE_CPD`.", +"enum": [ +"INVENTORY_SOURCE_RATE_TYPE_UNSPECIFIED", +"INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED", +"INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR", +"INVENTORY_SOURCE_RATE_TYPE_CPD", +"INVENTORY_SOURCE_RATE_TYPE_FLAT" +], +"enumDescriptions": [ +"The rate type is not specified or is unknown in this version.", +"The rate type is CPM (Fixed).", +"The rate type is CPM (Floor).", +"The rate type is Cost per Day.", +"The rate type is Flat." +], +"type": "string" +}, +"minimumSpend": { +"$ref": "Money", +"description": "Output only. The amount that the buyer has committed to spending on the inventory source up front. Only applicable for guaranteed inventory sources.", +"readOnly": true +}, +"rate": { +"$ref": "Money", +"description": "The rate for the inventory source." +}, +"unitsPurchased": { +"description": "Required for guaranteed inventory sources. The number of impressions guaranteed by the seller.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"RegionalLocationListAssignedTargetingOptionDetails": { +"description": "Targeting details for regional location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.", +"id": "RegionalLocationListAssignedTargetingOptionDetails", +"properties": { +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"regionalLocationListId": { +"description": "Required. ID of the regional location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_REGIONAL`.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceNegativeKeywordsRequest": { +"description": "Request message for NegativeKeywordService.ReplaceNegativeKeywords.", +"id": "ReplaceNegativeKeywordsRequest", +"properties": { +"newNegativeKeywords": { +"description": "The negative keywords that will replace the existing keywords in the negative keyword list, specified as a list of NegativeKeywords.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReplaceNegativeKeywordsResponse": { +"description": "Response message for NegativeKeywordService.ReplaceNegativeKeywords.", +"id": "ReplaceNegativeKeywordsResponse", +"properties": { +"negativeKeywords": { +"description": "The full list of negative keywords now present in the negative keyword list.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReplaceSitesRequest": { +"description": "Request message for SiteService.ReplaceSites.", +"id": "ReplaceSitesRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"type": "string" +}, +"newSites": { +"description": "The sites that will replace the existing sites assigned to the channel, specified as a list of Sites.", +"items": { +"$ref": "Site" +}, +"type": "array" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceSitesResponse": { +"description": "Response message for SiteService.ReplaceSites.", +"id": "ReplaceSitesResponse", +"properties": { +"sites": { +"description": "The list of sites in the channel after replacing.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReviewStatusInfo": { +"description": "Review statuses for the creative.", +"id": "ReviewStatusInfo", +"properties": { +"approvalStatus": { +"description": "Represents the basic approval needed for a creative to begin serving. Summary of creative_and_landing_page_review_status and content_and_policy_review_status.", +"enum": [ +"APPROVAL_STATUS_UNSPECIFIED", +"APPROVAL_STATUS_PENDING_NOT_SERVABLE", +"APPROVAL_STATUS_PENDING_SERVABLE", +"APPROVAL_STATUS_APPROVED_SERVABLE", +"APPROVAL_STATUS_REJECTED_NOT_SERVABLE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is still under review and not servable.", +"The creative has passed creative & landing page review and is servable, but is awaiting additional content & policy review.", +"Both creative & landing page review and content & policy review are approved. The creative is servable.", +"There is an issue with the creative that must be fixed before it can serve." +], +"type": "string" +}, +"contentAndPolicyReviewStatus": { +"description": "Content and policy review status for the creative.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +}, +"creativeAndLandingPageReviewStatus": { +"description": "Creative and landing page review status for the creative.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +}, +"exchangeReviewStatuses": { +"description": "Exchange review statuses for the creative.", +"items": { +"$ref": "ExchangeReviewStatus" +}, +"type": "array" +}, +"publisherReviewStatuses": { +"description": "Publisher review statuses for the creative.", +"items": { +"$ref": "PublisherReviewStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScriptError": { +"description": "An error message for a custom bidding script.", +"id": "ScriptError", +"properties": { +"column": { +"description": "The column number in the script where the error was thrown.", +"format": "int64", +"type": "string" +}, +"errorCode": { +"description": "The type of error.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"SYNTAX_ERROR", +"DEPRECATED_SYNTAX", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"The script error is not specified or is unknown in this version.", +"The script has a syntax error.", +"The script uses deprecated syntax.", +"Internal errors were thrown while processing the script." +], +"type": "string" +}, +"errorMessage": { +"description": "The detailed error message.", +"type": "string" +}, +"line": { +"description": "The line number in the script where the error was thrown.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SdfConfig": { +"description": "Structured Data File (SDF) related settings.", +"id": "SdfConfig", +"properties": { +"adminEmail": { +"description": "An administrator email address to which the SDF processing status reports will be sent.", +"type": "string" +}, +"version": { +"description": "Required. The version of SDF being used.", +"enum": [ +"SDF_VERSION_UNSPECIFIED", +"SDF_VERSION_3_1", +"SDF_VERSION_4", +"SDF_VERSION_4_1", +"SDF_VERSION_4_2", +"SDF_VERSION_5", +"SDF_VERSION_5_1", +"SDF_VERSION_5_2", +"SDF_VERSION_5_3", +"SDF_VERSION_5_4", +"SDF_VERSION_5_5", +"SDF_VERSION_6", +"SDF_VERSION_7" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"SDF version value is not specified or is unknown in this version.", +"SDF version 3.1", +"SDF version 4", +"SDF version 4.1", +"SDF version 4.2", +"SDF version 5.", +"SDF version 5.1", +"SDF version 5.2", +"SDF version 5.3", +"SDF version 5.4", +"SDF version 5.5", +"SDF version 6", +"SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version. Currently in beta. Only available for use by a subset of users." +], +"type": "string" +} +}, +"type": "object" +}, +"SdfDownloadTask": { +"description": "Type for the response returned by [SdfDownloadTaskService.CreateSdfDownloadTask].", +"id": "SdfDownloadTask", +"properties": { +"resourceName": { +"description": "A resource name to be used in media.download to Download the prepared files. Resource names have the format `download/sdfdownloadtasks/media/{media_id}`. `media_id` will be made available by the long running operation service once the task status is done.", +"type": "string" +} +}, +"type": "object" +}, +"SdfDownloadTaskMetadata": { +"description": "Type for the metadata returned by [SdfDownloadTaskService.CreateSdfDownloadTask].", +"id": "SdfDownloadTaskMetadata", +"properties": { +"createTime": { +"description": "The time when the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time when execution was completed.", +"format": "google-datetime", +"type": "string" +}, +"version": { +"description": "The SDF version used to execute this download task.", +"enum": [ +"SDF_VERSION_UNSPECIFIED", +"SDF_VERSION_3_1", +"SDF_VERSION_4", +"SDF_VERSION_4_1", +"SDF_VERSION_4_2", +"SDF_VERSION_5", +"SDF_VERSION_5_1", +"SDF_VERSION_5_2", +"SDF_VERSION_5_3", +"SDF_VERSION_5_4", +"SDF_VERSION_5_5", +"SDF_VERSION_6", +"SDF_VERSION_7" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"SDF version value is not specified or is unknown in this version.", +"SDF version 3.1", +"SDF version 4", +"SDF version 4.1", +"SDF version 4.2", +"SDF version 5.", +"SDF version 5.1", +"SDF version 5.2", +"SDF version 5.3", +"SDF version 5.4", +"SDF version 5.5", +"SDF version 6", +"SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version. Currently in beta. Only available for use by a subset of users." +], +"type": "string" +} +}, +"type": "object" +}, +"SearchTargetingOptionsRequest": { +"description": "Request message for SearchTargetingOptions.", +"id": "SearchTargetingOptionsRequest", +"properties": { +"advertiserId": { +"description": "Required. The Advertiser this request is being made in the context of.", +"format": "int64", +"type": "string" +}, +"businessChainSearchTerms": { +"$ref": "BusinessChainSearchTerms", +"description": "Search terms for Business Chain targeting options. Can only be used when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." +}, +"geoRegionSearchTerms": { +"$ref": "GeoRegionSearchTerms", +"description": "Search terms for geo region targeting options. Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`." +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `SearchTargetingOptions` method. If not specified, the first page of results will be returned.", +"type": "string" +}, +"poiSearchTerms": { +"$ref": "PoiSearchTerms", +"description": "Search terms for POI targeting options. Can only be used when targeting_type is `TARGETING_TYPE_POI`." +} +}, +"type": "object" +}, +"SearchTargetingOptionsResponse": { +"description": "Response message for SearchTargetingOptions.", +"id": "SearchTargetingOptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `SearchTargetingOptions` method to retrieve the next page of results.", +"type": "string" +}, +"targetingOptions": { +"description": "The list of targeting options that match the search criteria. This list will be absent if empty.", +"items": { +"$ref": "TargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"SensitiveCategoryAssignedTargetingOptionDetails": { +"description": "Targeting details for sensitive category. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.", +"id": "SensitiveCategoryAssignedTargetingOptionDetails", +"properties": { +"excludedTargetingOptionId": { +"description": "Required. ID of the sensitive category to be EXCLUDED.", +"type": "string" +}, +"sensitiveCategory": { +"description": "Output only. An enum for the DV360 Sensitive category content classifier.", +"enum": [ +"SENSITIVE_CATEGORY_UNSPECIFIED", +"SENSITIVE_CATEGORY_ADULT", +"SENSITIVE_CATEGORY_DEROGATORY", +"SENSITIVE_CATEGORY_DOWNLOADS_SHARING", +"SENSITIVE_CATEGORY_WEAPONS", +"SENSITIVE_CATEGORY_GAMBLING", +"SENSITIVE_CATEGORY_VIOLENCE", +"SENSITIVE_CATEGORY_SUGGESTIVE", +"SENSITIVE_CATEGORY_PROFANITY", +"SENSITIVE_CATEGORY_ALCOHOL", +"SENSITIVE_CATEGORY_DRUGS", +"SENSITIVE_CATEGORY_TOBACCO", +"SENSITIVE_CATEGORY_POLITICS", +"SENSITIVE_CATEGORY_RELIGION", +"SENSITIVE_CATEGORY_TRAGEDY", +"SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS", +"SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES", +"SENSITIVE_CATEGORY_SHOCKING" +], +"enumDescriptions": [ +"This enum is only a placeholder and doesn't specify a DV360 sensitive category.", +"Adult or pornographic text, image, or video content.", +"Content that may be construed as biased against individuals, groups, or organizations based on criteria such as race, religion, disability, sex, age, veteran status, sexual orientation, gender identity, or political affiliation. May also indicate discussion of such content, for instance, in an academic or journalistic context.", +"Content related to audio, video, or software downloads.", +"Contains content related to personal weapons, including knives, guns, small firearms, and ammunition. Selecting either \"weapons\" or \"sensitive social issues\" will result in selecting both.", +"Contains content related to betting or wagering in a real-world or online setting.", +"Content which may be considered graphically violent, gory, gruesome, or shocking, such as street fighting videos, accident photos, descriptions of torture, etc.", +"Adult content, as well as suggestive content that's not explicitly pornographic. This category includes all pages categorized as adult.", +"Prominent use of words considered indecent, such as curse words and sexual slang. Pages with only very occasional usage, such as news sites that might include such words in a quotation, are not included.", +"Contains content related to alcoholic beverages, alcohol brands, recipes, etc.", +"Contains content related to the recreational use of legal or illegal drugs, as well as to drug paraphernalia or cultivation.", +"Contains content related to tobacco and tobacco accessories, including lighters, humidors, ashtrays, etc.", +"Political news and media, including discussions of social, governmental, and public policy.", +"Content related to religious thought or beliefs.", +"Content related to death, disasters, accidents, war, etc.", +"Content related to motor vehicle, aviation or other transportation accidents.", +"Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", +"Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SensitiveCategoryTargetingOptionDetails": { +"description": "Represents a targetable sensitive category. This will be populated in the sensitive_category_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.", +"id": "SensitiveCategoryTargetingOptionDetails", +"properties": { +"sensitiveCategory": { +"description": "Output only. An enum for the DV360 Sensitive category content classifier.", +"enum": [ +"SENSITIVE_CATEGORY_UNSPECIFIED", +"SENSITIVE_CATEGORY_ADULT", +"SENSITIVE_CATEGORY_DEROGATORY", +"SENSITIVE_CATEGORY_DOWNLOADS_SHARING", +"SENSITIVE_CATEGORY_WEAPONS", +"SENSITIVE_CATEGORY_GAMBLING", +"SENSITIVE_CATEGORY_VIOLENCE", +"SENSITIVE_CATEGORY_SUGGESTIVE", +"SENSITIVE_CATEGORY_PROFANITY", +"SENSITIVE_CATEGORY_ALCOHOL", +"SENSITIVE_CATEGORY_DRUGS", +"SENSITIVE_CATEGORY_TOBACCO", +"SENSITIVE_CATEGORY_POLITICS", +"SENSITIVE_CATEGORY_RELIGION", +"SENSITIVE_CATEGORY_TRAGEDY", +"SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS", +"SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES", +"SENSITIVE_CATEGORY_SHOCKING" +], +"enumDescriptions": [ +"This enum is only a placeholder and doesn't specify a DV360 sensitive category.", +"Adult or pornographic text, image, or video content.", +"Content that may be construed as biased against individuals, groups, or organizations based on criteria such as race, religion, disability, sex, age, veteran status, sexual orientation, gender identity, or political affiliation. May also indicate discussion of such content, for instance, in an academic or journalistic context.", +"Content related to audio, video, or software downloads.", +"Contains content related to personal weapons, including knives, guns, small firearms, and ammunition. Selecting either \"weapons\" or \"sensitive social issues\" will result in selecting both.", +"Contains content related to betting or wagering in a real-world or online setting.", +"Content which may be considered graphically violent, gory, gruesome, or shocking, such as street fighting videos, accident photos, descriptions of torture, etc.", +"Adult content, as well as suggestive content that's not explicitly pornographic. This category includes all pages categorized as adult.", +"Prominent use of words considered indecent, such as curse words and sexual slang. Pages with only very occasional usage, such as news sites that might include such words in a quotation, are not included.", +"Contains content related to alcoholic beverages, alcohol brands, recipes, etc.", +"Contains content related to the recreational use of legal or illegal drugs, as well as to drug paraphernalia or cultivation.", +"Contains content related to tobacco and tobacco accessories, including lighters, humidors, ashtrays, etc.", +"Political news and media, including discussions of social, governmental, and public policy.", +"Content related to religious thought or beliefs.", +"Content related to death, disasters, accidents, war, etc.", +"Content related to motor vehicle, aviation or other transportation accidents.", +"Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", +"Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Site": { +"description": "A single site. Sites are apps or websites belonging to a channel.", +"id": "Site", +"properties": { +"name": { +"description": "Output only. The resource name of the site.", +"readOnly": true, +"type": "string" +}, +"urlOrAppId": { +"description": "Required. The app ID or URL of the site. Must be UTF-8 encoded with a maximum length of 240 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SubExchangeAssignedTargetingOptionDetails": { +"description": "Details for assigned sub-exchange targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.", +"id": "SubExchangeAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`.", +"type": "string" +} +}, +"type": "object" +}, +"SubExchangeTargetingOptionDetails": { +"description": "Represents a targetable sub-exchange. This will be populated in the sub_exchange_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.", +"id": "SubExchangeTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the sub-exchange.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TargetingExpansionConfig": { +"description": "Settings that control the [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item.", +"id": "TargetingExpansionConfig", +"properties": { +"excludeFirstPartyAudience": { +"deprecated": true, +"description": "Whether to exclude first-party audiences from use in targeting expansion. This field was deprecated with the launch of [optimized targeting](//support.google.com/displayvideo/answer/12060859). This field will be set to `false`. If this field is set to `true` when deprecated, all positive first-party audience targeting assigned to this line item will be replaced with negative targeting of the same first-party audiences to ensure the continued exclusion of those audiences.", +"type": "boolean" +}, +"targetingExpansionLevel": { +"description": "Required. Whether optimized targeting is turned on. This field supports the following values: * `NO_EXPANSION`: optimized targeting is turned off * `LEAST_EXPANSION`: optimized targeting is turned on If this field is set to any other value, it will automatically be set to `LEAST_EXPANSION`. `NO_EXPANSION` will be the default value for the field and will be automatically assigned if you do not set the field.", +"enum": [ +"TARGETING_EXPANSION_LEVEL_UNSPECIFIED", +"NO_EXPANSION", +"LEAST_EXPANSION", +"SOME_EXPANSION", +"BALANCED_EXPANSION", +"MORE_EXPANSION", +"MOST_EXPANSION" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +true, +true +], +"enumDescriptions": [ +"The optimized targeting setting is not specified or is unknown in this version.", +"Optimized targeting is off.", +"Optimized targeting is on.", +"If used, will automatically be set to `LEAST_EXPANSION`.", +"If used, will automatically be set to `LEAST_EXPANSION`.", +"If used, will automatically be set to `LEAST_EXPANSION`.", +"If used, will automatically be set to `LEAST_EXPANSION`." +], +"type": "string" +} +}, +"type": "object" +}, +"TargetingOption": { +"description": "Represents a single targeting option, which is a targetable concept in DV360.", +"id": "TargetingOption", +"properties": { +"ageRangeDetails": { +"$ref": "AgeRangeTargetingOptionDetails", +"description": "Age range details." +}, +"appCategoryDetails": { +"$ref": "AppCategoryTargetingOptionDetails", +"description": "App category details." +}, +"audioContentTypeDetails": { +"$ref": "AudioContentTypeTargetingOptionDetails", +"description": "Audio content type details." +}, +"authorizedSellerStatusDetails": { +"$ref": "AuthorizedSellerStatusTargetingOptionDetails", +"description": "Authorized seller status resource details." +}, +"browserDetails": { +"$ref": "BrowserTargetingOptionDetails", +"description": "Browser details." +}, +"businessChainDetails": { +"$ref": "BusinessChainTargetingOptionDetails", +"description": "Business chain resource details." +}, +"carrierAndIspDetails": { +"$ref": "CarrierAndIspTargetingOptionDetails", +"description": "Carrier and ISP details." +}, +"categoryDetails": { +"$ref": "CategoryTargetingOptionDetails", +"description": "Category resource details." +}, +"contentDurationDetails": { +"$ref": "ContentDurationTargetingOptionDetails", +"description": "Content duration resource details." +}, +"contentGenreDetails": { +"$ref": "ContentGenreTargetingOptionDetails", +"description": "Content genre resource details." +}, +"contentInstreamPositionDetails": { +"$ref": "ContentInstreamPositionTargetingOptionDetails", +"description": "Content instream position details." +}, +"contentOutstreamPositionDetails": { +"$ref": "ContentOutstreamPositionTargetingOptionDetails", +"description": "Content outstream position details." +}, +"contentStreamTypeDetails": { +"$ref": "ContentStreamTypeTargetingOptionDetails", +"description": "Content stream type resource details." +}, +"deviceMakeModelDetails": { +"$ref": "DeviceMakeModelTargetingOptionDetails", +"description": "Device make and model resource details." +}, +"deviceTypeDetails": { +"$ref": "DeviceTypeTargetingOptionDetails", +"description": "Device type details." +}, +"digitalContentLabelDetails": { +"$ref": "DigitalContentLabelTargetingOptionDetails", +"description": "Digital content label details." +}, +"environmentDetails": { +"$ref": "EnvironmentTargetingOptionDetails", +"description": "Environment details." +}, +"exchangeDetails": { +"$ref": "ExchangeTargetingOptionDetails", +"description": "Exchange details." +}, +"genderDetails": { +"$ref": "GenderTargetingOptionDetails", +"description": "Gender details." +}, +"geoRegionDetails": { +"$ref": "GeoRegionTargetingOptionDetails", +"description": "Geographic region resource details." +}, +"householdIncomeDetails": { +"$ref": "HouseholdIncomeTargetingOptionDetails", +"description": "Household income details." +}, +"languageDetails": { +"$ref": "LanguageTargetingOptionDetails", +"description": "Language resource details." +}, +"name": { +"description": "Output only. The resource name for this targeting option.", +"readOnly": true, +"type": "string" +}, +"nativeContentPositionDetails": { +"$ref": "NativeContentPositionTargetingOptionDetails", +"description": "Native content position details." +}, +"omidDetails": { +"$ref": "OmidTargetingOptionDetails", +"description": "Open Measurement enabled inventory details." +}, +"onScreenPositionDetails": { +"$ref": "OnScreenPositionTargetingOptionDetails", +"description": "On screen position details." +}, +"operatingSystemDetails": { +"$ref": "OperatingSystemTargetingOptionDetails", +"description": "Operating system resources details." +}, +"parentalStatusDetails": { +"$ref": "ParentalStatusTargetingOptionDetails", +"description": "Parental status details." +}, +"poiDetails": { +"$ref": "PoiTargetingOptionDetails", +"description": "POI resource details." +}, +"sensitiveCategoryDetails": { +"$ref": "SensitiveCategoryTargetingOptionDetails", +"description": "Sensitive Category details." +}, +"subExchangeDetails": { +"$ref": "SubExchangeTargetingOptionDetails", +"description": "Sub-exchange details." +}, +"targetingOptionId": { +"description": "Output only. A unique identifier for this targeting option. The tuple {`targeting_type`, `targeting_option_id`} will be unique.", +"readOnly": true, +"type": "string" +}, +"targetingType": { +"description": "Output only. The type of this targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre." +], +"readOnly": true, +"type": "string" +}, +"userRewardedContentDetails": { +"$ref": "UserRewardedContentTargetingOptionDetails", +"description": "User rewarded content details." +}, +"videoPlayerSizeDetails": { +"$ref": "VideoPlayerSizeTargetingOptionDetails", +"description": "Video player size details." +}, +"viewabilityDetails": { +"$ref": "ViewabilityTargetingOptionDetails", +"description": "Viewability resource details." +} +}, +"type": "object" +}, +"ThirdPartyOnlyConfig": { +"description": "Settings for advertisers that use third-party ad servers only.", +"id": "ThirdPartyOnlyConfig", +"properties": { +"pixelOrderIdReportingEnabled": { +"description": "Whether or not order ID reporting for pixels is enabled. This value cannot be changed once set to `true`.", +"type": "boolean" +} +}, +"type": "object" +}, +"ThirdPartyUrl": { +"description": "Tracking URLs from third parties to track interactions with an audio or a video creative.", +"id": "ThirdPartyUrl", +"properties": { +"type": { +"description": "The type of interaction needs to be tracked by the tracking URL", +"enum": [ +"THIRD_PARTY_URL_TYPE_UNSPECIFIED", +"THIRD_PARTY_URL_TYPE_IMPRESSION", +"THIRD_PARTY_URL_TYPE_CLICK_TRACKING", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_START", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FIRST_QUARTILE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MIDPOINT", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_THIRD_QUARTILE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_COMPLETE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MUTE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PAUSE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_REWIND", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FULLSCREEN", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_STOP", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_CUSTOM", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_SKIP", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PROGRESS" +], +"enumDescriptions": [ +"The type of third-party URL is unspecified or is unknown in this version.", +"Used to count impressions of the creative after the audio or video buffering is complete.", +"Used to track user clicks on the audio or video.", +"Used to track the number of times a user starts the audio or video.", +"Used to track the number of times the audio or video plays to 25% of its length.", +"Used to track the number of times the audio or video plays to 50% of its length.", +"Used to track the number of times the audio or video plays to 75% of its length.", +"Used to track the number of times the audio or video plays to the end.", +"Used to track the number of times a user mutes the audio or video.", +"Used to track the number of times a user pauses the audio or video.", +"Used to track the number of times a user replays the audio or video.", +"Used to track the number of times a user expands the player to full-screen size.", +"Used to track the number of times a user stops the audio or video.", +"Used to track the number of times a user performs a custom click, such as clicking on a video hot spot.", +"Used to track the number of times the audio or video was skipped.", +"Used to track the number of times the audio or video plays to an offset determined by the progress_offset." +], +"type": "string" +}, +"url": { +"description": "Tracking URL used to track the interaction. Provide a URL with optional path or query string, beginning with `https:`. For example, https://www.example.com/path", +"type": "string" +} +}, +"type": "object" +}, +"ThirdPartyVerifierAssignedTargetingOptionDetails": { +"description": "Assigned third party verifier targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.", +"id": "ThirdPartyVerifierAssignedTargetingOptionDetails", +"properties": { +"adloox": { +"$ref": "Adloox", +"description": "Third party brand verifier -- Adloox." +}, +"doubleVerify": { +"$ref": "DoubleVerify", +"description": "Third party brand verifier -- DoubleVerify." +}, +"integralAdScience": { +"$ref": "IntegralAdScience", +"description": "Third party brand verifier -- Integral Ad Science." +} +}, +"type": "object" +}, +"TimeRange": { +"description": "A time range.", +"id": "TimeRange", +"properties": { +"endTime": { +"description": "Required. The upper bound of a time range, inclusive.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Required. The lower bound of a time range, inclusive.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TimerEvent": { +"description": "Timer event of the creative.", +"id": "TimerEvent", +"properties": { +"name": { +"description": "Required. The name of the timer event.", +"type": "string" +}, +"reportingName": { +"description": "Required. The name used to identify this timer event in reports.", +"type": "string" +} +}, +"type": "object" +}, +"TrackingFloodlightActivityConfig": { +"description": "Settings that control the behavior of a single Floodlight activity config.", +"id": "TrackingFloodlightActivityConfig", +"properties": { +"floodlightActivityId": { +"description": "Required. The ID of the Floodlight activity.", +"format": "int64", +"type": "string" +}, +"postClickLookbackWindowDays": { +"description": "Required. The number of days after an ad has been clicked in which a conversion may be counted. Must be between 0 and 90 inclusive.", +"format": "int32", +"type": "integer" +}, +"postViewLookbackWindowDays": { +"description": "Required. The number of days after an ad has been viewed in which a conversion may be counted. Must be between 0 and 90 inclusive.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Transcode": { +"description": "Represents information about the transcoded audio or video file.", +"id": "Transcode", +"properties": { +"audioBitRateKbps": { +"description": "The bit rate for the audio stream of the transcoded video, or the bit rate for the transcoded audio, in kilobits per second.", +"format": "int64", +"type": "string" +}, +"audioSampleRateHz": { +"description": "The sample rate for the audio stream of the transcoded video, or the sample rate for the transcoded audio, in hertz.", +"format": "int64", +"type": "string" +}, +"bitRateKbps": { +"description": "The transcoding bit rate of the transcoded video, in kilobits per second.", +"format": "int64", +"type": "string" +}, +"dimensions": { +"$ref": "Dimensions", +"description": "The dimensions of the transcoded video." +}, +"fileSizeBytes": { +"description": "The size of the transcoded file, in bytes.", +"format": "int64", +"type": "string" +}, +"frameRate": { +"description": "The frame rate of the transcoded video, in frames per second.", +"format": "float", +"type": "number" +}, +"mimeType": { +"description": "The MIME type of the transcoded file.", +"type": "string" +}, +"name": { +"description": "The name of the transcoded file.", +"type": "string" +}, +"transcoded": { +"description": "Indicates if the transcoding was successful.", +"type": "boolean" +} +}, +"type": "object" +}, +"UniversalAdId": { +"description": "A creative identifier provided by a registry that is unique across all platforms. This is part of the VAST 4.0 standard.", +"id": "UniversalAdId", +"properties": { +"id": { +"description": "The unique creative identifier.", +"type": "string" +}, +"registry": { +"description": "The registry provides unique creative identifiers.", +"enum": [ +"UNIVERSAL_AD_REGISTRY_UNSPECIFIED", +"UNIVERSAL_AD_REGISTRY_OTHER", +"UNIVERSAL_AD_REGISTRY_AD_ID", +"UNIVERSAL_AD_REGISTRY_CLEARCAST", +"UNIVERSAL_AD_REGISTRY_DV360", +"UNIVERSAL_AD_REGISTRY_CM" +], +"enumDescriptions": [ +"The Universal Ad registry is unspecified or is unknown in this version.", +"Use a custom provider to provide the Universal Ad ID.", +"Use Ad-ID to provide the Universal Ad ID.", +"Use clearcast.co.uk to provide the Universal Ad ID.", +"Use Display & Video 360 to provide the Universal Ad ID.", +"Use Campaign Manager 360 to provide the Universal Ad ID." +], +"type": "string" +} +}, +"type": "object" +}, +"UrlAssignedTargetingOptionDetails": { +"description": "Details for assigned URL targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_URL`.", +"id": "UrlAssignedTargetingOptionDetails", +"properties": { +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"url": { +"description": "Required. The URL, for example `example.com`. DV360 supports two levels of subdirectory targeting, for example `www.example.com/one-subdirectory-level/second-level`, and five levels of subdomain targeting, for example `five.four.three.two.one.example.com`.", +"type": "string" +} +}, +"type": "object" +}, +"User": { +"description": "A single user in Display & Video 360.", +"id": "User", +"properties": { +"assignedUserRoles": { +"description": "The assigned user roles. Required in CreateUser. Output only in UpdateUser. Can only be updated through BulkEditAssignedUserRoles.", +"items": { +"$ref": "AssignedUserRole" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the user. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"email": { +"description": "Required. Immutable. The email address used to identify the user.", +"type": "string" +}, +"lastLoginTime": { +"description": "Output only. The timestamp when the user last logged in DV360 UI.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the user.", +"readOnly": true, +"type": "string" +}, +"userId": { +"description": "Output only. The unique ID of the user. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"UserRewardedContentAssignedTargetingOptionDetails": { +"description": "User rewarded content targeting option details. This will be populated in the user_rewarded_content_details field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", +"id": "UserRewardedContentAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", +"type": "string" +}, +"userRewardedContent": { +"description": "Output only. User rewarded content status for video ads.", +"enum": [ +"USER_REWARDED_CONTENT_UNSPECIFIED", +"USER_REWARDED_CONTENT_USER_REWARDED", +"USER_REWARDED_CONTENT_NOT_USER_REWARDED" +], +"enumDescriptions": [ +"User rewarded content is not specified or is unknown in this version.", +"Represents ads where the user will see a reward after viewing.", +"Represents all other ads besides user-rewarded." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"UserRewardedContentTargetingOptionDetails": { +"description": "Represents a targetable user rewarded content status for video ads only. This will be populated in the user_rewarded_content_details field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", +"id": "UserRewardedContentTargetingOptionDetails", +"properties": { +"userRewardedContent": { +"description": "Output only. User rewarded content status for video ads.", +"enum": [ +"USER_REWARDED_CONTENT_UNSPECIFIED", +"USER_REWARDED_CONTENT_USER_REWARDED", +"USER_REWARDED_CONTENT_NOT_USER_REWARDED" +], +"enumDescriptions": [ +"User rewarded content is not specified or is unknown in this version.", +"Represents ads where the user will see a reward after viewing.", +"Represents all other ads besides user-rewarded." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"VideoPlayerSizeAssignedTargetingOptionDetails": { +"description": "Video player size targeting option details. This will be populated in the video_player_size_details field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options is not supported. Remove all video player size targeting options to achieve this effect.", +"id": "VideoPlayerSizeAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.", +"type": "string" +}, +"videoPlayerSize": { +"description": "Required. The video player size.", +"enum": [ +"VIDEO_PLAYER_SIZE_UNSPECIFIED", +"VIDEO_PLAYER_SIZE_SMALL", +"VIDEO_PLAYER_SIZE_LARGE", +"VIDEO_PLAYER_SIZE_HD", +"VIDEO_PLAYER_SIZE_UNKNOWN" +], +"enumDescriptions": [ +"Video player size is not specified in this version. This enum is a place holder for a default value and does not represent a real video player size.", +"The dimensions of the video player are less than 400\u00d7300 (desktop), or up to 20% of screen covered (mobile).", +"The dimensions of the video player are between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen covered (mobile).", +"The dimensions of the video player are 1280\u00d7720 or greater (desktop), or over 90% of the screen covered (mobile).", +"The dimensions of the video player are unknown." +], +"type": "string" +} +}, +"type": "object" +}, +"VideoPlayerSizeTargetingOptionDetails": { +"description": "Represents a targetable video player size. This will be populated in the video_player_size_details field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.", +"id": "VideoPlayerSizeTargetingOptionDetails", +"properties": { +"videoPlayerSize": { +"description": "Output only. The video player size.", +"enum": [ +"VIDEO_PLAYER_SIZE_UNSPECIFIED", +"VIDEO_PLAYER_SIZE_SMALL", +"VIDEO_PLAYER_SIZE_LARGE", +"VIDEO_PLAYER_SIZE_HD", +"VIDEO_PLAYER_SIZE_UNKNOWN" +], +"enumDescriptions": [ +"Video player size is not specified in this version. This enum is a place holder for a default value and does not represent a real video player size.", +"The dimensions of the video player are less than 400\u00d7300 (desktop), or up to 20% of screen covered (mobile).", +"The dimensions of the video player are between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen covered (mobile).", +"The dimensions of the video player are 1280\u00d7720 or greater (desktop), or over 90% of the screen covered (mobile).", +"The dimensions of the video player are unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ViewabilityAssignedTargetingOptionDetails": { +"description": "Assigned viewability targeting option details. This will be populated in the viewability_details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`.", +"id": "ViewabilityAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_VIEWABILITY` (e.g., \"509010\" for targeting the `VIEWABILITY_10_PERCENT_OR_MORE` option).", +"type": "string" +}, +"viewability": { +"description": "Required. The predicted viewability percentage.", +"enum": [ +"VIEWABILITY_UNSPECIFIED", +"VIEWABILITY_10_PERCENT_OR_MORE", +"VIEWABILITY_20_PERCENT_OR_MORE", +"VIEWABILITY_30_PERCENT_OR_MORE", +"VIEWABILITY_40_PERCENT_OR_MORE", +"VIEWABILITY_50_PERCENT_OR_MORE", +"VIEWABILITY_60_PERCENT_OR_MORE", +"VIEWABILITY_70_PERCENT_OR_MORE", +"VIEWABILITY_80_PERCENT_OR_MORE", +"VIEWABILITY_90_PERCENT_OR_MORE" +], +"enumDescriptions": [ +"Default value when viewability is not specified in this version. This enum is a placeholder for default value and does not represent a real viewability option.", +"Bid only on impressions that are at least 10% likely to be viewable.", +"Bid only on impressions that are at least 20% likely to be viewable.", +"Bid only on impressions that are at least 30% likely to be viewable.", +"Bid only on impressions that are at least 40% likely to be viewable.", +"Bid only on impressions that are at least 50% likely to be viewable.", +"Bid only on impressions that are at least 60% likely to be viewable.", +"Bid only on impressions that are at least 70% likely to be viewable.", +"Bid only on impressions that are at least 80% likely to be viewable.", +"Bid only on impressions that are at least 90% likely to be viewable." +], +"type": "string" +} +}, +"type": "object" +}, +"ViewabilityTargetingOptionDetails": { +"description": "Represents a targetable viewability. This will be populated in the viewability_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`.", +"id": "ViewabilityTargetingOptionDetails", +"properties": { +"viewability": { +"description": "Output only. The predicted viewability percentage.", +"enum": [ +"VIEWABILITY_UNSPECIFIED", +"VIEWABILITY_10_PERCENT_OR_MORE", +"VIEWABILITY_20_PERCENT_OR_MORE", +"VIEWABILITY_30_PERCENT_OR_MORE", +"VIEWABILITY_40_PERCENT_OR_MORE", +"VIEWABILITY_50_PERCENT_OR_MORE", +"VIEWABILITY_60_PERCENT_OR_MORE", +"VIEWABILITY_70_PERCENT_OR_MORE", +"VIEWABILITY_80_PERCENT_OR_MORE", +"VIEWABILITY_90_PERCENT_OR_MORE" +], +"enumDescriptions": [ +"Default value when viewability is not specified in this version. This enum is a placeholder for default value and does not represent a real viewability option.", +"Bid only on impressions that are at least 10% likely to be viewable.", +"Bid only on impressions that are at least 20% likely to be viewable.", +"Bid only on impressions that are at least 30% likely to be viewable.", +"Bid only on impressions that are at least 40% likely to be viewable.", +"Bid only on impressions that are at least 50% likely to be viewable.", +"Bid only on impressions that are at least 60% likely to be viewable.", +"Bid only on impressions that are at least 70% likely to be viewable.", +"Bid only on impressions that are at least 80% likely to be viewable.", +"Bid only on impressions that are at least 90% likely to be viewable." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Display & Video 360 API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dlp.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dlp.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..df8cfe26303eafc44998f889da83bdf0f4c998a3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dlp.v2.json @@ -0,0 +1,12508 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://dlp.googleapis.com/", +"batchPath": "batch", +"canonicalName": "DLP", +"description": "Discover and protect your sensitive data. A fully managed service designed to help you discover, classify, and protect your valuable data assets with ease.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/sensitive-data-protection/docs/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-north2.rep.googleapis.com/", +"location": "europe-north2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.northamerica-south1.rep.googleapis.com/", +"location": "northamerica-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us-west8.rep.googleapis.com/", +"location": "us-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.us.rep.googleapis.com/", +"location": "us" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dlp.eu.rep.googleapis.com/", +"location": "eu" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "dlp:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dlp.mtls.googleapis.com/", +"name": "dlp", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"infoTypes": { +"methods": { +"list": { +"description": "Returns a list of the sensitive information types that the DLP API supports. See https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference to learn more.", +"flatPath": "v2/infoTypes", +"httpMethod": "GET", +"id": "dlp.infoTypes.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "filter to only return infoTypes supported by certain parts of the API. Defaults to supported_by=INSPECT.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "BCP-47 language code for localized infoType friendly names. If omitted, or if localized strings are not available, en-US strings will be returned.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent resource name. The format of this value is as follows: `locations/{location_id}`", +"location": "query", +"type": "string" +} +}, +"path": "v2/infoTypes", +"response": { +"$ref": "GooglePrivacyDlpV2ListInfoTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"infoTypes": { +"methods": { +"list": { +"description": "Returns a list of the sensitive information types that the DLP API supports. See https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference to learn more.", +"flatPath": "v2/locations/{locationsId}/infoTypes", +"httpMethod": "GET", +"id": "dlp.locations.infoTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "filter to only return infoTypes supported by certain parts of the API. Defaults to supported_by=INSPECT.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "BCP-47 language code for localized infoType friendly names. If omitted, or if localized strings are not available, en-US strings will be returned.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent resource name. The format of this value is as follows: `locations/{location_id}`", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/infoTypes", +"response": { +"$ref": "GooglePrivacyDlpV2ListInfoTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"organizations": { +"resources": { +"deidentifyTemplates": { +"methods": { +"create": { +"description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates", +"httpMethod": "POST", +"id": "dlp.organizations.deidentifyTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.deidentifyTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be deleted, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "GET", +"id": "dlp.organizations.deidentifyTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be read, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates", +"httpMethod": "GET", +"id": "dlp.organizations.deidentifyTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.deidentifyTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and deidentify template to be updated, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"inspectTemplates": { +"methods": { +"create": { +"description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/inspectTemplates", +"httpMethod": "POST", +"id": "dlp.organizations.inspectTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.inspectTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be deleted, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "GET", +"id": "dlp.organizations.inspectTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be read, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/inspectTemplates", +"httpMethod": "GET", +"id": "dlp.organizations.inspectTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListInspectTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.inspectTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and inspectTemplate to be updated, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"columnDataProfiles": { +"methods": { +"get": { +"description": "Gets a column data profile.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/columnDataProfiles/{columnDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.columnDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/columnDataProfiles/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/columnDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2ColumnDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists column data profiles for an organization.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/columnDataProfiles", +"httpMethod": "GET", +"id": "dlp.organizations.locations.columnDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `table_data_profile_name` - The name of the related table data profile. - `project_id` - The Google Cloud project ID. (REQUIRED) - `dataset_id` - The BigQuery dataset ID. (REQUIRED) - `table_id` - The BigQuery table ID. (REQUIRED) - `field_id` - The ID of the BigQuery field. - `info_type` - The infotype detected in the resource. - `sensitivity_level` - HIGH|MEDIUM|LOW - `data_risk_level`: How much risk is associated with this data. - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` for project_id, dataset_id, and table_id. Other filters also support `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND info_type = STREET_ADDRESS The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a column is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/columnDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListColumnDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"connections": { +"methods": { +"create": { +"description": "Create a Connection to an external data source.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections", +"httpMethod": "POST", +"id": "dlp.organizations.locations.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization): + Projects scope: `projects/{project_id}/locations/{location_id}` + Organizations scope: `organizations/{org_id}/locations/{location_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections", +"request": { +"$ref": "GooglePrivacyDlpV2CreateConnectionRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a Connection.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.connections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Connection to be deleted, in the format: `projects/{project}/locations/{location}/connections/{connection}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a Connection by name.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.connections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name in the format: `projects/{project}/locations/{location}/connections/{connection}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Connections in a parent. Use SearchConnections to see all connections within an organization.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections", +"httpMethod": "GET", +"id": "dlp.organizations.locations.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Supported field/value: `state` - MISSING|AVAILABLE|ERROR", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of results per page, max 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example, `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections", +"response": { +"$ref": "GooglePrivacyDlpV2ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a Connection.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.locations.connections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name in the format: `projects/{project}/locations/{location}/connections/{connection}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateConnectionRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Searches for Connections in a parent.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections:search", +"httpMethod": "GET", +"id": "dlp.organizations.locations.connections.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Supported field/value: - `state` - MISSING|AVAILABLE|ERROR", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of results per page, max 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project with a wildcard location, for example, `organizations/433245324/locations/-` or `projects/project-id/locations/-`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections:search", +"response": { +"$ref": "GooglePrivacyDlpV2SearchConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"deidentifyTemplates": { +"methods": { +"create": { +"description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates", +"httpMethod": "POST", +"id": "dlp.organizations.locations.deidentifyTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.deidentifyTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be deleted, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.deidentifyTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be read, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates", +"httpMethod": "GET", +"id": "dlp.organizations.locations.deidentifyTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.locations.deidentifyTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and deidentify template to be updated, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"discoveryConfigs": { +"methods": { +"create": { +"description": "Creates a config for discovery to scan and profile storage.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs", +"httpMethod": "POST", +"id": "dlp.organizations.locations.discoveryConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization): + Projects scope: `projects/{project_id}/locations/{location_id}` + Organizations scope: `organizations/{org_id}/locations/{location_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/discoveryConfigs", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDiscoveryConfigRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a discovery configuration.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.discoveryConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the config, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a discovery configuration.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.discoveryConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists discovery configurations.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs", +"httpMethod": "GET", +"id": "dlp.organizations.locations.discoveryConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Comma-separated list of config fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `last_run_time`: corresponds to the last time the DiscoveryConfig ran. - `name`: corresponds to the DiscoveryConfig's name. - `status`: corresponds to DiscoveryConfig's status.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by a server.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to ListDiscoveryConfigs. `order_by` field must not change for subsequent calls.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value is as follows: `projects/{project_id}/locations/{location_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/discoveryConfigs", +"response": { +"$ref": "GooglePrivacyDlpV2ListDiscoveryConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a discovery configuration.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.locations.discoveryConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dlpJobs": { +"methods": { +"list": { +"description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/dlpJobs", +"httpMethod": "GET", +"id": "dlp.organizations.locations.dlpJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The name of the trigger that created the job. - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "The type of job. Defaults to `DlpJobType.INSPECT`", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/dlpJobs", +"response": { +"$ref": "GooglePrivacyDlpV2ListDlpJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"fileStoreDataProfiles": { +"methods": { +"delete": { +"description": "Delete a FileStoreDataProfile. Will not prevent the profile from being regenerated if the resource is still included in a discovery configuration.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/fileStoreDataProfiles/{fileStoreDataProfilesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.fileStoreDataProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the file store data profile.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/fileStoreDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a file store data profile.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/fileStoreDataProfiles/{fileStoreDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.fileStoreDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/fileStoreDataProfiles/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/fileStoreDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2FileStoreDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists file store data profiles for an organization.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/fileStoreDataProfiles", +"httpMethod": "GET", +"id": "dlp.organizations.locations.fileStoreDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `project_id` - The Google Cloud project ID. - `account_id` - The AWS account ID. - `file_store_path` - The path like \"gs://bucket\". - `data_source_type` - The profile's data source type, like \"google/storage/bucket\". - `data_storage_location` - The location where the file store's data is stored, like \"us-central1\". - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `project_id = 12345 AND resource_visibility = PUBLIC` * `file_store_path = \"gs://mybucket\"` The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `name` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `name`: The name of the profile. - `create_time`: The time the file store was first created.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/fileStoreDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListFileStoreDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"inspectTemplates": { +"methods": { +"create": { +"description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates", +"httpMethod": "POST", +"id": "dlp.organizations.locations.inspectTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.inspectTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be deleted, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.inspectTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be read, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates", +"httpMethod": "GET", +"id": "dlp.organizations.locations.inspectTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListInspectTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.locations.inspectTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and inspectTemplate to be updated, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobTriggers": { +"methods": { +"create": { +"description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers", +"httpMethod": "POST", +"id": "dlp.organizations.locations.jobTriggers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/jobTriggers", +"request": { +"$ref": "GooglePrivacyDlpV2CreateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.jobTriggers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.jobTriggers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists job triggers. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers", +"httpMethod": "GET", +"id": "dlp.organizations.locations.jobTriggers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values for inspect triggers: - `status` - HEALTHY|PAUSED|CANCELLED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by quotation marks. Nanoseconds are ignored. - 'error_count' - Number of errors that have occurred while running. * The operator must be `=` or `!=` for status and inspected_storage. Examples: * inspected_storage = cloud_storage AND status = HEALTHY * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY) * last_run_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by a server.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "The type of jobs. Will use `DlpJobType.INSPECT` if not set.", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/jobTriggers", +"response": { +"$ref": "GooglePrivacyDlpV2ListJobTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.locations.jobTriggers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projectDataProfiles": { +"methods": { +"get": { +"description": "Gets a project data profile.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/projectDataProfiles/{projectDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.projectDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/projectDataProfiles/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/projectDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2ProjectDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists project data profiles for an organization.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/projectDataProfiles", +"httpMethod": "GET", +"id": "dlp.organizations.locations.projectDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: Google Cloud project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. organizations/{org_id}/locations/{loc_id}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/projectDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListProjectDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"storedInfoTypes": { +"methods": { +"create": { +"description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes", +"httpMethod": "POST", +"id": "dlp.organizations.locations.storedInfoTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"request": { +"$ref": "GooglePrivacyDlpV2CreateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.storedInfoTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be deleted, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.storedInfoTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be read, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes", +"httpMethod": "GET", +"id": "dlp.organizations.locations.storedInfoTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"response": { +"$ref": "GooglePrivacyDlpV2ListStoredInfoTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.locations.storedInfoTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and storedInfoType to be updated, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tableDataProfiles": { +"methods": { +"delete": { +"description": "Delete a TableDataProfile. Will not prevent the profile from being regenerated if the table is still included in a discovery configuration.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.locations.tableDataProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the table data profile.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a table data profile.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.organizations.locations.tableDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/tableDataProfiles/53234423`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2TableDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists table data profiles for an organization.", +"flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles", +"httpMethod": "GET", +"id": "dlp.organizations.locations.tableDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `project_id` - The Google Cloud project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `project_id = 12345 AND resource_visibility = PUBLIC` The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/tableDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListTableDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"storedInfoTypes": { +"methods": { +"create": { +"description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/storedInfoTypes", +"httpMethod": "POST", +"id": "dlp.organizations.storedInfoTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"request": { +"$ref": "GooglePrivacyDlpV2CreateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "DELETE", +"id": "dlp.organizations.storedInfoTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be deleted, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "GET", +"id": "dlp.organizations.storedInfoTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be read, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/storedInfoTypes", +"httpMethod": "GET", +"id": "dlp.organizations.storedInfoTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"response": { +"$ref": "GooglePrivacyDlpV2ListStoredInfoTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/organizations/{organizationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "PATCH", +"id": "dlp.organizations.storedInfoTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and storedInfoType to be updated, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^organizations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"content": { +"methods": { +"deidentify": { +"description": "De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. See https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", +"flatPath": "v2/projects/{projectsId}/content:deidentify", +"httpMethod": "POST", +"id": "dlp.projects.content.deidentify", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/content:deidentify", +"request": { +"$ref": "GooglePrivacyDlpV2DeidentifyContentRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"inspect": { +"description": "Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. For how to guides, see https://cloud.google.com/sensitive-data-protection/docs/inspecting-images and https://cloud.google.com/sensitive-data-protection/docs/inspecting-text,", +"flatPath": "v2/projects/{projectsId}/content:inspect", +"httpMethod": "POST", +"id": "dlp.projects.content.inspect", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/content:inspect", +"request": { +"$ref": "GooglePrivacyDlpV2InspectContentRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reidentify": { +"description": "Re-identifies content that has been de-identified. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example to learn more.", +"flatPath": "v2/projects/{projectsId}/content:reidentify", +"httpMethod": "POST", +"id": "dlp.projects.content.reidentify", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/content:reidentify", +"request": { +"$ref": "GooglePrivacyDlpV2ReidentifyContentRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2ReidentifyContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"deidentifyTemplates": { +"methods": { +"create": { +"description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/deidentifyTemplates", +"httpMethod": "POST", +"id": "dlp.projects.deidentifyTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.deidentifyTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be deleted, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "GET", +"id": "dlp.projects.deidentifyTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be read, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/deidentifyTemplates", +"httpMethod": "GET", +"id": "dlp.projects.deidentifyTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.projects.deidentifyTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and deidentify template to be updated, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dlpJobs": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not guaranteed. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}:cancel", +"httpMethod": "POST", +"id": "dlp.projects.dlpJobs.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:cancel", +"request": { +"$ref": "GooglePrivacyDlpV2CancelDlpJobRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more. When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", +"flatPath": "v2/projects/{projectsId}/dlpJobs", +"httpMethod": "POST", +"id": "dlp.projects.dlpJobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/dlpJobs", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDlpJobRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be canceled if possible. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}", +"httpMethod": "DELETE", +"id": "dlp.projects.dlpJobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running DlpJob. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}", +"httpMethod": "GET", +"id": "dlp.projects.dlpJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource.", +"location": "path", +"pattern": "^projects/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/dlpJobs", +"httpMethod": "GET", +"id": "dlp.projects.dlpJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The name of the trigger that created the job. - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "The type of job. Defaults to `DlpJobType.INSPECT`", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/dlpJobs", +"response": { +"$ref": "GooglePrivacyDlpV2ListDlpJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"image": { +"methods": { +"redact": { +"description": "Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. See https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", +"flatPath": "v2/projects/{projectsId}/image:redact", +"httpMethod": "POST", +"id": "dlp.projects.image.redact", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/image:redact", +"request": { +"$ref": "GooglePrivacyDlpV2RedactImageRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2RedactImageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"inspectTemplates": { +"methods": { +"create": { +"description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/inspectTemplates", +"httpMethod": "POST", +"id": "dlp.projects.inspectTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.inspectTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be deleted, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "GET", +"id": "dlp.projects.inspectTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be read, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/inspectTemplates", +"httpMethod": "GET", +"id": "dlp.projects.inspectTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListInspectTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.projects.inspectTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and inspectTemplate to be updated, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobTriggers": { +"methods": { +"activate": { +"description": "Activate a job trigger. Causes the immediate execute of a trigger instead of waiting on the trigger event to occur.", +"flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}:activate", +"httpMethod": "POST", +"id": "dlp.projects.jobTriggers.activate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the trigger to activate, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:activate", +"request": { +"$ref": "GooglePrivacyDlpV2ActivateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/jobTriggers", +"httpMethod": "POST", +"id": "dlp.projects.jobTriggers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/jobTriggers", +"request": { +"$ref": "GooglePrivacyDlpV2CreateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "DELETE", +"id": "dlp.projects.jobTriggers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "GET", +"id": "dlp.projects.jobTriggers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists job triggers. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/jobTriggers", +"httpMethod": "GET", +"id": "dlp.projects.jobTriggers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values for inspect triggers: - `status` - HEALTHY|PAUSED|CANCELLED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by quotation marks. Nanoseconds are ignored. - 'error_count' - Number of errors that have occurred while running. * The operator must be `=` or `!=` for status and inspected_storage. Examples: * inspected_storage = cloud_storage AND status = HEALTHY * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY) * last_run_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by a server.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "The type of jobs. Will use `DlpJobType.INSPECT` if not set.", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/jobTriggers", +"response": { +"$ref": "GooglePrivacyDlpV2ListJobTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "PATCH", +"id": "dlp.projects.jobTriggers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"columnDataProfiles": { +"methods": { +"get": { +"description": "Gets a column data profile.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/columnDataProfiles/{columnDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.columnDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/columnDataProfiles/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/columnDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2ColumnDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists column data profiles for an organization.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/columnDataProfiles", +"httpMethod": "GET", +"id": "dlp.projects.locations.columnDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `table_data_profile_name` - The name of the related table data profile. - `project_id` - The Google Cloud project ID. (REQUIRED) - `dataset_id` - The BigQuery dataset ID. (REQUIRED) - `table_id` - The BigQuery table ID. (REQUIRED) - `field_id` - The ID of the BigQuery field. - `info_type` - The infotype detected in the resource. - `sensitivity_level` - HIGH|MEDIUM|LOW - `data_risk_level`: How much risk is associated with this data. - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` for project_id, dataset_id, and table_id. Other filters also support `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND info_type = STREET_ADDRESS The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a column is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/columnDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListColumnDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"connections": { +"methods": { +"create": { +"description": "Create a Connection to an external data source.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "POST", +"id": "dlp.projects.locations.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization): + Projects scope: `projects/{project_id}/locations/{location_id}` + Organizations scope: `organizations/{org_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections", +"request": { +"$ref": "GooglePrivacyDlpV2CreateConnectionRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a Connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.connections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Connection to be deleted, in the format: `projects/{project}/locations/{location}/connections/{connection}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a Connection by name.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.connections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name in the format: `projects/{project}/locations/{location}/connections/{connection}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Connections in a parent. Use SearchConnections to see all connections within an organization.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "GET", +"id": "dlp.projects.locations.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Supported field/value: `state` - MISSING|AVAILABLE|ERROR", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of results per page, max 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example, `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections", +"response": { +"$ref": "GooglePrivacyDlpV2ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a Connection.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "PATCH", +"id": "dlp.projects.locations.connections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name in the format: `projects/{project}/locations/{location}/connections/{connection}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateConnectionRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Searches for Connections in a parent.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections:search", +"httpMethod": "GET", +"id": "dlp.projects.locations.connections.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Supported field/value: - `state` - MISSING|AVAILABLE|ERROR", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of results per page, max 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project with a wildcard location, for example, `organizations/433245324/locations/-` or `projects/project-id/locations/-`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/connections:search", +"response": { +"$ref": "GooglePrivacyDlpV2SearchConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"content": { +"methods": { +"deidentify": { +"description": "De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. See https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/content:deidentify", +"httpMethod": "POST", +"id": "dlp.projects.locations.content.deidentify", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/content:deidentify", +"request": { +"$ref": "GooglePrivacyDlpV2DeidentifyContentRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"inspect": { +"description": "Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. For how to guides, see https://cloud.google.com/sensitive-data-protection/docs/inspecting-images and https://cloud.google.com/sensitive-data-protection/docs/inspecting-text,", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/content:inspect", +"httpMethod": "POST", +"id": "dlp.projects.locations.content.inspect", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/content:inspect", +"request": { +"$ref": "GooglePrivacyDlpV2InspectContentRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reidentify": { +"description": "Re-identifies content that has been de-identified. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/content:reidentify", +"httpMethod": "POST", +"id": "dlp.projects.locations.content.reidentify", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/content:reidentify", +"request": { +"$ref": "GooglePrivacyDlpV2ReidentifyContentRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2ReidentifyContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"deidentifyTemplates": { +"methods": { +"create": { +"description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates", +"httpMethod": "POST", +"id": "dlp.projects.locations.deidentifyTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.deidentifyTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be deleted, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.deidentifyTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and deidentify template to be read, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates", +"httpMethod": "GET", +"id": "dlp.projects.locations.deidentifyTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/deidentifyTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.projects.locations.deidentifyTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and deidentify template to be updated, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/deidentifyTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"discoveryConfigs": { +"methods": { +"create": { +"description": "Creates a config for discovery to scan and profile storage.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs", +"httpMethod": "POST", +"id": "dlp.projects.locations.discoveryConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization): + Projects scope: `projects/{project_id}/locations/{location_id}` + Organizations scope: `organizations/{org_id}/locations/{location_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/discoveryConfigs", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDiscoveryConfigRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a discovery configuration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.discoveryConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the config, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a discovery configuration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.discoveryConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists discovery configurations.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs", +"httpMethod": "GET", +"id": "dlp.projects.locations.discoveryConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Comma-separated list of config fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `last_run_time`: corresponds to the last time the DiscoveryConfig ran. - `name`: corresponds to the DiscoveryConfig's name. - `status`: corresponds to DiscoveryConfig's status.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by a server.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to ListDiscoveryConfigs. `order_by` field must not change for subsequent calls.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value is as follows: `projects/{project_id}/locations/{location_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/discoveryConfigs", +"response": { +"$ref": "GooglePrivacyDlpV2ListDiscoveryConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a discovery configuration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", +"httpMethod": "PATCH", +"id": "dlp.projects.locations.discoveryConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dlpJobs": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not guaranteed. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}:cancel", +"httpMethod": "POST", +"id": "dlp.projects.locations.dlpJobs.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:cancel", +"request": { +"$ref": "GooglePrivacyDlpV2CancelDlpJobRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more. When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs", +"httpMethod": "POST", +"id": "dlp.projects.locations.dlpJobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/dlpJobs", +"request": { +"$ref": "GooglePrivacyDlpV2CreateDlpJobRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be canceled if possible. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.dlpJobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"finish": { +"description": "Finish a running hybrid DlpJob. Triggers the finalization steps and running of any enabled actions that have not yet run.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}:finish", +"httpMethod": "POST", +"id": "dlp.projects.locations.dlpJobs.finish", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource to be finished.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:finish", +"request": { +"$ref": "GooglePrivacyDlpV2FinishDlpJobRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running DlpJob. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.dlpJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DlpJob resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"hybridInspect": { +"description": "Inspect hybrid content and store findings to a job. To review the findings, inspect the job. Inspection will occur asynchronously.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}:hybridInspect", +"httpMethod": "POST", +"id": "dlp.projects.locations.dlpJobs.hybridInspect", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the job to execute a hybrid inspect on, for example `projects/dlp-test-project/dlpJob/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dlpJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:hybridInspect", +"request": { +"$ref": "GooglePrivacyDlpV2HybridInspectDlpJobRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2HybridInspectResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs", +"httpMethod": "GET", +"id": "dlp.projects.locations.dlpJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The name of the trigger that created the job. - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "The type of job. Defaults to `DlpJobType.INSPECT`", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/dlpJobs", +"response": { +"$ref": "GooglePrivacyDlpV2ListDlpJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"fileStoreDataProfiles": { +"methods": { +"delete": { +"description": "Delete a FileStoreDataProfile. Will not prevent the profile from being regenerated if the resource is still included in a discovery configuration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/fileStoreDataProfiles/{fileStoreDataProfilesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.fileStoreDataProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the file store data profile.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/fileStoreDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a file store data profile.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/fileStoreDataProfiles/{fileStoreDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.fileStoreDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/fileStoreDataProfiles/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/fileStoreDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2FileStoreDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists file store data profiles for an organization.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/fileStoreDataProfiles", +"httpMethod": "GET", +"id": "dlp.projects.locations.fileStoreDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `project_id` - The Google Cloud project ID. - `account_id` - The AWS account ID. - `file_store_path` - The path like \"gs://bucket\". - `data_source_type` - The profile's data source type, like \"google/storage/bucket\". - `data_storage_location` - The location where the file store's data is stored, like \"us-central1\". - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `project_id = 12345 AND resource_visibility = PUBLIC` * `file_store_path = \"gs://mybucket\"` The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `name` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `name`: The name of the profile. - `create_time`: The time the file store was first created.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/fileStoreDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListFileStoreDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"image": { +"methods": { +"redact": { +"description": "Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. See https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/image:redact", +"httpMethod": "POST", +"id": "dlp.projects.locations.image.redact", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/image:redact", +"request": { +"$ref": "GooglePrivacyDlpV2RedactImageRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2RedactImageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"inspectTemplates": { +"methods": { +"create": { +"description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates", +"httpMethod": "POST", +"id": "dlp.projects.locations.inspectTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"request": { +"$ref": "GooglePrivacyDlpV2CreateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.inspectTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be deleted, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.inspectTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and inspectTemplate to be read, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates", +"httpMethod": "GET", +"id": "dlp.projects.locations.inspectTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/inspectTemplates", +"response": { +"$ref": "GooglePrivacyDlpV2ListInspectTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", +"httpMethod": "PATCH", +"id": "dlp.projects.locations.inspectTemplates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and inspectTemplate to be updated, for example `organizations/433245324/inspectTemplates/432452342` or projects/project-id/inspectTemplates/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/inspectTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateInspectTemplateRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobTriggers": { +"methods": { +"activate": { +"description": "Activate a job trigger. Causes the immediate execute of a trigger instead of waiting on the trigger event to occur.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}:activate", +"httpMethod": "POST", +"id": "dlp.projects.locations.jobTriggers.activate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the trigger to activate, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:activate", +"request": { +"$ref": "GooglePrivacyDlpV2ActivateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers", +"httpMethod": "POST", +"id": "dlp.projects.locations.jobTriggers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/jobTriggers", +"request": { +"$ref": "GooglePrivacyDlpV2CreateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.jobTriggers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.jobTriggers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"hybridInspect": { +"description": "Inspect hybrid content and store findings to a trigger. The inspection will be processed asynchronously. To review the findings monitor the jobs within the trigger.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}:hybridInspect", +"httpMethod": "POST", +"id": "dlp.projects.locations.jobTriggers.hybridInspect", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the trigger to execute a hybrid inspect on, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:hybridInspect", +"request": { +"$ref": "GooglePrivacyDlpV2HybridInspectJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2HybridInspectResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists job triggers. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers", +"httpMethod": "GET", +"id": "dlp.projects.locations.jobTriggers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values for inspect triggers: - `status` - HEALTHY|PAUSED|CANCELLED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by quotation marks. Nanoseconds are ignored. - 'error_count' - Number of errors that have occurred while running. * The operator must be `=` or `!=` for status and inspected_storage. Examples: * inspected_storage = cloud_storage AND status = HEALTHY * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY) * last_run_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by a server.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "The type of jobs. Will use `DlpJobType.INSPECT` if not set.", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/jobTriggers", +"response": { +"$ref": "GooglePrivacyDlpV2ListJobTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", +"httpMethod": "PATCH", +"id": "dlp.projects.locations.jobTriggers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTriggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateJobTriggerRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projectDataProfiles": { +"methods": { +"get": { +"description": "Gets a project data profile.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/projectDataProfiles/{projectDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.projectDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/projectDataProfiles/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/projectDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2ProjectDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists project data profiles for an organization.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/projectDataProfiles", +"httpMethod": "GET", +"id": "dlp.projects.locations.projectDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: Google Cloud project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. organizations/{org_id}/locations/{loc_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/projectDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListProjectDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"storedInfoTypes": { +"methods": { +"create": { +"description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes", +"httpMethod": "POST", +"id": "dlp.projects.locations.storedInfoTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"request": { +"$ref": "GooglePrivacyDlpV2CreateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.storedInfoTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be deleted, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.storedInfoTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be read, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes", +"httpMethod": "GET", +"id": "dlp.projects.locations.storedInfoTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"response": { +"$ref": "GooglePrivacyDlpV2ListStoredInfoTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "PATCH", +"id": "dlp.projects.locations.storedInfoTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and storedInfoType to be updated, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tableDataProfiles": { +"methods": { +"delete": { +"description": "Delete a TableDataProfile. Will not prevent the profile from being regenerated if the table is still included in a discovery configuration.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.locations.tableDataProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the table data profile.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a table data profile.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", +"httpMethod": "GET", +"id": "dlp.projects.locations.tableDataProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name, for example `organizations/12345/locations/us/tableDataProfiles/53234423`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2TableDataProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists table data profiles for an organization.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles", +"httpMethod": "GET", +"id": "dlp.projects.locations.tableDataProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `project_id` - The Google Cloud project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `project_id = 12345 AND resource_visibility = PUBLIC` The length of this field should be no more than 500 characters.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/tableDataProfiles", +"response": { +"$ref": "GooglePrivacyDlpV2ListTableDataProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"storedInfoTypes": { +"methods": { +"create": { +"description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/storedInfoTypes", +"httpMethod": "POST", +"id": "dlp.projects.storedInfoTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` + Organizations scope, location specified: `organizations/{org_id}/locations/{location_id}` + Organizations scope, no location specified (defaults to global): `organizations/{org_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"request": { +"$ref": "GooglePrivacyDlpV2CreateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "DELETE", +"id": "dlp.projects.storedInfoTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be deleted, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "GET", +"id": "dlp.projects.storedInfoTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the organization and storedInfoType to be read, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/storedInfoTypes", +"httpMethod": "GET", +"id": "dlp.projects.storedInfoTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"locationId": { +"description": "Deprecated. This field has no effect.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/{project_id}/locations/{location_id}` + Projects scope, no location specified (defaults to global): `projects/{project_id}` The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/storedInfoTypes", +"response": { +"$ref": "GooglePrivacyDlpV2ListStoredInfoTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", +"flatPath": "v2/projects/{projectsId}/storedInfoTypes/{storedInfoTypesId}", +"httpMethod": "PATCH", +"id": "dlp.projects.storedInfoTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of organization and storedInfoType to be updated, for example `organizations/433245324/storedInfoTypes/432452342` or projects/project-id/storedInfoTypes/432452342.", +"location": "path", +"pattern": "^projects/[^/]+/storedInfoTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GooglePrivacyDlpV2UpdateStoredInfoTypeRequest" +}, +"response": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20250105", +"rootUrl": "https://dlp.googleapis.com/", +"schemas": { +"GooglePrivacyDlpV2Action": { +"description": "A task to execute on the completion of a job. See https://cloud.google.com/sensitive-data-protection/docs/concepts-actions to learn more.", +"id": "GooglePrivacyDlpV2Action", +"properties": { +"deidentify": { +"$ref": "GooglePrivacyDlpV2Deidentify", +"description": "Create a de-identified copy of the input data." +}, +"jobNotificationEmails": { +"$ref": "GooglePrivacyDlpV2JobNotificationEmails", +"description": "Sends an email when the job completes. The email goes to IAM project owners and technical [Essential Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts)." +}, +"pubSub": { +"$ref": "GooglePrivacyDlpV2PublishToPubSub", +"description": "Publish a notification to a Pub/Sub topic." +}, +"publishFindingsToCloudDataCatalog": { +"$ref": "GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog", +"description": "Publish findings to Cloud Datahub." +}, +"publishSummaryToCscc": { +"$ref": "GooglePrivacyDlpV2PublishSummaryToCscc", +"description": "Publish summary to Cloud Security Command Center (Alpha)." +}, +"publishToStackdriver": { +"$ref": "GooglePrivacyDlpV2PublishToStackdriver", +"description": "Enable Stackdriver metric dlp.googleapis.com/finding_count." +}, +"saveFindings": { +"$ref": "GooglePrivacyDlpV2SaveFindings", +"description": "Save resulting findings in a provided location." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ActionDetails": { +"description": "The results of an Action.", +"id": "GooglePrivacyDlpV2ActionDetails", +"properties": { +"deidentifyDetails": { +"$ref": "GooglePrivacyDlpV2DeidentifyDataSourceDetails", +"description": "Outcome of a de-identification action." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ActivateJobTriggerRequest": { +"description": "Request message for ActivateJobTrigger.", +"id": "GooglePrivacyDlpV2ActivateJobTriggerRequest", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2AllInfoTypes": { +"description": "Apply transformation to all findings.", +"id": "GooglePrivacyDlpV2AllInfoTypes", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2AllOtherBigQueryTables": { +"description": "Catch-all for all other tables not specified by other filters. Should always be last, except for single-table configurations, which will only have a TableReference target.", +"id": "GooglePrivacyDlpV2AllOtherBigQueryTables", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2AllOtherDatabaseResources": { +"description": "Match database resources not covered by any other filter.", +"id": "GooglePrivacyDlpV2AllOtherDatabaseResources", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2AllOtherResources": { +"description": "Match discovery resources not covered by any other filter.", +"id": "GooglePrivacyDlpV2AllOtherResources", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2AllText": { +"description": "Apply to all text.", +"id": "GooglePrivacyDlpV2AllText", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2AmazonS3Bucket": { +"description": "Amazon S3 bucket.", +"id": "GooglePrivacyDlpV2AmazonS3Bucket", +"properties": { +"awsAccount": { +"$ref": "GooglePrivacyDlpV2AwsAccount", +"description": "The AWS account." +}, +"bucketName": { +"description": "Required. The bucket name.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AmazonS3BucketConditions": { +"description": "Amazon S3 bucket conditions.", +"id": "GooglePrivacyDlpV2AmazonS3BucketConditions", +"properties": { +"bucketTypes": { +"description": "Optional. Bucket types that should be profiled. Optional. Defaults to TYPE_ALL_SUPPORTED if unspecified.", +"items": { +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_ALL_SUPPORTED", +"TYPE_GENERAL_PURPOSE" +], +"enumDescriptions": [ +"Unused.", +"All supported classes.", +"A general purpose Amazon S3 bucket." +], +"type": "string" +}, +"type": "array" +}, +"objectStorageClasses": { +"description": "Optional. Object classes that should be profiled. Optional. Defaults to ALL_SUPPORTED_CLASSES if unspecified.", +"items": { +"enum": [ +"UNSPECIFIED", +"ALL_SUPPORTED_CLASSES", +"STANDARD", +"STANDARD_INFREQUENT_ACCESS", +"GLACIER_INSTANT_RETRIEVAL", +"INTELLIGENT_TIERING" +], +"enumDescriptions": [ +"Unused.", +"All supported classes.", +"Standard object class.", +"Standard - infrequent access object class.", +"Glacier - instant retrieval object class.", +"Objects in the S3 Intelligent-Tiering access tiers." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AmazonS3BucketRegex": { +"description": "Amazon S3 bucket regex.", +"id": "GooglePrivacyDlpV2AmazonS3BucketRegex", +"properties": { +"awsAccountRegex": { +"$ref": "GooglePrivacyDlpV2AwsAccountRegex", +"description": "The AWS account regex." +}, +"bucketNameRegex": { +"description": "Optional. Regex to test the bucket name against. If empty, all buckets match.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails": { +"description": "Result of a risk analysis operation request.", +"id": "GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails", +"properties": { +"categoricalStatsResult": { +"$ref": "GooglePrivacyDlpV2CategoricalStatsResult", +"description": "Categorical stats result" +}, +"deltaPresenceEstimationResult": { +"$ref": "GooglePrivacyDlpV2DeltaPresenceEstimationResult", +"description": "Delta-presence result" +}, +"kAnonymityResult": { +"$ref": "GooglePrivacyDlpV2KAnonymityResult", +"description": "K-anonymity result" +}, +"kMapEstimationResult": { +"$ref": "GooglePrivacyDlpV2KMapEstimationResult", +"description": "K-map result" +}, +"lDiversityResult": { +"$ref": "GooglePrivacyDlpV2LDiversityResult", +"description": "L-divesity result" +}, +"numericalStatsResult": { +"$ref": "GooglePrivacyDlpV2NumericalStatsResult", +"description": "Numerical stats result" +}, +"requestedOptions": { +"$ref": "GooglePrivacyDlpV2RequestedRiskAnalysisOptions", +"description": "The configuration used for this job." +}, +"requestedPrivacyMetric": { +"$ref": "GooglePrivacyDlpV2PrivacyMetric", +"description": "Privacy metric to compute." +}, +"requestedSourceTable": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Input dataset to compute metrics over." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AuxiliaryTable": { +"description": "An auxiliary table contains statistical information on the relative frequency of different quasi-identifiers values. It has one or several quasi-identifiers columns, and one column that indicates the relative frequency of each quasi-identifier tuple. If a tuple is present in the data but not in the auxiliary table, the corresponding relative frequency is assumed to be zero (and thus, the tuple is highly reidentifiable).", +"id": "GooglePrivacyDlpV2AuxiliaryTable", +"properties": { +"quasiIds": { +"description": "Required. Quasi-identifier columns.", +"items": { +"$ref": "GooglePrivacyDlpV2QuasiIdField" +}, +"type": "array" +}, +"relativeFrequency": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Required. The relative frequency column must contain a floating-point number between 0 and 1 (inclusive). Null values are assumed to be zero." +}, +"table": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Required. Auxiliary table location." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AwsAccount": { +"description": "AWS account.", +"id": "GooglePrivacyDlpV2AwsAccount", +"properties": { +"accountId": { +"description": "Required. AWS account ID.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AwsAccountRegex": { +"description": "AWS account regex.", +"id": "GooglePrivacyDlpV2AwsAccountRegex", +"properties": { +"accountIdRegex": { +"description": "Optional. Regex to test the AWS account ID against. If empty, all accounts match.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2AwsDiscoveryStartingLocation": { +"description": "The AWS starting location for discovery.", +"id": "GooglePrivacyDlpV2AwsDiscoveryStartingLocation", +"properties": { +"accountId": { +"description": "The AWS account ID that this discovery config applies to. Within an AWS organization, you can find the AWS account ID inside an AWS account ARN. Example: arn:{partition}:organizations::{management_account_id}:account/{org_id}/{account_id}", +"type": "string" +}, +"allAssetInventoryAssets": { +"description": "All AWS assets stored in Asset Inventory that didn't match other AWS discovery configs.", +"type": "boolean" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryDiscoveryTarget": { +"description": "Target used to match against for discovery with BigQuery tables", +"id": "GooglePrivacyDlpV2BigQueryDiscoveryTarget", +"properties": { +"cadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryGenerationCadence", +"description": "How often and when to update profiles. New tables that match both the filter and conditions are scanned as quickly as possible depending on system capacity." +}, +"conditions": { +"$ref": "GooglePrivacyDlpV2DiscoveryBigQueryConditions", +"description": "In addition to matching the filter, these conditions must be true before a profile is generated." +}, +"disabled": { +"$ref": "GooglePrivacyDlpV2Disabled", +"description": "Tables that match this filter will not have profiles created." +}, +"filter": { +"$ref": "GooglePrivacyDlpV2DiscoveryBigQueryFilter", +"description": "Required. The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryField": { +"description": "Message defining a field of a BigQuery table.", +"id": "GooglePrivacyDlpV2BigQueryField", +"properties": { +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Designated field in the BigQuery table." +}, +"table": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Source table of the field." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryKey": { +"description": "Row key for identifying a record in BigQuery table.", +"id": "GooglePrivacyDlpV2BigQueryKey", +"properties": { +"rowNumber": { +"description": "Row number inferred at the time the table was scanned. This value is nondeterministic, cannot be queried, and may be null for inspection jobs. To locate findings within a table, specify `inspect_job.storage_config.big_query_options.identifying_fields` in `CreateDlpJobRequest`.", +"format": "int64", +"type": "string" +}, +"tableReference": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Complete BigQuery table reference." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryOptions": { +"description": "Options defining BigQuery table and row identifiers.", +"id": "GooglePrivacyDlpV2BigQueryOptions", +"properties": { +"excludedFields": { +"description": "References to fields excluded from scanning. This allows you to skip inspection of entire columns which you know have no findings. When inspecting a table, we recommend that you inspect all columns. Otherwise, findings might be affected because hints from excluded columns will not be used.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +}, +"identifyingFields": { +"description": "Table fields that may uniquely identify a row within the table. When `actions.saveFindings.outputConfig.table` is specified, the values of columns specified here are available in the output table under `location.content_locations.record_location.record_key.id_values`. Nested fields such as `person.birthdate.year` are allowed.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +}, +"includedFields": { +"description": "Limit scanning only to these fields. When inspecting a table, we recommend that you inspect all columns. Otherwise, findings might be affected because hints from excluded columns will not be used.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +}, +"rowsLimit": { +"description": "Max number of rows to scan. If the table has more rows than this value, the rest of the rows are omitted. If not set, or if set to 0, all rows will be scanned. Only one of rows_limit and rows_limit_percent can be specified. Cannot be used in conjunction with TimespanConfig.", +"format": "int64", +"type": "string" +}, +"rowsLimitPercent": { +"description": "Max percentage of rows to scan. The rest are omitted. The number of rows scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of rows_limit and rows_limit_percent can be specified. Cannot be used in conjunction with TimespanConfig. Caution: A [known issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-sampling) is causing the `rowsLimitPercent` field to behave unexpectedly. We recommend using `rowsLimit` instead.", +"format": "int32", +"type": "integer" +}, +"sampleMethod": { +"description": "How to sample the data.", +"enum": [ +"SAMPLE_METHOD_UNSPECIFIED", +"TOP", +"RANDOM_START" +], +"enumDescriptions": [ +"No sampling.", +"Scan groups of rows in the order BigQuery provides (default). Multiple groups of rows may be scanned in parallel, so results may not appear in the same order the rows are read.", +"Randomly pick groups of rows to scan." +], +"type": "string" +}, +"tableReference": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Complete BigQuery table reference." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryRegex": { +"description": "A pattern to match against one or more tables, datasets, or projects that contain BigQuery tables. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", +"id": "GooglePrivacyDlpV2BigQueryRegex", +"properties": { +"datasetIdRegex": { +"description": "If unset, this property matches all datasets.", +"type": "string" +}, +"projectIdRegex": { +"description": "For organizations, if unset, will match all projects. Has no effect for data profile configurations created within a project.", +"type": "string" +}, +"tableIdRegex": { +"description": "If unset, this property matches all tables.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryRegexes": { +"description": "A collection of regular expressions to determine what tables to match against.", +"id": "GooglePrivacyDlpV2BigQueryRegexes", +"properties": { +"patterns": { +"description": "A single BigQuery regular expression pattern to match against one or more tables, datasets, or projects that contain BigQuery tables.", +"items": { +"$ref": "GooglePrivacyDlpV2BigQueryRegex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryTable": { +"description": "Message defining the location of a BigQuery table. A table is uniquely identified by its project_id, dataset_id, and table_name. Within a query a table is often referenced with a string in the format of: `:.` or `..`.", +"id": "GooglePrivacyDlpV2BigQueryTable", +"properties": { +"datasetId": { +"description": "Dataset ID of the table.", +"type": "string" +}, +"projectId": { +"description": "The Google Cloud project ID of the project containing the table. If omitted, project ID is inferred from the API call.", +"type": "string" +}, +"tableId": { +"description": "Name of the table.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryTableCollection": { +"description": "Specifies a collection of BigQuery tables. Used for Discovery.", +"id": "GooglePrivacyDlpV2BigQueryTableCollection", +"properties": { +"includeRegexes": { +"$ref": "GooglePrivacyDlpV2BigQueryRegexes", +"description": "A collection of regular expressions to match a BigQuery table against." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BigQueryTableTypes": { +"description": "The types of BigQuery tables supported by Cloud DLP.", +"id": "GooglePrivacyDlpV2BigQueryTableTypes", +"properties": { +"types": { +"description": "A set of BigQuery table types.", +"items": { +"enum": [ +"BIG_QUERY_TABLE_TYPE_UNSPECIFIED", +"BIG_QUERY_TABLE_TYPE_TABLE", +"BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE", +"BIG_QUERY_TABLE_TYPE_SNAPSHOT" +], +"enumDescriptions": [ +"Unused.", +"A normal BigQuery table.", +"A table that references data stored in Cloud Storage.", +"A snapshot of a BigQuery table." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BoundingBox": { +"description": "Bounding box encompassing detected text within an image.", +"id": "GooglePrivacyDlpV2BoundingBox", +"properties": { +"height": { +"description": "Height of the bounding box in pixels.", +"format": "int32", +"type": "integer" +}, +"left": { +"description": "Left coordinate of the bounding box. (0,0) is upper left.", +"format": "int32", +"type": "integer" +}, +"top": { +"description": "Top coordinate of the bounding box. (0,0) is upper left.", +"format": "int32", +"type": "integer" +}, +"width": { +"description": "Width of the bounding box in pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Bucket": { +"description": "Bucket is represented as a range, along with replacement values.", +"id": "GooglePrivacyDlpV2Bucket", +"properties": { +"max": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Upper bound of the range, exclusive; type must match min." +}, +"min": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Lower bound of the range, inclusive. Type should be the same as max if used." +}, +"replacementValue": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Required. Replacement value for this bucket." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2BucketingConfig": { +"description": "Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -> LOW, 31-65 -> MEDIUM, 66-100 -> HIGH. This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to learn more.", +"id": "GooglePrivacyDlpV2BucketingConfig", +"properties": { +"buckets": { +"description": "Set of buckets. Ranges must be non-overlapping.", +"items": { +"$ref": "GooglePrivacyDlpV2Bucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ByteContentItem": { +"description": "Container for bytes to inspect or redact.", +"id": "GooglePrivacyDlpV2ByteContentItem", +"properties": { +"data": { +"description": "Content data to inspect or redact.", +"format": "byte", +"type": "string" +}, +"type": { +"description": "The type of data stored in the bytes string. Default will be TEXT_UTF8.", +"enum": [ +"BYTES_TYPE_UNSPECIFIED", +"IMAGE", +"IMAGE_JPEG", +"IMAGE_BMP", +"IMAGE_PNG", +"IMAGE_SVG", +"TEXT_UTF8", +"WORD_DOCUMENT", +"PDF", +"POWERPOINT_DOCUMENT", +"EXCEL_DOCUMENT", +"AVRO", +"CSV", +"TSV", +"AUDIO", +"VIDEO", +"EXECUTABLE", +"AI_MODEL" +], +"enumDescriptions": [ +"Unused", +"Any image type.", +"jpeg", +"bmp", +"png", +"svg", +"plain text", +"docx, docm, dotx, dotm", +"pdf", +"pptx, pptm, potx, potm, pot", +"xlsx, xlsm, xltx, xltm", +"avro", +"csv", +"tsv", +"Audio file types. Only used for profiling.", +"Video file types. Only used for profiling.", +"Executable file types. Only used for profiling.", +"AI model file types. Only used for profiling." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CancelDlpJobRequest": { +"description": "The request message for canceling a DLP job.", +"id": "GooglePrivacyDlpV2CancelDlpJobRequest", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2CategoricalStatsConfig": { +"description": "Compute numerical stats over an individual column, including number of distinct values and value count distribution.", +"id": "GooglePrivacyDlpV2CategoricalStatsConfig", +"properties": { +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Field to compute categorical stats on. All column types are supported except for arrays and structs. However, it may be more informative to use NumericalStats when the field type is supported, depending on the data." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CategoricalStatsHistogramBucket": { +"description": "Histogram of value frequencies in the column.", +"id": "GooglePrivacyDlpV2CategoricalStatsHistogramBucket", +"properties": { +"bucketSize": { +"description": "Total number of values in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValueCount": { +"description": "Total number of distinct values in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValues": { +"description": "Sample of value frequencies in this bucket. The total number of values returned per bucket is capped at 20.", +"items": { +"$ref": "GooglePrivacyDlpV2ValueFrequency" +}, +"type": "array" +}, +"valueFrequencyLowerBound": { +"description": "Lower bound on the value frequency of the values in this bucket.", +"format": "int64", +"type": "string" +}, +"valueFrequencyUpperBound": { +"description": "Upper bound on the value frequency of the values in this bucket.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CategoricalStatsResult": { +"description": "Result of the categorical stats computation.", +"id": "GooglePrivacyDlpV2CategoricalStatsResult", +"properties": { +"valueFrequencyHistogramBuckets": { +"description": "Histogram of value frequencies in the column.", +"items": { +"$ref": "GooglePrivacyDlpV2CategoricalStatsHistogramBucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CharacterMaskConfig": { +"description": "Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we'll attempt to preserve the original data's type. (This allows you to take a long like 123 and modify it to a string like **3.", +"id": "GooglePrivacyDlpV2CharacterMaskConfig", +"properties": { +"charactersToIgnore": { +"description": "When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.", +"items": { +"$ref": "GooglePrivacyDlpV2CharsToIgnore" +}, +"type": "array" +}, +"maskingCharacter": { +"description": "Character to use to mask the sensitive values\u2014for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.", +"type": "string" +}, +"numberToMask": { +"description": "Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally. If `number_to_mask` is negative, this denotes inverse masking. Cloud DLP masks all but a number of characters. For example, suppose you have the following values: - `masking_character` is `*` - `number_to_mask` is `-4` - `reverse_order` is `false` - `CharsToIgnore` includes `-` - Input string is `1234-5678-9012-3456` The resulting de-identified string is `****-****-****-3456`. Cloud DLP masks all but the last four characters. If `reverse_order` is `true`, all but the first four characters are masked as `1234-****-****-****`.", +"format": "int32", +"type": "integer" +}, +"reverseOrder": { +"description": "Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.", +"type": "boolean" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CharsToIgnore": { +"description": "Characters to skip when doing deidentification of a value. These will be left alone and skipped.", +"id": "GooglePrivacyDlpV2CharsToIgnore", +"properties": { +"charactersToSkip": { +"description": "Characters to not transform when masking.", +"type": "string" +}, +"commonCharactersToIgnore": { +"description": "Common characters to not transform when masking. Useful to avoid removing punctuation.", +"enum": [ +"COMMON_CHARS_TO_IGNORE_UNSPECIFIED", +"NUMERIC", +"ALPHA_UPPER_CASE", +"ALPHA_LOWER_CASE", +"PUNCTUATION", +"WHITESPACE" +], +"enumDescriptions": [ +"Unused.", +"0-9", +"A-Z", +"a-z", +"US Punctuation, one of !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", +"Whitespace character, one of [ \\t\\n\\x0B\\f\\r]" +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudSqlDiscoveryTarget": { +"description": "Target used to match against for discovery with Cloud SQL tables.", +"id": "GooglePrivacyDlpV2CloudSqlDiscoveryTarget", +"properties": { +"conditions": { +"$ref": "GooglePrivacyDlpV2DiscoveryCloudSqlConditions", +"description": "In addition to matching the filter, these conditions must be true before a profile is generated." +}, +"disabled": { +"$ref": "GooglePrivacyDlpV2Disabled", +"description": "Disable profiling for database resources that match this filter." +}, +"filter": { +"$ref": "GooglePrivacyDlpV2DiscoveryCloudSqlFilter", +"description": "Required. The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table." +}, +"generationCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryCloudSqlGenerationCadence", +"description": "How often and when to update profiles. New tables that match both the filter and conditions are scanned as quickly as possible depending on system capacity." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudSqlIamCredential": { +"description": "Use IAM authentication to connect. This requires the Cloud SQL IAM feature to be enabled on the instance, which is not the default for Cloud SQL. See https://cloud.google.com/sql/docs/postgres/authentication and https://cloud.google.com/sql/docs/mysql/authentication.", +"id": "GooglePrivacyDlpV2CloudSqlIamCredential", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudSqlProperties": { +"description": "Cloud SQL connection properties.", +"id": "GooglePrivacyDlpV2CloudSqlProperties", +"properties": { +"cloudSqlIam": { +"$ref": "GooglePrivacyDlpV2CloudSqlIamCredential", +"description": "Built-in IAM authentication (must be configured in Cloud SQL)." +}, +"connectionName": { +"description": "Optional. Immutable. The Cloud SQL instance for which the connection is defined. Only one connection per instance is allowed. This can only be set at creation time, and cannot be updated. It is an error to use a connection_name from different project or region than the one that holds the connection. For example, a Connection resource for Cloud SQL connection_name `project-id:us-central1:sql-instance` must be created under the parent `projects/project-id/locations/us-central1`", +"type": "string" +}, +"databaseEngine": { +"description": "Required. The database engine used by the Cloud SQL instance that this connection configures.", +"enum": [ +"DATABASE_ENGINE_UNKNOWN", +"DATABASE_ENGINE_MYSQL", +"DATABASE_ENGINE_POSTGRES" +], +"enumDescriptions": [ +"An engine that is not currently supported by Sensitive Data Protection.", +"Cloud SQL for MySQL instance.", +"Cloud SQL for PostgreSQL instance." +], +"type": "string" +}, +"maxConnections": { +"description": "Required. The DLP API will limit its connections to max_connections. Must be 2 or greater.", +"format": "int32", +"type": "integer" +}, +"usernamePassword": { +"$ref": "GooglePrivacyDlpV2SecretManagerCredential", +"description": "A username and password stored in Secret Manager." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStorageDiscoveryTarget": { +"description": "Target used to match against for discovery with Cloud Storage buckets.", +"id": "GooglePrivacyDlpV2CloudStorageDiscoveryTarget", +"properties": { +"conditions": { +"$ref": "GooglePrivacyDlpV2DiscoveryFileStoreConditions", +"description": "Optional. In addition to matching the filter, these conditions must be true before a profile is generated." +}, +"disabled": { +"$ref": "GooglePrivacyDlpV2Disabled", +"description": "Optional. Disable profiling for buckets that match this filter." +}, +"filter": { +"$ref": "GooglePrivacyDlpV2DiscoveryCloudStorageFilter", +"description": "Required. The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket." +}, +"generationCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryCloudStorageGenerationCadence", +"description": "Optional. How often and when to update profiles. New buckets that match both the filter and conditions are scanned as quickly as possible depending on system capacity." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStorageFileSet": { +"description": "Message representing a set of files in Cloud Storage.", +"id": "GooglePrivacyDlpV2CloudStorageFileSet", +"properties": { +"url": { +"description": "The url, in the format `gs:///`. Trailing wildcard in the path is allowed.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStorageOptions": { +"description": "Options defining a file or a set of files within a Cloud Storage bucket.", +"id": "GooglePrivacyDlpV2CloudStorageOptions", +"properties": { +"bytesLimitPerFile": { +"description": "Max number of bytes to scan from a file. If a scanned file's size is bigger than this value then the rest of the bytes are omitted. Only one of `bytes_limit_per_file` and `bytes_limit_per_file_percent` can be specified. This field can't be set if de-identification is requested. For certain file types, setting this field has no effect. For more information, see [Limits on bytes scanned per file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file).", +"format": "int64", +"type": "string" +}, +"bytesLimitPerFilePercent": { +"description": "Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. This field can't be set if de-identification is requested. For certain file types, setting this field has no effect. For more information, see [Limits on bytes scanned per file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file).", +"format": "int32", +"type": "integer" +}, +"fileSet": { +"$ref": "GooglePrivacyDlpV2FileSet", +"description": "The set of one or more files to scan." +}, +"fileTypes": { +"description": "List of file type groups to include in the scan. If empty, all files are scanned and available data format processors are applied. In addition, the binary content of the selected files is always scanned as well. Images are scanned only as binary if the specified region does not support image inspection and no file_types were specified. Image inspection is restricted to 'global', 'us', 'asia', and 'europe'.", +"items": { +"enum": [ +"FILE_TYPE_UNSPECIFIED", +"BINARY_FILE", +"TEXT_FILE", +"IMAGE", +"WORD", +"PDF", +"AVRO", +"CSV", +"TSV", +"POWERPOINT", +"EXCEL" +], +"enumDescriptions": [ +"Includes all files.", +"Includes all file extensions not covered by another entry. Binary scanning attempts to convert the content of the file to utf_8 to scan the file. If you wish to avoid this fall back, specify one or more of the other file types in your storage scan.", +"Included file extensions: asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, shtml, shtm, xhtml, lhs, ics, ini, java, js, json, jsonl, kix, kml, ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml.", +"Included file extensions: bmp, gif, jpg, jpeg, jpe, png. Setting bytes_limit_per_file or bytes_limit_per_file_percent has no effect on image files. Image inspection is restricted to the `global`, `us`, `asia`, and `europe` regions.", +"Microsoft Word files larger than 30 MB will be scanned as binary files. Included file extensions: docx, dotx, docm, dotm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Word files.", +"PDF files larger than 30 MB will be scanned as binary files. Included file extensions: pdf. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PDF files.", +"Included file extensions: avro", +"Included file extensions: csv", +"Included file extensions: tsv", +"Microsoft PowerPoint files larger than 30 MB will be scanned as binary files. Included file extensions: pptx, pptm, potx, potm, pot. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PowerPoint files.", +"Microsoft Excel files larger than 30 MB will be scanned as binary files. Included file extensions: xlsx, xlsm, xltx, xltm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Excel files." +], +"type": "string" +}, +"type": "array" +}, +"filesLimitPercent": { +"description": "Limits the number of files to scan to this percentage of the input FileSet. Number of files scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0.", +"format": "int32", +"type": "integer" +}, +"sampleMethod": { +"description": "How to sample the data.", +"enum": [ +"SAMPLE_METHOD_UNSPECIFIED", +"TOP", +"RANDOM_START" +], +"enumDescriptions": [ +"No sampling.", +"Scan from the top (default).", +"For each file larger than bytes_limit_per_file, randomly pick the offset to start scanning. The scanned bytes are contiguous." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStoragePath": { +"description": "Message representing a single file or path in Cloud Storage.", +"id": "GooglePrivacyDlpV2CloudStoragePath", +"properties": { +"path": { +"description": "A URL representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStorageRegex": { +"description": "A pattern to match against one or more file stores. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", +"id": "GooglePrivacyDlpV2CloudStorageRegex", +"properties": { +"bucketNameRegex": { +"description": "Optional. Regex to test the bucket name against. If empty, all buckets match. Example: \"marketing2021\" or \"(marketing)\\d{4}\" will both match the bucket gs://marketing2021", +"type": "string" +}, +"projectIdRegex": { +"description": "Optional. For organizations, if unset, will match all projects.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStorageRegexFileSet": { +"description": "Message representing a set of files in a Cloud Storage bucket. Regular expressions are used to allow fine-grained control over which files in the bucket to include. Included files are those that match at least one item in `include_regex` and do not match any items in `exclude_regex`. Note that a file that matches items from both lists will _not_ be included. For a match to occur, the entire file path (i.e., everything in the url after the bucket name) must match the regular expression. For example, given the input `{bucket_name: \"mybucket\", include_regex: [\"directory1/.*\"], exclude_regex: [\"directory1/excluded.*\"]}`: * `gs://mybucket/directory1/myfile` will be included * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches across `/`) * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the full path doesn't match any items in `include_regex`) * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path matches an item in `exclude_regex`) If `include_regex` is left empty, it will match all files by default (this is equivalent to setting `include_regex: [\".*\"]`). Some other common use cases: * `{bucket_name: \"mybucket\", exclude_regex: [\".*\\.pdf\"]}` will include all files in `mybucket` except for .pdf files * `{bucket_name: \"mybucket\", include_regex: [\"directory/[^/]+\"]}` will include all files directly under `gs://mybucket/directory/`, without matching across `/`", +"id": "GooglePrivacyDlpV2CloudStorageRegexFileSet", +"properties": { +"bucketName": { +"description": "The name of a Cloud Storage bucket. Required.", +"type": "string" +}, +"excludeRegex": { +"description": "A list of regular expressions matching file paths to exclude. All files in the bucket that match at least one of these regular expressions will be excluded from the scan. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includeRegex": { +"description": "A list of regular expressions matching file paths to include. All files in the bucket that match at least one of these regular expressions will be included in the set of files, except for those that also match an item in `exclude_regex`. Leaving this field empty will match all files by default (this is equivalent to including `.*` in the list). Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CloudStorageResourceReference": { +"description": "Identifies a single Cloud Storage bucket.", +"id": "GooglePrivacyDlpV2CloudStorageResourceReference", +"properties": { +"bucketName": { +"description": "Required. The bucket to scan.", +"type": "string" +}, +"projectId": { +"description": "Required. If within a project-level config, then this must match the config's project id.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Color": { +"description": "Represents a color in the RGB color space.", +"id": "GooglePrivacyDlpV2Color", +"properties": { +"blue": { +"description": "The amount of blue in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"green": { +"description": "The amount of green in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"red": { +"description": "The amount of red in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ColumnDataProfile": { +"description": "The profile for a scanned column within a table.", +"id": "GooglePrivacyDlpV2ColumnDataProfile", +"properties": { +"column": { +"description": "The name of the column.", +"type": "string" +}, +"columnInfoType": { +"$ref": "GooglePrivacyDlpV2InfoTypeSummary", +"description": "If it's been determined this column can be identified as a single type, this will be set. Otherwise the column either has unidentifiable content or mixed types." +}, +"columnType": { +"description": "The data type of a given column.", +"enum": [ +"COLUMN_DATA_TYPE_UNSPECIFIED", +"TYPE_INT64", +"TYPE_BOOL", +"TYPE_FLOAT64", +"TYPE_STRING", +"TYPE_BYTES", +"TYPE_TIMESTAMP", +"TYPE_DATE", +"TYPE_TIME", +"TYPE_DATETIME", +"TYPE_GEOGRAPHY", +"TYPE_NUMERIC", +"TYPE_RECORD", +"TYPE_BIGNUMERIC", +"TYPE_JSON", +"TYPE_INTERVAL", +"TYPE_RANGE_DATE", +"TYPE_RANGE_DATETIME", +"TYPE_RANGE_TIMESTAMP" +], +"enumDescriptions": [ +"Invalid type.", +"Encoded as a string in decimal format.", +"Encoded as a boolean \"false\" or \"true\".", +"Encoded as a number, or string \"NaN\", \"Infinity\" or \"-Infinity\".", +"Encoded as a string value.", +"Encoded as a base64 string per RFC 4648, section 4.", +"Encoded as an RFC 3339 timestamp with mandatory \"Z\" time zone string: 1985-04-12T23:20:50.52Z", +"Encoded as RFC 3339 full-date format string: 1985-04-12", +"Encoded as RFC 3339 partial-time format string: 23:20:50.52", +"Encoded as RFC 3339 full-date \"T\" partial-time: 1985-04-12T23:20:50.52", +"Encoded as WKT", +"Encoded as a decimal string.", +"Container of ordered fields, each with a type and field name.", +"Decimal type.", +"Json type.", +"Interval type.", +"`Range` type.", +"`Range` type.", +"`Range` type." +], +"type": "string" +}, +"dataRiskLevel": { +"$ref": "GooglePrivacyDlpV2DataRiskLevel", +"description": "The data risk level for this column." +}, +"datasetId": { +"description": "The BigQuery dataset ID, if the resource profiled is a BigQuery table.", +"type": "string" +}, +"datasetLocation": { +"description": "If supported, the location where the dataset's data is stored. See https://cloud.google.com/bigquery/docs/locations for supported BigQuery locations.", +"type": "string" +}, +"datasetProjectId": { +"description": "The Google Cloud project ID that owns the profiled resource.", +"type": "string" +}, +"estimatedNullPercentage": { +"description": "Approximate percentage of entries being null in the column.", +"enum": [ +"NULL_PERCENTAGE_LEVEL_UNSPECIFIED", +"NULL_PERCENTAGE_VERY_LOW", +"NULL_PERCENTAGE_LOW", +"NULL_PERCENTAGE_MEDIUM", +"NULL_PERCENTAGE_HIGH" +], +"enumDescriptions": [ +"Unused.", +"Very few null entries.", +"Some null entries.", +"A few null entries.", +"A lot of null entries." +], +"type": "string" +}, +"estimatedUniquenessScore": { +"description": "Approximate uniqueness of the column.", +"enum": [ +"UNIQUENESS_SCORE_LEVEL_UNSPECIFIED", +"UNIQUENESS_SCORE_LOW", +"UNIQUENESS_SCORE_MEDIUM", +"UNIQUENESS_SCORE_HIGH" +], +"enumDescriptions": [ +"Some columns do not have estimated uniqueness. Possible reasons include having too few values.", +"Low uniqueness, possibly a boolean, enum or similiarly typed column.", +"Medium uniqueness.", +"High uniqueness, possibly a column of free text or unique identifiers." +], +"type": "string" +}, +"freeTextScore": { +"description": "The likelihood that this column contains free-form text. A value close to 1 may indicate the column is likely to contain free-form or natural language text. Range in 0-1.", +"format": "double", +"type": "number" +}, +"name": { +"description": "The name of the profile.", +"type": "string" +}, +"otherMatches": { +"description": "Other types found within this column. List will be unordered.", +"items": { +"$ref": "GooglePrivacyDlpV2OtherInfoTypeSummary" +}, +"type": "array" +}, +"policyState": { +"description": "Indicates if a policy tag has been applied to the column.", +"enum": [ +"COLUMN_POLICY_STATE_UNSPECIFIED", +"COLUMN_POLICY_TAGGED" +], +"enumDescriptions": [ +"No policy tags.", +"Column has policy tag applied." +], +"type": "string" +}, +"profileLastGenerated": { +"description": "The last time the profile was generated.", +"format": "google-datetime", +"type": "string" +}, +"profileStatus": { +"$ref": "GooglePrivacyDlpV2ProfileStatus", +"description": "Success or error status from the most recent profile generation attempt. May be empty if the profile is still being generated." +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "The sensitivity of this column." +}, +"state": { +"description": "State of a profile.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"Unused.", +"The profile is currently running. Once a profile has finished it will transition to DONE.", +"The profile is no longer generating. If profile_status.status.code is 0, the profile succeeded, otherwise, it failed." +], +"type": "string" +}, +"tableDataProfile": { +"description": "The resource name of the table data profile.", +"type": "string" +}, +"tableFullResource": { +"description": "The resource name of the resource this column is within.", +"type": "string" +}, +"tableId": { +"description": "The table ID.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Condition": { +"description": "The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of 'HH:mm:ss'. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.", +"id": "GooglePrivacyDlpV2Condition", +"properties": { +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Required. Field within the record this condition is evaluated against." +}, +"operator": { +"description": "Required. Operator used to compare the field or infoType to the value.", +"enum": [ +"RELATIONAL_OPERATOR_UNSPECIFIED", +"EQUAL_TO", +"NOT_EQUAL_TO", +"GREATER_THAN", +"LESS_THAN", +"GREATER_THAN_OR_EQUALS", +"LESS_THAN_OR_EQUALS", +"EXISTS" +], +"enumDescriptions": [ +"Unused", +"Equal. Attempts to match even with incompatible types.", +"Not equal to. Attempts to match even with incompatible types.", +"Greater than.", +"Less than.", +"Greater than or equals.", +"Less than or equals.", +"Exists" +], +"type": "string" +}, +"value": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Value to compare against. [Mandatory, except for `EXISTS` tests.]" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Conditions": { +"description": "A collection of conditions.", +"id": "GooglePrivacyDlpV2Conditions", +"properties": { +"conditions": { +"description": "A collection of conditions.", +"items": { +"$ref": "GooglePrivacyDlpV2Condition" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Connection": { +"description": "A data connection to allow the DLP API to profile data in locations that require additional configuration.", +"id": "GooglePrivacyDlpV2Connection", +"properties": { +"cloudSql": { +"$ref": "GooglePrivacyDlpV2CloudSqlProperties", +"description": "Connect to a Cloud SQL instance." +}, +"errors": { +"description": "Output only. Set if status == ERROR, to provide additional details. Will store the last 10 errors sorted with the most recent first.", +"items": { +"$ref": "GooglePrivacyDlpV2Error" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. Name of the connection: `projects/{project}/locations/{location}/connections/{name}`.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Required. The connection's state in its lifecycle.", +"enum": [ +"CONNECTION_STATE_UNSPECIFIED", +"MISSING_CREDENTIALS", +"AVAILABLE", +"ERROR" +], +"enumDescriptions": [ +"Unused", +"The DLP API automatically created this connection during an initial scan, and it is awaiting full configuration by a user.", +"A configured connection that has not encountered any errors.", +"A configured connection that encountered errors during its last use. It will not be used again until it is set to AVAILABLE. If the resolution requires external action, then the client must send a request to set the status to AVAILABLE when the connection is ready for use. If the resolution doesn't require external action, then any changes to the connection properties will automatically mark it as AVAILABLE." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Container": { +"description": "Represents a container that may contain DLP findings. Examples of a container include a file, table, or database record.", +"id": "GooglePrivacyDlpV2Container", +"properties": { +"fullPath": { +"description": "A string representation of the full container name. Examples: - BigQuery: 'Project:DataSetId.TableId' - Cloud Storage: 'gs://Bucket/folders/filename.txt'", +"type": "string" +}, +"projectId": { +"description": "Project where the finding was found. Can be different from the project that owns the finding.", +"type": "string" +}, +"relativePath": { +"description": "The rest of the path after the root. Examples: - For BigQuery table `project_id:dataset_id.table_id`, the relative path is `table_id` - For Cloud Storage file `gs://bucket/folder/filename.txt`, the relative path is `folder/filename.txt`", +"type": "string" +}, +"rootPath": { +"description": "The root of the container. Examples: - For BigQuery table `project_id:dataset_id.table_id`, the root is `dataset_id` - For Cloud Storage file `gs://bucket/folder/filename.txt`, the root is `gs://bucket`", +"type": "string" +}, +"type": { +"description": "Container type, for example BigQuery or Cloud Storage.", +"type": "string" +}, +"updateTime": { +"description": "Findings container modification timestamp, if applicable. For Cloud Storage, this field contains the last file modification timestamp. For a BigQuery table, this field contains the last_modified_time property. For Datastore, this field isn't populated.", +"format": "google-datetime", +"type": "string" +}, +"version": { +"description": "Findings container version, if available (\"generation\" for Cloud Storage).", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ContentItem": { +"description": "Type of content to inspect.", +"id": "GooglePrivacyDlpV2ContentItem", +"properties": { +"byteItem": { +"$ref": "GooglePrivacyDlpV2ByteContentItem", +"description": "Content data to inspect or redact. Replaces `type` and `data`." +}, +"table": { +"$ref": "GooglePrivacyDlpV2Table", +"description": "Structured content for inspection. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-text#inspecting_a_table to learn more." +}, +"value": { +"description": "String data to inspect or redact.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ContentLocation": { +"description": "Precise location of the finding within a document, record, image, or metadata container.", +"id": "GooglePrivacyDlpV2ContentLocation", +"properties": { +"containerName": { +"description": "Name of the container where the finding is located. The top level name is the source file name or table name. Names of some common storage containers are formatted as follows: * BigQuery tables: `{project_id}:{dataset_id}.{table_id}` * Cloud Storage files: `gs://{bucket}/{path}` * Datastore namespace: {namespace} Nested names could be absent if the embedded object has no string identifier (for example, an image contained within a document).", +"type": "string" +}, +"containerTimestamp": { +"description": "Finding container modification timestamp, if applicable. For Cloud Storage, this field contains the last file modification timestamp. For a BigQuery table, this field contains the last_modified_time property. For Datastore, this field isn't populated.", +"format": "google-datetime", +"type": "string" +}, +"containerVersion": { +"description": "Finding container version, if available (\"generation\" for Cloud Storage).", +"type": "string" +}, +"documentLocation": { +"$ref": "GooglePrivacyDlpV2DocumentLocation", +"description": "Location data for document files." +}, +"imageLocation": { +"$ref": "GooglePrivacyDlpV2ImageLocation", +"description": "Location within an image's pixels." +}, +"metadataLocation": { +"$ref": "GooglePrivacyDlpV2MetadataLocation", +"description": "Location within the metadata for inspected content." +}, +"recordLocation": { +"$ref": "GooglePrivacyDlpV2RecordLocation", +"description": "Location within a row or record of a database table." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateConnectionRequest": { +"description": "Request message for CreateConnection.", +"id": "GooglePrivacyDlpV2CreateConnectionRequest", +"properties": { +"connection": { +"$ref": "GooglePrivacyDlpV2Connection", +"description": "Required. The connection resource." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateDeidentifyTemplateRequest": { +"description": "Request message for CreateDeidentifyTemplate.", +"id": "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest", +"properties": { +"deidentifyTemplate": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate", +"description": "Required. The DeidentifyTemplate to create." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"templateId": { +"description": "The template id can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateDiscoveryConfigRequest": { +"description": "Request message for CreateDiscoveryConfig.", +"id": "GooglePrivacyDlpV2CreateDiscoveryConfigRequest", +"properties": { +"configId": { +"description": "The config ID can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", +"type": "string" +}, +"discoveryConfig": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig", +"description": "Required. The DiscoveryConfig to create." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateDlpJobRequest": { +"description": "Request message for CreateDlpJobRequest. Used to initiate long running jobs such as calculating risk metrics or inspecting Google Cloud Storage.", +"id": "GooglePrivacyDlpV2CreateDlpJobRequest", +"properties": { +"inspectJob": { +"$ref": "GooglePrivacyDlpV2InspectJobConfig", +"description": "An inspection job scans a storage repository for InfoTypes." +}, +"jobId": { +"description": "The job id can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", +"type": "string" +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"riskJob": { +"$ref": "GooglePrivacyDlpV2RiskAnalysisJobConfig", +"description": "A risk analysis job calculates re-identification risk metrics for a BigQuery table." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateInspectTemplateRequest": { +"description": "Request message for CreateInspectTemplate.", +"id": "GooglePrivacyDlpV2CreateInspectTemplateRequest", +"properties": { +"inspectTemplate": { +"$ref": "GooglePrivacyDlpV2InspectTemplate", +"description": "Required. The InspectTemplate to create." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"templateId": { +"description": "The template id can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateJobTriggerRequest": { +"description": "Request message for CreateJobTrigger.", +"id": "GooglePrivacyDlpV2CreateJobTriggerRequest", +"properties": { +"jobTrigger": { +"$ref": "GooglePrivacyDlpV2JobTrigger", +"description": "Required. The JobTrigger to create." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"triggerId": { +"description": "The trigger id can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CreateStoredInfoTypeRequest": { +"description": "Request message for CreateStoredInfoType.", +"id": "GooglePrivacyDlpV2CreateStoredInfoTypeRequest", +"properties": { +"config": { +"$ref": "GooglePrivacyDlpV2StoredInfoTypeConfig", +"description": "Required. Configuration of the storedInfoType to create." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"storedInfoTypeId": { +"description": "The storedInfoType ID can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CryptoDeterministicConfig": { +"description": "Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.", +"id": "GooglePrivacyDlpV2CryptoDeterministicConfig", +"properties": { +"context": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and unstructured `ContentItem`s." +}, +"cryptoKey": { +"$ref": "GooglePrivacyDlpV2CryptoKey", +"description": "The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use." +}, +"surrogateInfoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: \u29ddMY_TOKEN_TYPE." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CryptoHashConfig": { +"description": "Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to learn more.", +"id": "GooglePrivacyDlpV2CryptoHashConfig", +"properties": { +"cryptoKey": { +"$ref": "GooglePrivacyDlpV2CryptoKey", +"description": "The key used by the hash function." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CryptoKey": { +"description": "This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by Cloud Key Management Service (Cloud KMS). When using Cloud KMS to wrap or unwrap a DEK, be sure to set an appropriate IAM policy on the KEK to ensure an attacker cannot unwrap the DEK.", +"id": "GooglePrivacyDlpV2CryptoKey", +"properties": { +"kmsWrapped": { +"$ref": "GooglePrivacyDlpV2KmsWrappedCryptoKey", +"description": "Key wrapped using Cloud KMS" +}, +"transient": { +"$ref": "GooglePrivacyDlpV2TransientCryptoKey", +"description": "Transient crypto key" +}, +"unwrapped": { +"$ref": "GooglePrivacyDlpV2UnwrappedCryptoKey", +"description": "Unwrapped crypto key" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig": { +"description": "Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. FPE incurs significant latency costs.", +"id": "GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig", +"properties": { +"commonAlphabet": { +"description": "Common alphabets.", +"enum": [ +"FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED", +"NUMERIC", +"HEXADECIMAL", +"UPPER_CASE_ALPHA_NUMERIC", +"ALPHA_NUMERIC" +], +"enumDescriptions": [ +"Unused.", +"`[0-9]` (radix of 10)", +"`[0-9A-F]` (radix of 16)", +"`[0-9A-Z]` (radix of 36)", +"`[0-9A-Za-z]` (radix of 62)" +], +"type": "string" +}, +"context": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and unstructured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2" +}, +"cryptoKey": { +"$ref": "GooglePrivacyDlpV2CryptoKey", +"description": "Required. The key used by the encryption algorithm." +}, +"customAlphabet": { +"description": "This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/``", +"type": "string" +}, +"radix": { +"description": "The native way to select the alphabet. Must be in the range [2, 95].", +"format": "int32", +"type": "integer" +}, +"surrogateInfoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: \u29ddMY_TOKEN_TYPE" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2CustomInfoType": { +"description": "Custom information type provided by the user. Used to find domain-specific sensitive information configurable to the data in question.", +"id": "GooglePrivacyDlpV2CustomInfoType", +"properties": { +"detectionRules": { +"description": "Set of detection rules to apply to all findings of this CustomInfoType. Rules are applied in order that they are specified. Not supported for the `surrogate_type` CustomInfoType.", +"items": { +"$ref": "GooglePrivacyDlpV2DetectionRule" +}, +"type": "array" +}, +"dictionary": { +"$ref": "GooglePrivacyDlpV2Dictionary", +"description": "A list of phrases to detect as a CustomInfoType." +}, +"exclusionType": { +"description": "If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be returned. It still can be used for rules matching.", +"enum": [ +"EXCLUSION_TYPE_UNSPECIFIED", +"EXCLUSION_TYPE_EXCLUDE" +], +"enumDescriptions": [ +"A finding of this custom info type will not be excluded from results.", +"A finding of this custom info type will be excluded from final results, but can still affect rule execution." +], +"type": "string" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "CustomInfoType can either be a new infoType, or an extension of built-in infoType, when the name matches one of existing infoTypes and that infoType is specified in `InspectContent.info_types` field. Specifying the latter adds findings to the one detected by the system. If built-in info type is not specified in `InspectContent.info_types` list then the name is treated as a custom info type." +}, +"likelihood": { +"description": "Likelihood to return for this CustomInfoType. This base value can be altered by a detection rule if the finding meets the criteria specified by the rule. Defaults to `VERY_LIKELY` if not specified.", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Default value; same as POSSIBLE.", +"Highest chance of a false positive.", +"High chance of a false positive.", +"Some matching signals. The default value.", +"Low chance of a false positive.", +"Confidence level is high. Lowest chance of a false positive." +], +"type": "string" +}, +"regex": { +"$ref": "GooglePrivacyDlpV2Regex", +"description": "Regular expression based CustomInfoType." +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "Sensitivity for this CustomInfoType. If this CustomInfoType extends an existing InfoType, the sensitivity here will take precedence over that of the original InfoType. If unset for a CustomInfoType, it will default to HIGH. This only applies to data profiling." +}, +"storedType": { +"$ref": "GooglePrivacyDlpV2StoredType", +"description": "Load an existing `StoredInfoType` resource for use in `InspectDataSource`. Not currently supported in `InspectContent`." +}, +"surrogateType": { +"$ref": "GooglePrivacyDlpV2SurrogateType", +"description": "Message for detecting output from deidentification transformations that support reversing." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfileAction": { +"description": "A task to execute when a data profile has been generated.", +"id": "GooglePrivacyDlpV2DataProfileAction", +"properties": { +"exportData": { +"$ref": "GooglePrivacyDlpV2Export", +"description": "Export data profiles into a provided location." +}, +"pubSubNotification": { +"$ref": "GooglePrivacyDlpV2PubSubNotification", +"description": "Publish a message into the Pub/Sub topic." +}, +"publishToChronicle": { +"$ref": "GooglePrivacyDlpV2PublishToChronicle", +"description": "Publishes generated data profiles to Google Security Operations. For more information, see [Use Sensitive Data Protection data in context-aware analytics](https://cloud.google.com/chronicle/docs/detection/usecase-dlp-high-risk-user-download)." +}, +"publishToScc": { +"$ref": "GooglePrivacyDlpV2PublishToSecurityCommandCenter", +"description": "Publishes findings to Security Command Center for each data profile." +}, +"tagResources": { +"$ref": "GooglePrivacyDlpV2TagResources", +"description": "Tags the profiled resources with the specified tag values." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfileBigQueryRowSchema": { +"description": "The schema of data to be saved to the BigQuery table when the `DataProfileAction` is enabled.", +"id": "GooglePrivacyDlpV2DataProfileBigQueryRowSchema", +"properties": { +"columnProfile": { +"$ref": "GooglePrivacyDlpV2ColumnDataProfile", +"description": "Column data profile column" +}, +"fileStoreProfile": { +"$ref": "GooglePrivacyDlpV2FileStoreDataProfile", +"description": "File store data profile column." +}, +"tableProfile": { +"$ref": "GooglePrivacyDlpV2TableDataProfile", +"description": "Table data profile column" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfileConfigSnapshot": { +"description": "Snapshot of the configurations used to generate the profile.", +"id": "GooglePrivacyDlpV2DataProfileConfigSnapshot", +"properties": { +"dataProfileJob": { +"$ref": "GooglePrivacyDlpV2DataProfileJobConfig", +"deprecated": true, +"description": "A copy of the configuration used to generate this profile. This is deprecated, and the DiscoveryConfig field is preferred moving forward. DataProfileJobConfig will still be written here for Discovery in BigQuery for backwards compatibility, but will not be updated with new fields, while DiscoveryConfig will." +}, +"discoveryConfig": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig", +"description": "A copy of the configuration used to generate this profile." +}, +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "A copy of the inspection config used to generate this profile. This is a copy of the inspect_template specified in `DataProfileJobConfig`." +}, +"inspectTemplateModifiedTime": { +"description": "Timestamp when the template was modified", +"format": "google-datetime", +"type": "string" +}, +"inspectTemplateName": { +"description": "Name of the inspection template used to generate this profile", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfileJobConfig": { +"description": "Configuration for setting up a job to scan resources for profile generation. Only one data profile configuration may exist per organization, folder, or project. The generated data profiles are retained according to the [data retention policy] (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).", +"id": "GooglePrivacyDlpV2DataProfileJobConfig", +"properties": { +"dataProfileActions": { +"description": "Actions to execute at the completion of the job.", +"items": { +"$ref": "GooglePrivacyDlpV2DataProfileAction" +}, +"type": "array" +}, +"inspectTemplates": { +"description": "Detection logic for profile generation. Not all template features are used by profiles. FindingLimits, include_quote and exclude_info_types have no impact on data profiling. Multiple templates may be provided if there is data in multiple regions. At most one template must be specified per-region (including \"global\"). Each region is scanned using the applicable template. If no region-specific template is specified, but a \"global\" template is specified, it will be copied to that region and used instead. If no global or region-specific template is provided for a region with data, that region's data will not be scanned. For more information, see https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency.", +"items": { +"type": "string" +}, +"type": "array" +}, +"location": { +"$ref": "GooglePrivacyDlpV2DataProfileLocation", +"description": "The data to scan." +}, +"otherCloudStartingLocation": { +"$ref": "GooglePrivacyDlpV2OtherCloudDiscoveryStartingLocation", +"description": "Must be set only when scanning other clouds." +}, +"projectId": { +"description": "The project that will run the scan. The DLP service account that exists within this project must have access to all resources that are profiled, and the DLP API must be enabled.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfileLocation": { +"description": "The data that will be profiled.", +"id": "GooglePrivacyDlpV2DataProfileLocation", +"properties": { +"folderId": { +"description": "The ID of the folder within an organization to scan.", +"format": "int64", +"type": "string" +}, +"organizationId": { +"description": "The ID of an organization to scan.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfilePubSubCondition": { +"description": "A condition for determining whether a Pub/Sub should be triggered.", +"id": "GooglePrivacyDlpV2DataProfilePubSubCondition", +"properties": { +"expressions": { +"$ref": "GooglePrivacyDlpV2PubSubExpressions", +"description": "An expression." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataProfilePubSubMessage": { +"description": "Pub/Sub topic message for a DataProfileAction.PubSubNotification event. To receive a message of protocol buffer schema type, convert the message data to an object of this proto class.", +"id": "GooglePrivacyDlpV2DataProfilePubSubMessage", +"properties": { +"event": { +"description": "The event that caused the Pub/Sub message to be sent.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"NEW_PROFILE", +"CHANGED_PROFILE", +"SCORE_INCREASED", +"ERROR_CHANGED" +], +"enumDescriptions": [ +"Unused.", +"New profile (not a re-profile).", +"One of the following profile metrics changed: Data risk score, Sensitivity score, Resource visibility, Encryption type, Predicted infoTypes, Other infoTypes", +"Table data risk score or sensitivity score increased.", +"A user (non-internal) error occurred." +], +"type": "string" +}, +"fileStoreProfile": { +"$ref": "GooglePrivacyDlpV2FileStoreDataProfile", +"description": "If `DetailLevel` is `FILE_STORE_PROFILE` this will be fully populated. Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and `file_store_path` will be populated." +}, +"profile": { +"$ref": "GooglePrivacyDlpV2TableDataProfile", +"description": "If `DetailLevel` is `TABLE_PROFILE` this will be fully populated. Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and `full_resource` will be populated." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataRiskLevel": { +"description": "Score is a summary of all elements in the data profile. A higher number means more risk.", +"id": "GooglePrivacyDlpV2DataRiskLevel", +"properties": { +"score": { +"description": "The score applied to the resource.", +"enum": [ +"RISK_SCORE_UNSPECIFIED", +"RISK_LOW", +"RISK_UNKNOWN", +"RISK_MODERATE", +"RISK_HIGH" +], +"enumDescriptions": [ +"Unused.", +"Low risk - Lower indication of sensitive data that appears to have additional access restrictions in place or no indication of sensitive data found.", +"Unable to determine risk.", +"Medium risk - Sensitive data may be present but additional access or fine grain access restrictions appear to be present. Consider limiting access even further or transform data to mask.", +"High risk \u2013 SPII may be present. Access controls may include public ACLs. Exfiltration of data may lead to user data loss. Re-identification of users may be possible. Consider limiting usage and or removing SPII." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DataSourceType": { +"description": "Message used to identify the type of resource being profiled.", +"id": "GooglePrivacyDlpV2DataSourceType", +"properties": { +"dataSource": { +"description": "Output only. An identifying string to the type of resource being profiled. Current values: * google/bigquery/table * google/project * google/sql/table * google/gcs/bucket", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DatabaseResourceCollection": { +"description": "Match database resources using regex filters. Examples of database resources are tables, views, and stored procedures.", +"id": "GooglePrivacyDlpV2DatabaseResourceCollection", +"properties": { +"includeRegexes": { +"$ref": "GooglePrivacyDlpV2DatabaseResourceRegexes", +"description": "A collection of regular expressions to match a database resource against." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DatabaseResourceReference": { +"description": "Identifies a single database resource, like a table within a database.", +"id": "GooglePrivacyDlpV2DatabaseResourceReference", +"properties": { +"database": { +"description": "Required. Name of a database within the instance.", +"type": "string" +}, +"databaseResource": { +"description": "Required. Name of a database resource, for example, a table within the database.", +"type": "string" +}, +"instance": { +"description": "Required. The instance where this resource is located. For example: Cloud SQL instance ID.", +"type": "string" +}, +"projectId": { +"description": "Required. If within a project-level config, then this must match the config's project ID.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DatabaseResourceRegex": { +"description": "A pattern to match against one or more database resources. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", +"id": "GooglePrivacyDlpV2DatabaseResourceRegex", +"properties": { +"databaseRegex": { +"description": "Regex to test the database name against. If empty, all databases match.", +"type": "string" +}, +"databaseResourceNameRegex": { +"description": "Regex to test the database resource's name against. An example of a database resource name is a table's name. Other database resource names like view names could be included in the future. If empty, all database resources match.", +"type": "string" +}, +"instanceRegex": { +"description": "Regex to test the instance name against. If empty, all instances match.", +"type": "string" +}, +"projectIdRegex": { +"description": "For organizations, if unset, will match all projects. Has no effect for configurations created within a project.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DatabaseResourceRegexes": { +"description": "A collection of regular expressions to determine what database resources to match against.", +"id": "GooglePrivacyDlpV2DatabaseResourceRegexes", +"properties": { +"patterns": { +"description": "A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expression's length can't exceed 10 KiB.", +"items": { +"$ref": "GooglePrivacyDlpV2DatabaseResourceRegex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DatastoreKey": { +"description": "Record key for a finding in Cloud Datastore.", +"id": "GooglePrivacyDlpV2DatastoreKey", +"properties": { +"entityKey": { +"$ref": "GooglePrivacyDlpV2Key", +"description": "Datastore entity key." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DatastoreOptions": { +"description": "Options defining a data set within Google Cloud Datastore.", +"id": "GooglePrivacyDlpV2DatastoreOptions", +"properties": { +"kind": { +"$ref": "GooglePrivacyDlpV2KindExpression", +"description": "The kind to process." +}, +"partitionId": { +"$ref": "GooglePrivacyDlpV2PartitionId", +"description": "A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DateShiftConfig": { +"description": "Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/sensitive-data-protection/docs/concepts-date-shifting to learn more.", +"id": "GooglePrivacyDlpV2DateShiftConfig", +"properties": { +"context": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context." +}, +"cryptoKey": { +"$ref": "GooglePrivacyDlpV2CryptoKey", +"description": "Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items." +}, +"lowerBoundDays": { +"description": "Required. For example, -5 means shift date to at most 5 days back in the past.", +"format": "int32", +"type": "integer" +}, +"upperBoundDays": { +"description": "Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DateTime": { +"description": "Message for a date time object. e.g. 2018-01-01, 5th August.", +"id": "GooglePrivacyDlpV2DateTime", +"properties": { +"date": { +"$ref": "GoogleTypeDate", +"description": "One or more of the following must be set. Must be a valid date or time value." +}, +"dayOfWeek": { +"description": "Day of week", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"time": { +"$ref": "GoogleTypeTimeOfDay", +"description": "Time of day" +}, +"timeZone": { +"$ref": "GooglePrivacyDlpV2TimeZone", +"description": "Time zone" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Deidentify": { +"description": "Create a de-identified copy of the requested table or files. A TransformationDetail will be created for each transformation. If any rows in BigQuery are skipped during de-identification (transformation errors or row size exceeds BigQuery insert API limits) they are placed in the failure output table. If the original row exceeds the BigQuery insert API limit it will be truncated when written to the failure output table. The failure output table can be set in the action.deidentify.output.big_query_output.deidentified_failure_output_table field, if no table is set, a table will be automatically created in the same project and dataset as the original table. Compatible with: Inspect", +"id": "GooglePrivacyDlpV2Deidentify", +"properties": { +"cloudStorageOutput": { +"description": "Required. User settable Cloud Storage bucket and folders to store de-identified files. This field must be set for Cloud Storage deidentification. The output Cloud Storage bucket must be different from the input bucket. De-identified files will overwrite files in the output path. Form of: gs://bucket/folder/ or gs://bucket", +"type": "string" +}, +"fileTypesToTransform": { +"description": "List of user-specified file type groups to transform. If specified, only the files with these file types will be transformed. If empty, all supported files will be transformed. Supported types may be automatically added over time. If a file type is set in this field that isn't supported by the Deidentify action then the job will fail and will not be successfully created/started. Currently the only file types supported are: IMAGES, TEXT_FILES, CSV, TSV.", +"items": { +"enum": [ +"FILE_TYPE_UNSPECIFIED", +"BINARY_FILE", +"TEXT_FILE", +"IMAGE", +"WORD", +"PDF", +"AVRO", +"CSV", +"TSV", +"POWERPOINT", +"EXCEL" +], +"enumDescriptions": [ +"Includes all files.", +"Includes all file extensions not covered by another entry. Binary scanning attempts to convert the content of the file to utf_8 to scan the file. If you wish to avoid this fall back, specify one or more of the other file types in your storage scan.", +"Included file extensions: asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, shtml, shtm, xhtml, lhs, ics, ini, java, js, json, jsonl, kix, kml, ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml.", +"Included file extensions: bmp, gif, jpg, jpeg, jpe, png. Setting bytes_limit_per_file or bytes_limit_per_file_percent has no effect on image files. Image inspection is restricted to the `global`, `us`, `asia`, and `europe` regions.", +"Microsoft Word files larger than 30 MB will be scanned as binary files. Included file extensions: docx, dotx, docm, dotm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Word files.", +"PDF files larger than 30 MB will be scanned as binary files. Included file extensions: pdf. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PDF files.", +"Included file extensions: avro", +"Included file extensions: csv", +"Included file extensions: tsv", +"Microsoft PowerPoint files larger than 30 MB will be scanned as binary files. Included file extensions: pptx, pptm, potx, potm, pot. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PowerPoint files.", +"Microsoft Excel files larger than 30 MB will be scanned as binary files. Included file extensions: xlsx, xlsm, xltx, xltm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Excel files." +], +"type": "string" +}, +"type": "array" +}, +"transformationConfig": { +"$ref": "GooglePrivacyDlpV2TransformationConfig", +"description": "User specified deidentify templates and configs for structured, unstructured, and image files." +}, +"transformationDetailsStorageConfig": { +"$ref": "GooglePrivacyDlpV2TransformationDetailsStorageConfig", +"description": "Config for storing transformation details. This is separate from the de-identified content, and contains metadata about the successful transformations and/or failures that occurred while de-identifying. This needs to be set in order for users to access information about the status of each transformation (see TransformationDetails message for more information about what is noted)." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeidentifyConfig": { +"description": "The configuration that controls how the data will change.", +"id": "GooglePrivacyDlpV2DeidentifyConfig", +"properties": { +"imageTransformations": { +"$ref": "GooglePrivacyDlpV2ImageTransformations", +"description": "Treat the dataset as an image and redact." +}, +"infoTypeTransformations": { +"$ref": "GooglePrivacyDlpV2InfoTypeTransformations", +"description": "Treat the dataset as free-form text and apply the same free text transformation everywhere." +}, +"recordTransformations": { +"$ref": "GooglePrivacyDlpV2RecordTransformations", +"description": "Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table." +}, +"transformationErrorHandling": { +"$ref": "GooglePrivacyDlpV2TransformationErrorHandling", +"description": "Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeidentifyContentRequest": { +"description": "Request to de-identify a ContentItem.", +"id": "GooglePrivacyDlpV2DeidentifyContentRequest", +"properties": { +"deidentifyConfig": { +"$ref": "GooglePrivacyDlpV2DeidentifyConfig", +"description": "Configuration for the de-identification of the content item. Items specified here will override the template referenced by the deidentify_template_name argument." +}, +"deidentifyTemplateName": { +"description": "Template to use. Any configuration directly specified in deidentify_config will override those set in the template. Singular fields that are set in this request will replace their corresponding fields in the template. Repeated fields are appended. Singular sub-messages and groups are recursively merged.", +"type": "string" +}, +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "Configuration for the inspector. Items specified here will override the template referenced by the inspect_template_name argument." +}, +"inspectTemplateName": { +"description": "Template to use. Any configuration directly specified in inspect_config will override those set in the template. Singular fields that are set in this request will replace their corresponding fields in the template. Repeated fields are appended. Singular sub-messages and groups are recursively merged.", +"type": "string" +}, +"item": { +"$ref": "GooglePrivacyDlpV2ContentItem", +"description": "The item to de-identify. Will be treated as text. This value must be of type Table if your deidentify_config is a RecordTransformations object." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeidentifyContentResponse": { +"description": "Results of de-identifying a ContentItem.", +"id": "GooglePrivacyDlpV2DeidentifyContentResponse", +"properties": { +"item": { +"$ref": "GooglePrivacyDlpV2ContentItem", +"description": "The de-identified item." +}, +"overview": { +"$ref": "GooglePrivacyDlpV2TransformationOverview", +"description": "An overview of the changes that were made on the `item`." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeidentifyDataSourceDetails": { +"description": "The results of a Deidentify action from an inspect job.", +"id": "GooglePrivacyDlpV2DeidentifyDataSourceDetails", +"properties": { +"deidentifyStats": { +"$ref": "GooglePrivacyDlpV2DeidentifyDataSourceStats", +"description": "Stats about the de-identification operation." +}, +"requestedOptions": { +"$ref": "GooglePrivacyDlpV2RequestedDeidentifyOptions", +"description": "De-identification config used for the request." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeidentifyDataSourceStats": { +"description": "Summary of what was modified during a transformation.", +"id": "GooglePrivacyDlpV2DeidentifyDataSourceStats", +"properties": { +"transformationCount": { +"description": "Number of successfully applied transformations.", +"format": "int64", +"type": "string" +}, +"transformationErrorCount": { +"description": "Number of errors encountered while trying to apply transformations.", +"format": "int64", +"type": "string" +}, +"transformedBytes": { +"description": "Total size in bytes that were transformed in some way.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeidentifyTemplate": { +"description": "DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to learn more.", +"id": "GooglePrivacyDlpV2DeidentifyTemplate", +"properties": { +"createTime": { +"description": "Output only. The creation timestamp of an inspectTemplate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deidentifyConfig": { +"$ref": "GooglePrivacyDlpV2DeidentifyConfig", +"description": "The core content of the template." +}, +"description": { +"description": "Short description (max 256 chars).", +"type": "string" +}, +"displayName": { +"description": "Display name (max 256 chars).", +"type": "string" +}, +"name": { +"description": "Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update timestamp of an inspectTemplate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeltaPresenceEstimationConfig": { +"description": "\u03b4-presence metric, used to estimate how likely it is for an attacker to figure out that one given individual appears in a de-identified dataset. Similarly to the k-map metric, we cannot compute \u03b4-presence exactly without knowing the attack dataset, so we use a statistical model instead.", +"id": "GooglePrivacyDlpV2DeltaPresenceEstimationConfig", +"properties": { +"auxiliaryTables": { +"description": "Several auxiliary tables can be used in the analysis. Each custom_tag used to tag a quasi-identifiers field must appear in exactly one field of one auxiliary table.", +"items": { +"$ref": "GooglePrivacyDlpV2StatisticalTable" +}, +"type": "array" +}, +"quasiIds": { +"description": "Required. Fields considered to be quasi-identifiers. No two fields can have the same tag.", +"items": { +"$ref": "GooglePrivacyDlpV2QuasiId" +}, +"type": "array" +}, +"regionCode": { +"description": "ISO 3166-1 alpha-2 region code to use in the statistical modeling. Set if no column is tagged with a region-specific InfoType (like US_ZIP_5) or a region code.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucket": { +"description": "A DeltaPresenceEstimationHistogramBucket message with the following values: min_probability: 0.1 max_probability: 0.2 frequency: 42 means that there are 42 records for which \u03b4 is in [0.1, 0.2). An important particular case is when min_probability = max_probability = 1: then, every individual who shares this quasi-identifier combination is in the dataset.", +"id": "GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucket", +"properties": { +"bucketSize": { +"description": "Number of records within these probability bounds.", +"format": "int64", +"type": "string" +}, +"bucketValueCount": { +"description": "Total number of distinct quasi-identifier tuple values in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValues": { +"description": "Sample of quasi-identifier tuple values in this bucket. The total number of classes returned per bucket is capped at 20.", +"items": { +"$ref": "GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValues" +}, +"type": "array" +}, +"maxProbability": { +"description": "Always greater than or equal to min_probability.", +"format": "double", +"type": "number" +}, +"minProbability": { +"description": "Between 0 and 1.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValues": { +"description": "A tuple of values for the quasi-identifier columns.", +"id": "GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValues", +"properties": { +"estimatedProbability": { +"description": "The estimated probability that a given individual sharing these quasi-identifier values is in the dataset. This value, typically called \u03b4, is the ratio between the number of records in the dataset with these quasi-identifier values, and the total number of individuals (inside *and* outside the dataset) with these quasi-identifier values. For example, if there are 15 individuals in the dataset who share the same quasi-identifier values, and an estimated 100 people in the entire population with these values, then \u03b4 is 0.15.", +"format": "double", +"type": "number" +}, +"quasiIdsValues": { +"description": "The quasi-identifier values.", +"items": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DeltaPresenceEstimationResult": { +"description": "Result of the \u03b4-presence computation. Note that these results are an estimation, not exact values.", +"id": "GooglePrivacyDlpV2DeltaPresenceEstimationResult", +"properties": { +"deltaPresenceEstimationHistogram": { +"description": "The intervals [min_probability, max_probability) do not overlap. If a value doesn't correspond to any such interval, the associated frequency is zero. For example, the following records: {min_probability: 0, max_probability: 0.1, frequency: 17} {min_probability: 0.2, max_probability: 0.3, frequency: 42} {min_probability: 0.3, max_probability: 0.4, frequency: 99} mean that there are no record with an estimated probability in [0.1, 0.2) nor larger or equal to 0.4.", +"items": { +"$ref": "GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DetectionRule": { +"description": "Deprecated; use `InspectionRuleSet` instead. Rule for modifying a `CustomInfoType` to alter behavior under certain circumstances, depending on the specific details of the rule. Not supported for the `surrogate_type` custom infoType.", +"id": "GooglePrivacyDlpV2DetectionRule", +"properties": { +"hotwordRule": { +"$ref": "GooglePrivacyDlpV2HotwordRule", +"description": "Hotword-based detection rule." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Dictionary": { +"description": "Custom information type based on a dictionary of words or phrases. This can be used to match sensitive information specific to the data, such as a list of employee IDs or job titles. Dictionary words are case-insensitive and all characters other than letters and digits in the unicode [Basic Multilingual Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) will be replaced with whitespace when scanning for matches, so the dictionary phrase \"Sam Johnson\" will match all three phrases \"sam johnson\", \"Sam, Johnson\", and \"Sam (Johnson)\". Additionally, the characters surrounding any match must be of a different type than the adjacent characters within the word, so letters must be next to non-letters and digits next to non-digits. For example, the dictionary word \"jen\" will match the first three letters of the text \"jen123\" but will return no matches for \"jennifer\". Dictionary words containing a large number of characters that are not letters or digits may result in unexpected findings because such characters are treated as whitespace. The [limits](https://cloud.google.com/sensitive-data-protection/limits) page contains details about the size limits of dictionaries. For dictionaries that do not fit within these constraints, consider using `LargeCustomDictionaryConfig` in the `StoredInfoType` API.", +"id": "GooglePrivacyDlpV2Dictionary", +"properties": { +"cloudStoragePath": { +"$ref": "GooglePrivacyDlpV2CloudStoragePath", +"description": "Newline-delimited file of words in Cloud Storage. Only a single file is accepted." +}, +"wordList": { +"$ref": "GooglePrivacyDlpV2WordList", +"description": "List of words or phrases to search for." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Disabled": { +"description": "Do not profile the tables.", +"id": "GooglePrivacyDlpV2Disabled", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryBigQueryConditions": { +"description": "Requirements that must be true before a table is scanned in discovery for the first time. There is an AND relationship between the top-level attributes. Additionally, minimum conditions with an OR relationship that must be met before Cloud DLP scans a table can be set (like a minimum row count or a minimum table age).", +"id": "GooglePrivacyDlpV2DiscoveryBigQueryConditions", +"properties": { +"createdAfter": { +"description": "BigQuery table must have been created after this date. Used to avoid backfilling.", +"format": "google-datetime", +"type": "string" +}, +"orConditions": { +"$ref": "GooglePrivacyDlpV2OrConditions", +"description": "At least one of the conditions must be true for a table to be scanned." +}, +"typeCollection": { +"description": "Restrict discovery to categories of table types.", +"enum": [ +"BIG_QUERY_COLLECTION_UNSPECIFIED", +"BIG_QUERY_COLLECTION_ALL_TYPES", +"BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES" +], +"enumDescriptions": [ +"Unused.", +"Automatically generate profiles for all tables, even if the table type is not yet fully supported for analysis. Profiles for unsupported tables will be generated with errors to indicate their partial support. When full support is added, the tables will automatically be profiled during the next scheduled run.", +"Only those types fully supported will be profiled. Will expand automatically as Cloud DLP adds support for new table types. Unsupported table types will not have partial profiles generated." +], +"type": "string" +}, +"types": { +"$ref": "GooglePrivacyDlpV2BigQueryTableTypes", +"description": "Restrict discovery to specific table types." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryBigQueryFilter": { +"description": "Determines what tables will have profiles generated within an organization or project. Includes the ability to filter by regular expression patterns on project ID, dataset ID, and table ID.", +"id": "GooglePrivacyDlpV2DiscoveryBigQueryFilter", +"properties": { +"otherTables": { +"$ref": "GooglePrivacyDlpV2AllOtherBigQueryTables", +"description": "Catch-all. This should always be the last filter in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically." +}, +"tableReference": { +"$ref": "GooglePrivacyDlpV2TableReference", +"description": "The table to scan. Discovery configurations including this can only include one DiscoveryTarget (the DiscoveryTarget with this TableReference)." +}, +"tables": { +"$ref": "GooglePrivacyDlpV2BigQueryTableCollection", +"description": "A specific set of tables for this filter to apply to. A table collection must be specified in only one filter per config. If a table id or dataset is empty, Cloud DLP assumes all tables in that collection must be profiled. Must specify a project ID." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryCloudSqlConditions": { +"description": "Requirements that must be true before a table is profiled for the first time.", +"id": "GooglePrivacyDlpV2DiscoveryCloudSqlConditions", +"properties": { +"databaseEngines": { +"description": "Optional. Database engines that should be profiled. Optional. Defaults to ALL_SUPPORTED_DATABASE_ENGINES if unspecified.", +"items": { +"enum": [ +"DATABASE_ENGINE_UNSPECIFIED", +"ALL_SUPPORTED_DATABASE_ENGINES", +"MYSQL", +"POSTGRES" +], +"enumDescriptions": [ +"Unused.", +"Include all supported database engines.", +"MySQL database.", +"PostgreSQL database." +], +"type": "string" +}, +"type": "array" +}, +"types": { +"description": "Data profiles will only be generated for the database resource types specified in this field. If not specified, defaults to [DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES].", +"items": { +"enum": [ +"DATABASE_RESOURCE_TYPE_UNSPECIFIED", +"DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES", +"DATABASE_RESOURCE_TYPE_TABLE" +], +"enumDescriptions": [ +"Unused.", +"Includes database resource types that become supported at a later time.", +"Tables." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryCloudSqlFilter": { +"description": "Determines what tables will have profiles generated within an organization or project. Includes the ability to filter by regular expression patterns on project ID, location, instance, database, and database resource name.", +"id": "GooglePrivacyDlpV2DiscoveryCloudSqlFilter", +"properties": { +"collection": { +"$ref": "GooglePrivacyDlpV2DatabaseResourceCollection", +"description": "A specific set of database resources for this filter to apply to." +}, +"databaseResourceReference": { +"$ref": "GooglePrivacyDlpV2DatabaseResourceReference", +"description": "The database resource to scan. Targets including this can only include one target (the target with this database resource reference)." +}, +"others": { +"$ref": "GooglePrivacyDlpV2AllOtherDatabaseResources", +"description": "Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryCloudSqlGenerationCadence": { +"description": "How often existing tables should have their profiles refreshed. New tables are scanned as quickly as possible depending on system capacity.", +"id": "GooglePrivacyDlpV2DiscoveryCloudSqlGenerationCadence", +"properties": { +"inspectTemplateModifiedCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence", +"description": "Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update." +}, +"refreshFrequency": { +"description": "Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changed. Defaults to never.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +}, +"schemaModifiedCadence": { +"$ref": "GooglePrivacyDlpV2SchemaModifiedCadence", +"description": "When to reprofile if the schema has changed." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryCloudStorageConditions": { +"description": "Requirements that must be true before a Cloud Storage bucket or object is scanned in discovery for the first time. There is an AND relationship between the top-level attributes.", +"id": "GooglePrivacyDlpV2DiscoveryCloudStorageConditions", +"properties": { +"includedBucketAttributes": { +"description": "Required. Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset.", +"items": { +"enum": [ +"CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED", +"ALL_SUPPORTED_BUCKETS", +"AUTOCLASS_DISABLED", +"AUTOCLASS_ENABLED" +], +"enumDescriptions": [ +"Unused.", +"Scan buckets regardless of the attribute.", +"Buckets with autoclass disabled (https://cloud.google.com/storage/docs/autoclass). Only one of AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set.", +"Buckets with autoclass enabled (https://cloud.google.com/storage/docs/autoclass). Only one of AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set. Scanning Autoclass-enabled buckets can affect object storage classes." +], +"type": "string" +}, +"type": "array" +}, +"includedObjectAttributes": { +"description": "Required. Only objects with the specified attributes will be scanned. If an object has one of the specified attributes but is inside an excluded bucket, it will not be scanned. Defaults to [ALL_SUPPORTED_OBJECTS]. A profile will be created even if no objects match the included_object_attributes.", +"items": { +"enum": [ +"CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED", +"ALL_SUPPORTED_OBJECTS", +"STANDARD", +"NEARLINE", +"COLDLINE", +"ARCHIVE", +"REGIONAL", +"MULTI_REGIONAL", +"DURABLE_REDUCED_AVAILABILITY" +], +"enumDescriptions": [ +"Unused.", +"Scan objects regardless of the attribute.", +"Scan objects with the standard storage class.", +"Scan objects with the nearline storage class. This will incur retrieval fees.", +"Scan objects with the coldline storage class. This will incur retrieval fees.", +"Scan objects with the archive storage class. This will incur retrieval fees.", +"Scan objects with the regional storage class.", +"Scan objects with the multi-regional storage class.", +"Scan objects with the dual-regional storage class. This will incur retrieval fees." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryCloudStorageFilter": { +"description": "Determines which buckets will have profiles generated within an organization or project. Includes the ability to filter by regular expression patterns on project ID and bucket name.", +"id": "GooglePrivacyDlpV2DiscoveryCloudStorageFilter", +"properties": { +"cloudStorageResourceReference": { +"$ref": "GooglePrivacyDlpV2CloudStorageResourceReference", +"description": "Optional. The bucket to scan. Targets including this can only include one target (the target with this bucket). This enables profiling the contents of a single bucket, while the other options allow for easy profiling of many bucets within a project or an organization." +}, +"collection": { +"$ref": "GooglePrivacyDlpV2FileStoreCollection", +"description": "Optional. A specific set of buckets for this filter to apply to." +}, +"others": { +"$ref": "GooglePrivacyDlpV2AllOtherResources", +"description": "Optional. Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryCloudStorageGenerationCadence": { +"description": "How often existing buckets should have their profiles refreshed. New buckets are scanned as quickly as possible depending on system capacity.", +"id": "GooglePrivacyDlpV2DiscoveryCloudStorageGenerationCadence", +"properties": { +"inspectTemplateModifiedCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence", +"description": "Optional. Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update." +}, +"refreshFrequency": { +"description": "Optional. Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changed. Defaults to never.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryConfig": { +"description": "Configuration for discovery to scan resources for profile generation. Only one discovery configuration may exist per organization, folder, or project. The generated data profiles are retained according to the [data retention policy] (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).", +"id": "GooglePrivacyDlpV2DiscoveryConfig", +"properties": { +"actions": { +"description": "Actions to execute at the completion of scanning.", +"items": { +"$ref": "GooglePrivacyDlpV2DataProfileAction" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The creation timestamp of a DiscoveryConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Display name (max 100 chars)", +"type": "string" +}, +"errors": { +"description": "Output only. A stream of errors encountered when the config was activated. Repeated errors may result in the config automatically being paused. Output only field. Will return the last 100 errors. Whenever the config is modified this list will be cleared.", +"items": { +"$ref": "GooglePrivacyDlpV2Error" +}, +"readOnly": true, +"type": "array" +}, +"inspectTemplates": { +"description": "Detection logic for profile generation. Not all template features are used by Discovery. FindingLimits, include_quote and exclude_info_types have no impact on Discovery. Multiple templates may be provided if there is data in multiple regions. At most one template must be specified per-region (including \"global\"). Each region is scanned using the applicable template. If no region-specific template is specified, but a \"global\" template is specified, it will be copied to that region and used instead. If no global or region-specific template is provided for a region with data, that region's data will not be scanned. For more information, see https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency.", +"items": { +"type": "string" +}, +"type": "array" +}, +"lastRunTime": { +"description": "Output only. The timestamp of the last time this config was executed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created, for example `projects/dlp-test-project/locations/global/discoveryConfigs/53234423`.", +"type": "string" +}, +"orgConfig": { +"$ref": "GooglePrivacyDlpV2OrgConfig", +"description": "Only set when the parent is an org." +}, +"otherCloudStartingLocation": { +"$ref": "GooglePrivacyDlpV2OtherCloudDiscoveryStartingLocation", +"description": "Must be set only when scanning other clouds." +}, +"status": { +"description": "Required. A status for this configuration.", +"enum": [ +"STATUS_UNSPECIFIED", +"RUNNING", +"PAUSED" +], +"enumDescriptions": [ +"Unused", +"The discovery config is currently active.", +"The discovery config is paused temporarily." +], +"type": "string" +}, +"targets": { +"description": "Target to match against for determining what to scan and how frequently.", +"items": { +"$ref": "GooglePrivacyDlpV2DiscoveryTarget" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last update timestamp of a DiscoveryConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryFileStoreConditions": { +"description": "Requirements that must be true before a file store is scanned in discovery for the first time. There is an AND relationship between the top-level attributes.", +"id": "GooglePrivacyDlpV2DiscoveryFileStoreConditions", +"properties": { +"cloudStorageConditions": { +"$ref": "GooglePrivacyDlpV2DiscoveryCloudStorageConditions", +"description": "Optional. Cloud Storage conditions." +}, +"createdAfter": { +"description": "Optional. File store must have been created after this date. Used to avoid backfilling.", +"format": "google-datetime", +"type": "string" +}, +"minAge": { +"description": "Optional. Minimum age a file store must have. If set, the value must be 1 hour or greater.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryGenerationCadence": { +"description": "What must take place for a profile to be updated and how frequently it should occur. New tables are scanned as quickly as possible depending on system capacity.", +"id": "GooglePrivacyDlpV2DiscoveryGenerationCadence", +"properties": { +"inspectTemplateModifiedCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence", +"description": "Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update." +}, +"refreshFrequency": { +"description": "Frequency at which profiles should be updated, regardless of whether the underlying resource has changed. Defaults to never.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +}, +"schemaModifiedCadence": { +"$ref": "GooglePrivacyDlpV2DiscoverySchemaModifiedCadence", +"description": "Governs when to update data profiles when a schema is modified." +}, +"tableModifiedCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryTableModifiedCadence", +"description": "Governs when to update data profiles when a table is modified." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence": { +"description": "The cadence at which to update data profiles when the inspection rules defined by the `InspectTemplate` change.", +"id": "GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence", +"properties": { +"frequency": { +"description": "How frequently data profiles can be updated when the template is modified. Defaults to never.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryOtherCloudConditions": { +"description": "Requirements that must be true before a resource is profiled for the first time.", +"id": "GooglePrivacyDlpV2DiscoveryOtherCloudConditions", +"properties": { +"amazonS3BucketConditions": { +"$ref": "GooglePrivacyDlpV2AmazonS3BucketConditions", +"description": "Amazon S3 bucket conditions." +}, +"minAge": { +"description": "Minimum age a resource must be before Cloud DLP can profile it. Value must be 1 hour or greater.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryOtherCloudFilter": { +"description": "Determines which resources from the other cloud will have profiles generated. Includes the ability to filter by resource names.", +"id": "GooglePrivacyDlpV2DiscoveryOtherCloudFilter", +"properties": { +"collection": { +"$ref": "GooglePrivacyDlpV2OtherCloudResourceCollection", +"description": "A collection of resources for this filter to apply to." +}, +"others": { +"$ref": "GooglePrivacyDlpV2AllOtherResources", +"description": "Optional. Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically." +}, +"singleResource": { +"$ref": "GooglePrivacyDlpV2OtherCloudSingleResourceReference", +"description": "The resource to scan. Configs using this filter can only have one target (the target with this single resource reference)." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryOtherCloudGenerationCadence": { +"description": "How often existing resources should have their profiles refreshed. New resources are scanned as quickly as possible depending on system capacity.", +"id": "GooglePrivacyDlpV2DiscoveryOtherCloudGenerationCadence", +"properties": { +"inspectTemplateModifiedCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence", +"description": "Optional. Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update." +}, +"refreshFrequency": { +"description": "Optional. Frequency to update profiles regardless of whether the underlying resource has changes. Defaults to never.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoverySchemaModifiedCadence": { +"description": "The cadence at which to update data profiles when a schema is modified.", +"id": "GooglePrivacyDlpV2DiscoverySchemaModifiedCadence", +"properties": { +"frequency": { +"description": "How frequently profiles may be updated when schemas are modified. Defaults to monthly.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +}, +"types": { +"description": "The type of events to consider when deciding if the table's schema has been modified and should have the profile updated. Defaults to NEW_COLUMNS.", +"items": { +"enum": [ +"SCHEMA_MODIFICATION_UNSPECIFIED", +"SCHEMA_NEW_COLUMNS", +"SCHEMA_REMOVED_COLUMNS" +], +"enumDescriptions": [ +"Unused", +"Profiles should be regenerated when new columns are added to the table. Default.", +"Profiles should be regenerated when columns are removed from the table." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryStartingLocation": { +"description": "The location to begin a discovery scan. Denotes an organization ID or folder ID within an organization.", +"id": "GooglePrivacyDlpV2DiscoveryStartingLocation", +"properties": { +"folderId": { +"description": "The ID of the folder within an organization to be scanned.", +"format": "int64", +"type": "string" +}, +"organizationId": { +"description": "The ID of an organization to scan.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryTableModifiedCadence": { +"description": "The cadence at which to update data profiles when a table is modified.", +"id": "GooglePrivacyDlpV2DiscoveryTableModifiedCadence", +"properties": { +"frequency": { +"description": "How frequently data profiles can be updated when tables are modified. Defaults to never.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +}, +"types": { +"description": "The type of events to consider when deciding if the table has been modified and should have the profile updated. Defaults to MODIFIED_TIMESTAMP.", +"items": { +"enum": [ +"TABLE_MODIFICATION_UNSPECIFIED", +"TABLE_MODIFIED_TIMESTAMP" +], +"enumDescriptions": [ +"Unused.", +"A table will be considered modified when the last_modified_time from BigQuery has been updated." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DiscoveryTarget": { +"description": "Target used to match against for Discovery.", +"id": "GooglePrivacyDlpV2DiscoveryTarget", +"properties": { +"bigQueryTarget": { +"$ref": "GooglePrivacyDlpV2BigQueryDiscoveryTarget", +"description": "BigQuery target for Discovery. The first target to match a table will be the one applied." +}, +"cloudSqlTarget": { +"$ref": "GooglePrivacyDlpV2CloudSqlDiscoveryTarget", +"description": "Cloud SQL target for Discovery. The first target to match a table will be the one applied." +}, +"cloudStorageTarget": { +"$ref": "GooglePrivacyDlpV2CloudStorageDiscoveryTarget", +"description": "Cloud Storage target for Discovery. The first target to match a table will be the one applied." +}, +"otherCloudTarget": { +"$ref": "GooglePrivacyDlpV2OtherCloudDiscoveryTarget", +"description": "Other clouds target for discovery. The first target to match a resource will be the one applied." +}, +"secretsTarget": { +"$ref": "GooglePrivacyDlpV2SecretsDiscoveryTarget", +"description": "Discovery target that looks for credentials and secrets stored in cloud resource metadata and reports them as vulnerabilities to Security Command Center. Only one target of this type is allowed." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DlpJob": { +"description": "Combines all of the information about a DLP job.", +"id": "GooglePrivacyDlpV2DlpJob", +"properties": { +"actionDetails": { +"description": "Events that should occur after the job has completed.", +"items": { +"$ref": "GooglePrivacyDlpV2ActionDetails" +}, +"type": "array" +}, +"createTime": { +"description": "Time when the job was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "Time when the job finished.", +"format": "google-datetime", +"type": "string" +}, +"errors": { +"description": "A stream of errors encountered running the job.", +"items": { +"$ref": "GooglePrivacyDlpV2Error" +}, +"type": "array" +}, +"inspectDetails": { +"$ref": "GooglePrivacyDlpV2InspectDataSourceDetails", +"description": "Results from inspecting a data source." +}, +"jobTriggerName": { +"description": "If created by a job trigger, the resource name of the trigger that instantiated the job.", +"type": "string" +}, +"lastModified": { +"description": "Time when the job was last modified by the system.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "The server-assigned name.", +"type": "string" +}, +"riskDetails": { +"$ref": "GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails", +"description": "Results from analyzing risk of a data source." +}, +"startTime": { +"description": "Time when the job started.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of a job.", +"enum": [ +"JOB_STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE", +"CANCELED", +"FAILED", +"ACTIVE" +], +"enumDescriptions": [ +"Unused.", +"The job has not yet started.", +"The job is currently running. Once a job has finished it will transition to FAILED or DONE.", +"The job is no longer running.", +"The job was canceled before it could be completed.", +"The job had an error and did not complete.", +"The job is currently accepting findings via hybridInspect. A hybrid job in ACTIVE state may continue to have findings added to it through the calling of hybridInspect. After the job has finished no more calls to hybridInspect may be made. ACTIVE jobs can transition to DONE." +], +"type": "string" +}, +"type": { +"description": "The type of job.", +"enum": [ +"DLP_JOB_TYPE_UNSPECIFIED", +"INSPECT_JOB", +"RISK_ANALYSIS_JOB" +], +"enumDescriptions": [ +"Defaults to INSPECT_JOB.", +"The job inspected Google Cloud for sensitive data.", +"The job executed a Risk Analysis computation." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2DocumentLocation": { +"description": "Location of a finding within a document.", +"id": "GooglePrivacyDlpV2DocumentLocation", +"properties": { +"fileOffset": { +"description": "Offset of the line, from the beginning of the file, where the finding is located.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2EntityId": { +"description": "An entity in a dataset is a field or set of fields that correspond to a single person. For example, in medical records the `EntityId` might be a patient identifier, or for financial records it might be an account identifier. This message is used when generalizations or analysis must take into account that multiple rows correspond to the same entity.", +"id": "GooglePrivacyDlpV2EntityId", +"properties": { +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Composite key indicating which field contains the entity identifier." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Error": { +"description": "Details information about an error encountered during job execution or the results of an unsuccessful activation of the JobTrigger.", +"id": "GooglePrivacyDlpV2Error", +"properties": { +"details": { +"$ref": "GoogleRpcStatus", +"description": "Detailed error codes and messages." +}, +"extraInfo": { +"description": "Additional information about the error.", +"enum": [ +"ERROR_INFO_UNSPECIFIED", +"IMAGE_SCAN_UNAVAILABLE_IN_REGION", +"FILE_STORE_CLUSTER_UNSUPPORTED" +], +"enumDescriptions": [ +"Unused.", +"Image scan is not available in the region.", +"File store cluster is not supported for profile generation." +], +"type": "string" +}, +"timestamps": { +"description": "The times the error occurred. List includes the oldest timestamp and the last 9 timestamps.", +"items": { +"format": "google-datetime", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ExcludeByHotword": { +"description": "The rule to exclude findings based on a hotword. For record inspection of tables, column names are considered hotwords. An example of this is to exclude a finding if it belongs to a BigQuery column that matches a specific pattern.", +"id": "GooglePrivacyDlpV2ExcludeByHotword", +"properties": { +"hotwordRegex": { +"$ref": "GooglePrivacyDlpV2Regex", +"description": "Regular expression pattern defining what qualifies as a hotword." +}, +"proximity": { +"$ref": "GooglePrivacyDlpV2Proximity", +"description": "Range of characters within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. The windowBefore property in proximity should be set to 1 if the hotword needs to be included in a column header." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ExcludeInfoTypes": { +"description": "List of excluded infoTypes.", +"id": "GooglePrivacyDlpV2ExcludeInfoTypes", +"properties": { +"infoTypes": { +"description": "InfoType list in ExclusionRule rule drops a finding when it overlaps or contained within with a finding of an infoType from this list. For example, for `InspectionRuleSet.info_types` containing \"PHONE_NUMBER\"` and `exclusion_rule` containing `exclude_info_types.info_types` with \"EMAIL_ADDRESS\" the phone number findings are dropped if they overlap with EMAIL_ADDRESS finding. That leads to \"555-222-2222@example.org\" to generate only a single finding, namely email address.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ExclusionRule": { +"description": "The rule that specifies conditions when findings of infoTypes specified in `InspectionRuleSet` are removed from results.", +"id": "GooglePrivacyDlpV2ExclusionRule", +"properties": { +"dictionary": { +"$ref": "GooglePrivacyDlpV2Dictionary", +"description": "Dictionary which defines the rule." +}, +"excludeByHotword": { +"$ref": "GooglePrivacyDlpV2ExcludeByHotword", +"description": "Drop if the hotword rule is contained in the proximate context. For tabular data, the context includes the column name." +}, +"excludeInfoTypes": { +"$ref": "GooglePrivacyDlpV2ExcludeInfoTypes", +"description": "Set of infoTypes for which findings would affect this rule." +}, +"matchingType": { +"description": "How the rule is applied, see MatchingType documentation for details.", +"enum": [ +"MATCHING_TYPE_UNSPECIFIED", +"MATCHING_TYPE_FULL_MATCH", +"MATCHING_TYPE_PARTIAL_MATCH", +"MATCHING_TYPE_INVERSE_MATCH" +], +"enumDescriptions": [ +"Invalid.", +"Full match. - Dictionary: join of Dictionary results matched complete finding quote - Regex: all regex matches fill a finding quote start to end - Exclude info type: completely inside affecting info types findings", +"Partial match. - Dictionary: at least one of the tokens in the finding matches - Regex: substring of the finding matches - Exclude info type: intersects with affecting info types findings", +"Inverse match. - Dictionary: no tokens in the finding match the dictionary - Regex: finding doesn't match the regex - Exclude info type: no intersection with affecting info types findings" +], +"type": "string" +}, +"regex": { +"$ref": "GooglePrivacyDlpV2Regex", +"description": "Regular expression which defines the rule." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Export": { +"description": "If set, the detailed data profiles will be persisted to the location of your choice whenever updated.", +"id": "GooglePrivacyDlpV2Export", +"properties": { +"profileTable": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Store all profiles to BigQuery. * The system will create a new dataset and table for you if none are are provided. The dataset will be named `sensitive_data_protection_discovery` and table will be named `discovery_profiles`. This table will be placed in the same project as the container project running the scan. The configuration will be updated with the fields set after the first profile is generated and the dataset and table are created. * See [Analyze data profiles stored in BigQuery](https://cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles) * See [Sample queries for your BigQuery table](https://cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles#sample_sql_queries). * Data is inserted using [streaming insert](https://cloud.google.com/blog/products/bigquery/life-of-a-bigquery-streaming-insert) and so data may be in the buffer for a period of time after the profile has finished. * The Pub/Sub notification is sent before the streaming buffer is guaranteed to be written, so data may not be instantly visible to queries by the time your topic receives the Pub/Sub notification. * The best practice is to use the same table for an entire organization so that you can take advantage of the provided Looker reports. If you use VPC Service Controls to define security perimeters, then you must use a separate table for each boundary." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Expressions": { +"description": "An expression, consisting of an operator and conditions.", +"id": "GooglePrivacyDlpV2Expressions", +"properties": { +"conditions": { +"$ref": "GooglePrivacyDlpV2Conditions", +"description": "Conditions to apply to the expression." +}, +"logicalOperator": { +"description": "The operator to apply to the result of conditions. Default and currently only supported value is `AND`.", +"enum": [ +"LOGICAL_OPERATOR_UNSPECIFIED", +"AND" +], +"enumDescriptions": [ +"Unused", +"Conditional AND" +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FieldId": { +"description": "General identifier of a data field in a storage service.", +"id": "GooglePrivacyDlpV2FieldId", +"properties": { +"name": { +"description": "Name describing the field.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FieldTransformation": { +"description": "The transformation to apply to the field.", +"id": "GooglePrivacyDlpV2FieldTransformation", +"properties": { +"condition": { +"$ref": "GooglePrivacyDlpV2RecordCondition", +"description": "Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85." +}, +"fields": { +"description": "Required. Input field(s) to apply the transformation to. When you have columns that reference their position within a list, omit the index from the FieldId. FieldId name matching ignores the index. For example, instead of \"contact.nums[0].type\", use \"contact.nums.type\".", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +}, +"infoTypeTransformations": { +"$ref": "GooglePrivacyDlpV2InfoTypeTransformations", +"description": "Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`." +}, +"primitiveTransformation": { +"$ref": "GooglePrivacyDlpV2PrimitiveTransformation", +"description": "Apply the transformation to the entire field." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileClusterSummary": { +"description": "The file cluster summary.", +"id": "GooglePrivacyDlpV2FileClusterSummary", +"properties": { +"dataRiskLevel": { +"$ref": "GooglePrivacyDlpV2DataRiskLevel", +"description": "The data risk level of this cluster. RISK_LOW if nothing has been scanned." +}, +"errors": { +"description": "A list of errors detected while scanning this cluster. The list is truncated to 10 per cluster.", +"items": { +"$ref": "GooglePrivacyDlpV2Error" +}, +"type": "array" +}, +"fileClusterType": { +"$ref": "GooglePrivacyDlpV2FileClusterType", +"description": "The file cluster type." +}, +"fileExtensionsScanned": { +"description": "A sample of file types scanned in this cluster. Empty if no files were scanned. File extensions can be derived from the file name or the file content.", +"items": { +"$ref": "GooglePrivacyDlpV2FileExtensionInfo" +}, +"type": "array" +}, +"fileExtensionsSeen": { +"description": "A sample of file types seen in this cluster. Empty if no files were seen. File extensions can be derived from the file name or the file content.", +"items": { +"$ref": "GooglePrivacyDlpV2FileExtensionInfo" +}, +"type": "array" +}, +"fileStoreInfoTypeSummaries": { +"description": "InfoTypes detected in this cluster.", +"items": { +"$ref": "GooglePrivacyDlpV2FileStoreInfoTypeSummary" +}, +"type": "array" +}, +"noFilesExist": { +"description": "True if no files exist in this cluster. If the file store had more files than could be listed, this will be false even if no files for this cluster were seen and file_extensions_seen is empty.", +"type": "boolean" +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "The sensitivity score of this cluster. The score will be SENSITIVITY_LOW if nothing has been scanned." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileClusterType": { +"description": "Message used to identify file cluster type being profiled.", +"id": "GooglePrivacyDlpV2FileClusterType", +"properties": { +"cluster": { +"description": "Cluster type.", +"enum": [ +"CLUSTER_UNSPECIFIED", +"CLUSTER_UNKNOWN", +"CLUSTER_TEXT", +"CLUSTER_STRUCTURED_DATA", +"CLUSTER_SOURCE_CODE", +"CLUSTER_RICH_DOCUMENT", +"CLUSTER_IMAGE", +"CLUSTER_ARCHIVE", +"CLUSTER_MULTIMEDIA", +"CLUSTER_EXECUTABLE", +"CLUSTER_AI_MODEL" +], +"enumDescriptions": [ +"Unused.", +"Unsupported files.", +"Plain text.", +"Structured data like CSV, TSV etc.", +"Source code.", +"Rich document like docx, xlsx etc.", +"Images like jpeg, bmp.", +"Archives and containers like .zip, .tar etc.", +"Multimedia like .mp4, .avi etc.", +"Executable files like .exe, .class, .apk etc.", +"AI models like .tflite etc." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileExtensionInfo": { +"description": "Information regarding the discovered file extension.", +"id": "GooglePrivacyDlpV2FileExtensionInfo", +"properties": { +"fileExtension": { +"description": "The file extension if set. (aka .pdf, .jpg, .txt)", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileSet": { +"description": "Set of files to scan.", +"id": "GooglePrivacyDlpV2FileSet", +"properties": { +"regexFileSet": { +"$ref": "GooglePrivacyDlpV2CloudStorageRegexFileSet", +"description": "The regex-filtered set of files to scan. Exactly one of `url` or `regex_file_set` must be set." +}, +"url": { +"description": "The Cloud Storage url of the file(s) to scan, in the format `gs:///`. Trailing wildcard in the path is allowed. If the url ends in a trailing slash, the bucket or directory represented by the url will be scanned non-recursively (content in sub-directories will not be scanned). This means that `gs://mybucket/` is equivalent to `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to `gs://mybucket/directory/*`. Exactly one of `url` or `regex_file_set` must be set.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileStoreCollection": { +"description": "Match file stores (e.g. buckets) using regex filters.", +"id": "GooglePrivacyDlpV2FileStoreCollection", +"properties": { +"includeRegexes": { +"$ref": "GooglePrivacyDlpV2FileStoreRegexes", +"description": "Optional. A collection of regular expressions to match a file store against." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileStoreDataProfile": { +"description": "The profile for a file store. * Cloud Storage: maps 1:1 with a bucket. * Amazon S3: maps 1:1 with a bucket.", +"id": "GooglePrivacyDlpV2FileStoreDataProfile", +"properties": { +"configSnapshot": { +"$ref": "GooglePrivacyDlpV2DataProfileConfigSnapshot", +"description": "The snapshot of the configurations used to generate the profile." +}, +"createTime": { +"description": "The time the file store was first created.", +"format": "google-datetime", +"type": "string" +}, +"dataRiskLevel": { +"$ref": "GooglePrivacyDlpV2DataRiskLevel", +"description": "The data risk level of this resource." +}, +"dataSourceType": { +"$ref": "GooglePrivacyDlpV2DataSourceType", +"description": "The resource type that was profiled." +}, +"dataStorageLocations": { +"description": "For resources that have multiple storage locations, these are those regions. For Cloud Storage this is the list of regions chosen for dual-region storage. `file_store_location` will normally be the corresponding multi-region for the list of individual locations. The first region is always picked as the processing and storage location for the data profile.", +"items": { +"type": "string" +}, +"type": "array" +}, +"fileClusterSummaries": { +"description": "FileClusterSummary per each cluster.", +"items": { +"$ref": "GooglePrivacyDlpV2FileClusterSummary" +}, +"type": "array" +}, +"fileStoreInfoTypeSummaries": { +"description": "InfoTypes detected in this file store.", +"items": { +"$ref": "GooglePrivacyDlpV2FileStoreInfoTypeSummary" +}, +"type": "array" +}, +"fileStoreIsEmpty": { +"description": "The file store does not have any files.", +"type": "boolean" +}, +"fileStoreLocation": { +"description": "The location of the file store. * Cloud Storage: https://cloud.google.com/storage/docs/locations#available-locations * Amazon S3: https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints", +"type": "string" +}, +"fileStorePath": { +"description": "The file store path. * Cloud Storage: `gs://{bucket}` * Amazon S3: `s3://{bucket}`", +"type": "string" +}, +"fullResource": { +"description": "The resource name of the resource profiled. https://cloud.google.com/apis/design/resource_names#full_resource_name Example format of an S3 bucket full resource name: `//cloudasset.googleapis.com/organizations/{org_id}/otherCloudConnections/aws/arn:aws:s3:::{bucket_name}`", +"type": "string" +}, +"lastModifiedTime": { +"description": "The time the file store was last modified.", +"format": "google-datetime", +"type": "string" +}, +"locationType": { +"description": "The location type of the file store (region, dual-region, multi-region, etc). If dual-region, expect data_storage_locations to be populated.", +"type": "string" +}, +"name": { +"description": "The name of the profile.", +"type": "string" +}, +"profileLastGenerated": { +"description": "The last time the profile was generated.", +"format": "google-datetime", +"type": "string" +}, +"profileStatus": { +"$ref": "GooglePrivacyDlpV2ProfileStatus", +"description": "Success or error status from the most recent profile generation attempt. May be empty if the profile is still being generated." +}, +"projectDataProfile": { +"description": "The resource name of the project data profile for this file store.", +"type": "string" +}, +"projectId": { +"description": "The Google Cloud project ID that owns the resource. For Amazon S3 buckets, this is the AWS Account Id.", +"type": "string" +}, +"resourceAttributes": { +"additionalProperties": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"description": "Attributes of the resource being profiled. Currently used attributes: * customer_managed_encryption: boolean - true: the resource is encrypted with a customer-managed key. - false: the resource is encrypted with a provider-managed key.", +"type": "object" +}, +"resourceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels applied to the resource at the time the profile was generated.", +"type": "object" +}, +"resourceVisibility": { +"description": "How broadly a resource has been shared.", +"enum": [ +"RESOURCE_VISIBILITY_UNSPECIFIED", +"RESOURCE_VISIBILITY_PUBLIC", +"RESOURCE_VISIBILITY_INCONCLUSIVE", +"RESOURCE_VISIBILITY_RESTRICTED" +], +"enumDescriptions": [ +"Unused.", +"Visible to any user.", +"May contain public items. For example, if a Cloud Storage bucket has uniform bucket level access disabled, some objects inside it may be public, but none are known yet.", +"Visible only to specific users." +], +"type": "string" +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "The sensitivity score of this resource." +}, +"state": { +"description": "State of a profile.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"Unused.", +"The profile is currently running. Once a profile has finished it will transition to DONE.", +"The profile is no longer generating. If profile_status.status.code is 0, the profile succeeded, otherwise, it failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileStoreInfoTypeSummary": { +"description": "Information regarding the discovered InfoType.", +"id": "GooglePrivacyDlpV2FileStoreInfoTypeSummary", +"properties": { +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The InfoType seen." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileStoreRegex": { +"description": "A pattern to match against one or more file stores.", +"id": "GooglePrivacyDlpV2FileStoreRegex", +"properties": { +"cloudStorageRegex": { +"$ref": "GooglePrivacyDlpV2CloudStorageRegex", +"description": "Optional. Regex for Cloud Storage." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FileStoreRegexes": { +"description": "A collection of regular expressions to determine what file store to match against.", +"id": "GooglePrivacyDlpV2FileStoreRegexes", +"properties": { +"patterns": { +"description": "Required. The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all regular expression's length can't exceed 10 KiB.", +"items": { +"$ref": "GooglePrivacyDlpV2FileStoreRegex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Finding": { +"description": "Represents a piece of potentially sensitive content.", +"id": "GooglePrivacyDlpV2Finding", +"properties": { +"createTime": { +"description": "Timestamp when finding was detected.", +"format": "google-datetime", +"type": "string" +}, +"findingId": { +"description": "The unique finding id.", +"type": "string" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The type of content that might have been found. Provided if `excluded_types` is false." +}, +"jobCreateTime": { +"description": "Time the job started that produced this finding.", +"format": "google-datetime", +"type": "string" +}, +"jobName": { +"description": "The job that stored the finding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this `Finding`. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. No more than 10 labels can be associated with a given finding. Examples: * `\"environment\" : \"production\"` * `\"pipeline\" : \"etl\"`", +"type": "object" +}, +"likelihood": { +"description": "Confidence of how likely it is that the `info_type` is correct.", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Default value; same as POSSIBLE.", +"Highest chance of a false positive.", +"High chance of a false positive.", +"Some matching signals. The default value.", +"Low chance of a false positive.", +"Confidence level is high. Lowest chance of a false positive." +], +"type": "string" +}, +"location": { +"$ref": "GooglePrivacyDlpV2Location", +"description": "Where the content was found." +}, +"name": { +"description": "Resource name in format projects/{project}/locations/{location}/findings/{finding} Populated only when viewing persisted findings.", +"type": "string" +}, +"quote": { +"description": "The content that was found. Even if the content is not textual, it may be converted to a textual representation here. Provided if `include_quote` is true and the finding is less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes in length, the quote may be omitted.", +"type": "string" +}, +"quoteInfo": { +"$ref": "GooglePrivacyDlpV2QuoteInfo", +"description": "Contains data parsed from quotes. Only populated if include_quote was set to true and a supported infoType was requested. Currently supported infoTypes: DATE, DATE_OF_BIRTH and TIME." +}, +"resourceName": { +"description": "The job that stored the finding.", +"type": "string" +}, +"triggerName": { +"description": "Job trigger name, if applicable, for this finding.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FindingLimits": { +"description": "Configuration to control the number of findings returned for inspection. This is not used for de-identification or data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error.", +"id": "GooglePrivacyDlpV2FindingLimits", +"properties": { +"maxFindingsPerInfoType": { +"description": "Configuration of findings limit given for specified infoTypes.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeLimit" +}, +"type": "array" +}, +"maxFindingsPerItem": { +"description": "Max number of findings that are returned for each item scanned. When set within an InspectContentRequest, this field is ignored. This value isn't a hard limit. If the number of findings for an item reaches this limit, the inspection of that item ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns for the item can be multiple times higher than this value.", +"format": "int32", +"type": "integer" +}, +"maxFindingsPerRequest": { +"description": "Max number of findings that are returned per request or job. If you set this field in an InspectContentRequest, the resulting maximum value is the value that you set or 3,000, whichever is lower. This value isn't a hard limit. If an inspection reaches this limit, the inspection ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns can be multiple times higher than this value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2FinishDlpJobRequest": { +"description": "The request message for finishing a DLP hybrid job.", +"id": "GooglePrivacyDlpV2FinishDlpJobRequest", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2FixedSizeBucketingConfig": { +"description": "Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if lower_bound = 10 and upper_bound = 20, all values that are within this bucket will be replaced with \"10-20\". This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to learn more.", +"id": "GooglePrivacyDlpV2FixedSizeBucketingConfig", +"properties": { +"bucketSize": { +"description": "Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.", +"format": "double", +"type": "number" +}, +"lowerBound": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \"-10\"." +}, +"upperBound": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \"89+\"." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HotwordRule": { +"description": "The rule that adjusts the likelihood of findings within a certain proximity of hotwords.", +"id": "GooglePrivacyDlpV2HotwordRule", +"properties": { +"hotwordRegex": { +"$ref": "GooglePrivacyDlpV2Regex", +"description": "Regular expression pattern defining what qualifies as a hotword." +}, +"likelihoodAdjustment": { +"$ref": "GooglePrivacyDlpV2LikelihoodAdjustment", +"description": "Likelihood adjustment to apply to all matching findings." +}, +"proximity": { +"$ref": "GooglePrivacyDlpV2Proximity", +"description": "Range of characters within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. The finding itself will be included in the window, so that hotwords can be used to match substrings of the finding itself. Suppose you want Cloud DLP to promote the likelihood of the phone number regex \"\\(\\d{3}\\) \\d{3}-\\d{4}\" if the area code is known to be the area code of a company's office. In this case, use the hotword regex \"\\(xxx\\)\", where \"xxx\" is the area code in question. For tabular data, if you want to modify the likelihood of an entire column of findngs, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values)." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridContentItem": { +"description": "An individual hybrid item to inspect. Will be stored temporarily during processing.", +"id": "GooglePrivacyDlpV2HybridContentItem", +"properties": { +"findingDetails": { +"$ref": "GooglePrivacyDlpV2HybridFindingDetails", +"description": "Supplementary information that will be added to each finding." +}, +"item": { +"$ref": "GooglePrivacyDlpV2ContentItem", +"description": "The item to inspect." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridFindingDetails": { +"description": "Populate to associate additional data with each finding.", +"id": "GooglePrivacyDlpV2HybridFindingDetails", +"properties": { +"containerDetails": { +"$ref": "GooglePrivacyDlpV2Container", +"description": "Details about the container where the content being inspected is from." +}, +"fileOffset": { +"description": "Offset in bytes of the line, from the beginning of the file, where the finding is located. Populate if the item being scanned is only part of a bigger item, such as a shard of a file and you want to track the absolute position of the finding.", +"format": "int64", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels to represent user provided metadata about the data being inspected. If configured by the job, some key values may be required. The labels associated with `Finding`'s produced by hybrid inspection. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. No more than 10 labels can be associated with a given finding. Examples: * `\"environment\" : \"production\"` * `\"pipeline\" : \"etl\"`", +"type": "object" +}, +"rowOffset": { +"description": "Offset of the row for tables. Populate if the row(s) being scanned are part of a bigger dataset and you want to keep track of their absolute position.", +"format": "int64", +"type": "string" +}, +"tableOptions": { +"$ref": "GooglePrivacyDlpV2TableOptions", +"description": "If the container is a table, additional information to make findings meaningful such as the columns that are primary keys. If not known ahead of time, can also be set within each inspect hybrid call and the two will be merged. Note that identifying_fields will only be stored to BigQuery, and only if the BigQuery action has been included." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridInspectDlpJobRequest": { +"description": "Request to search for potentially sensitive info in a custom location.", +"id": "GooglePrivacyDlpV2HybridInspectDlpJobRequest", +"properties": { +"hybridItem": { +"$ref": "GooglePrivacyDlpV2HybridContentItem", +"description": "The item to inspect." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridInspectJobTriggerRequest": { +"description": "Request to search for potentially sensitive info in a custom location.", +"id": "GooglePrivacyDlpV2HybridInspectJobTriggerRequest", +"properties": { +"hybridItem": { +"$ref": "GooglePrivacyDlpV2HybridContentItem", +"description": "The item to inspect." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridInspectResponse": { +"description": "Quota exceeded errors will be thrown once quota has been met.", +"id": "GooglePrivacyDlpV2HybridInspectResponse", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridInspectStatistics": { +"description": "Statistics related to processing hybrid inspect requests.", +"id": "GooglePrivacyDlpV2HybridInspectStatistics", +"properties": { +"abortedCount": { +"description": "The number of hybrid inspection requests aborted because the job ran out of quota or was ended before they could be processed.", +"format": "int64", +"type": "string" +}, +"pendingCount": { +"description": "The number of hybrid requests currently being processed. Only populated when called via method `getDlpJob`. A burst of traffic may cause hybrid inspect requests to be enqueued. Processing will take place as quickly as possible, but resource limitations may impact how long a request is enqueued for.", +"format": "int64", +"type": "string" +}, +"processedCount": { +"description": "The number of hybrid inspection requests processed within this job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2HybridOptions": { +"description": "Configuration to control jobs where the content being inspected is outside of Google Cloud Platform.", +"id": "GooglePrivacyDlpV2HybridOptions", +"properties": { +"description": { +"description": "A short description of where the data is coming from. Will be stored once in the job. 256 max length.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "To organize findings, these labels will be added to each finding. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. No more than 10 labels can be associated with a given finding. Examples: * `\"environment\" : \"production\"` * `\"pipeline\" : \"etl\"`", +"type": "object" +}, +"requiredFindingLabelKeys": { +"description": "These are labels that each inspection request must include within their 'finding_labels' map. Request may contain others, but any missing one of these will be rejected. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. No more than 10 keys can be required.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tableOptions": { +"$ref": "GooglePrivacyDlpV2TableOptions", +"description": "If the container is a table, additional information to make findings meaningful such as the columns that are primary keys." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ImageLocation": { +"description": "Location of the finding within an image.", +"id": "GooglePrivacyDlpV2ImageLocation", +"properties": { +"boundingBoxes": { +"description": "Bounding boxes locating the pixels within the image containing the finding.", +"items": { +"$ref": "GooglePrivacyDlpV2BoundingBox" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ImageRedactionConfig": { +"description": "Configuration for determining how redaction of images should occur.", +"id": "GooglePrivacyDlpV2ImageRedactionConfig", +"properties": { +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "Only one per info_type should be provided per request. If not specified, and redact_all_text is false, the DLP API will redact all text that it matches against all info_types that are found, but not specified in another ImageRedactionConfig." +}, +"redactAllText": { +"description": "If true, all text found in the image, regardless whether it matches an info_type, is redacted. Only one should be provided.", +"type": "boolean" +}, +"redactionColor": { +"$ref": "GooglePrivacyDlpV2Color", +"description": "The color to use when redacting content from an image. If not specified, the default is black." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ImageTransformation": { +"description": "Configuration for determining how redaction of images should occur.", +"id": "GooglePrivacyDlpV2ImageTransformation", +"properties": { +"allInfoTypes": { +"$ref": "GooglePrivacyDlpV2AllInfoTypes", +"description": "Apply transformation to all findings not specified in other ImageTransformation's selected_info_types. Only one instance is allowed within the ImageTransformations message." +}, +"allText": { +"$ref": "GooglePrivacyDlpV2AllText", +"description": "Apply transformation to all text that doesn't match an infoType. Only one instance is allowed within the ImageTransformations message." +}, +"redactionColor": { +"$ref": "GooglePrivacyDlpV2Color", +"description": "The color to use when redacting content from an image. If not specified, the default is black." +}, +"selectedInfoTypes": { +"$ref": "GooglePrivacyDlpV2SelectedInfoTypes", +"description": "Apply transformation to the selected info_types." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ImageTransformations": { +"description": "A type of transformation that is applied over images.", +"id": "GooglePrivacyDlpV2ImageTransformations", +"properties": { +"transforms": { +"description": "List of transforms to make.", +"items": { +"$ref": "GooglePrivacyDlpV2ImageTransformation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoType": { +"description": "Type of information detected by the API.", +"id": "GooglePrivacyDlpV2InfoType", +"properties": { +"name": { +"description": "Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$_-]{1,64}`.", +"type": "string" +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "Optional custom sensitivity for this InfoType. This only applies to data profiling." +}, +"version": { +"description": "Optional version name for this InfoType.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeCategory": { +"description": "Classification of infoTypes to organize them according to geographic location, industry, and data type.", +"id": "GooglePrivacyDlpV2InfoTypeCategory", +"properties": { +"industryCategory": { +"description": "The group of relevant businesses where this infoType is commonly used", +"enum": [ +"INDUSTRY_UNSPECIFIED", +"FINANCE", +"HEALTH", +"TELECOMMUNICATIONS" +], +"enumDescriptions": [ +"Unused industry", +"The infoType is typically used in the finance industry.", +"The infoType is typically used in the health industry.", +"The infoType is typically used in the telecommunications industry." +], +"type": "string" +}, +"locationCategory": { +"description": "The region or country that issued the ID or document represented by the infoType.", +"enum": [ +"LOCATION_UNSPECIFIED", +"GLOBAL", +"ARGENTINA", +"ARMENIA", +"AUSTRALIA", +"AZERBAIJAN", +"BELARUS", +"BELGIUM", +"BRAZIL", +"CANADA", +"CHILE", +"CHINA", +"COLOMBIA", +"CROATIA", +"DENMARK", +"FRANCE", +"FINLAND", +"GERMANY", +"HONG_KONG", +"INDIA", +"INDONESIA", +"IRELAND", +"ISRAEL", +"ITALY", +"JAPAN", +"KAZAKHSTAN", +"KOREA", +"MEXICO", +"THE_NETHERLANDS", +"NEW_ZEALAND", +"NORWAY", +"PARAGUAY", +"PERU", +"POLAND", +"PORTUGAL", +"RUSSIA", +"SINGAPORE", +"SOUTH_AFRICA", +"SPAIN", +"SWEDEN", +"SWITZERLAND", +"TAIWAN", +"THAILAND", +"TURKEY", +"UKRAINE", +"UNITED_KINGDOM", +"UNITED_STATES", +"URUGUAY", +"UZBEKISTAN", +"VENEZUELA", +"INTERNAL" +], +"enumDescriptions": [ +"Unused location", +"The infoType is not issued by or tied to a specific region, but is used almost everywhere.", +"The infoType is typically used in Argentina.", +"The infoType is typically used in Armenia.", +"The infoType is typically used in Australia.", +"The infoType is typically used in Azerbaijan.", +"The infoType is typically used in Belarus.", +"The infoType is typically used in Belgium.", +"The infoType is typically used in Brazil.", +"The infoType is typically used in Canada.", +"The infoType is typically used in Chile.", +"The infoType is typically used in China.", +"The infoType is typically used in Colombia.", +"The infoType is typically used in Croatia.", +"The infoType is typically used in Denmark.", +"The infoType is typically used in France.", +"The infoType is typically used in Finland.", +"The infoType is typically used in Germany.", +"The infoType is typically used in Hong Kong.", +"The infoType is typically used in India.", +"The infoType is typically used in Indonesia.", +"The infoType is typically used in Ireland.", +"The infoType is typically used in Israel.", +"The infoType is typically used in Italy.", +"The infoType is typically used in Japan.", +"The infoType is typically used in Kazakhstan.", +"The infoType is typically used in Korea.", +"The infoType is typically used in Mexico.", +"The infoType is typically used in the Netherlands.", +"The infoType is typically used in New Zealand.", +"The infoType is typically used in Norway.", +"The infoType is typically used in Paraguay.", +"The infoType is typically used in Peru.", +"The infoType is typically used in Poland.", +"The infoType is typically used in Portugal.", +"The infoType is typically used in Russia.", +"The infoType is typically used in Singapore.", +"The infoType is typically used in South Africa.", +"The infoType is typically used in Spain.", +"The infoType is typically used in Sweden.", +"The infoType is typically used in Switzerland.", +"The infoType is typically used in Taiwan.", +"The infoType is typically used in Thailand.", +"The infoType is typically used in Turkey.", +"The infoType is typically used in Ukraine.", +"The infoType is typically used in the United Kingdom.", +"The infoType is typically used in the United States.", +"The infoType is typically used in Uruguay.", +"The infoType is typically used in Uzbekistan.", +"The infoType is typically used in Venezuela.", +"The infoType is typically used in Google internally." +], +"type": "string" +}, +"typeCategory": { +"description": "The class of identifiers where this infoType belongs", +"enum": [ +"TYPE_UNSPECIFIED", +"PII", +"SPII", +"DEMOGRAPHIC", +"CREDENTIAL", +"GOVERNMENT_ID", +"DOCUMENT", +"CONTEXTUAL_INFORMATION" +], +"enumDescriptions": [ +"Unused type", +"Personally identifiable information, for example, a name or phone number", +"Personally identifiable information that is especially sensitive, for example, a passport number.", +"Attributes that can partially identify someone, especially in combination with other attributes, like age, height, and gender.", +"Confidential or secret information, for example, a password.", +"An identification document issued by a government.", +"A document, for example, a resume or source code.", +"Information that is not sensitive on its own, but provides details about the circumstances surrounding an entity or an event." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeDescription": { +"description": "InfoType description.", +"id": "GooglePrivacyDlpV2InfoTypeDescription", +"properties": { +"categories": { +"description": "The category of the infoType.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeCategory" +}, +"type": "array" +}, +"description": { +"description": "Description of the infotype. Translated when language is provided in the request.", +"type": "string" +}, +"displayName": { +"description": "Human readable form of the infoType name.", +"type": "string" +}, +"example": { +"description": "A sample true positive for this infoType.", +"type": "string" +}, +"name": { +"description": "Internal name of the infoType.", +"type": "string" +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "The default sensitivity of the infoType." +}, +"supportedBy": { +"description": "Which parts of the API supports this InfoType.", +"items": { +"enum": [ +"ENUM_TYPE_UNSPECIFIED", +"INSPECT", +"RISK_ANALYSIS" +], +"enumDescriptions": [ +"Unused.", +"Supported by the inspect operations.", +"Supported by the risk analysis operations." +], +"type": "string" +}, +"type": "array" +}, +"versions": { +"description": "A list of available versions for the infotype.", +"items": { +"$ref": "GooglePrivacyDlpV2VersionDescription" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeLikelihood": { +"description": "Configuration for setting a minimum likelihood per infotype. Used to customize the minimum likelihood level for specific infotypes in the request. For example, use this if you want to lower the precision for PERSON_NAME without lowering the precision for the other infotypes in the request.", +"id": "GooglePrivacyDlpV2InfoTypeLikelihood", +"properties": { +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "Type of information the likelihood threshold applies to. Only one likelihood per info_type should be provided. If InfoTypeLikelihood does not have an info_type, the configuration fails." +}, +"minLikelihood": { +"description": "Only returns findings equal to or above this threshold. This field is required or else the configuration fails.", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Default value; same as POSSIBLE.", +"Highest chance of a false positive.", +"High chance of a false positive.", +"Some matching signals. The default value.", +"Low chance of a false positive.", +"Confidence level is high. Lowest chance of a false positive." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeLimit": { +"description": "Max findings configuration per infoType, per content item or long running DlpJob.", +"id": "GooglePrivacyDlpV2InfoTypeLimit", +"properties": { +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "Type of information the findings limit applies to. Only one limit per info_type should be provided. If InfoTypeLimit does not have an info_type, the DLP API applies the limit against all info_types that are found but not specified in another InfoTypeLimit." +}, +"maxFindings": { +"description": "Max findings limit for the given infoType.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeStats": { +"description": "Statistics regarding a specific InfoType.", +"id": "GooglePrivacyDlpV2InfoTypeStats", +"properties": { +"count": { +"description": "Number of findings for this infoType.", +"format": "int64", +"type": "string" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The type of finding this stat is for." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeSummary": { +"description": "The infoType details for this column.", +"id": "GooglePrivacyDlpV2InfoTypeSummary", +"properties": { +"estimatedPrevalence": { +"deprecated": true, +"description": "Not populated for predicted infotypes.", +"format": "int32", +"type": "integer" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The infoType." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeTransformation": { +"description": "A transformation to apply to text that is identified as a specific info_type.", +"id": "GooglePrivacyDlpV2InfoTypeTransformation", +"properties": { +"infoTypes": { +"description": "InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoType" +}, +"type": "array" +}, +"primitiveTransformation": { +"$ref": "GooglePrivacyDlpV2PrimitiveTransformation", +"description": "Required. Primitive transformation to apply to the infoType." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InfoTypeTransformations": { +"description": "A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type.", +"id": "GooglePrivacyDlpV2InfoTypeTransformations", +"properties": { +"transformations": { +"description": "Required. Transformation for each infoType. Cannot specify more than one for a given infoType.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeTransformation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectConfig": { +"description": "Configuration description of the scanning process. When used with redactContent only info_types and min_likelihood are currently used.", +"id": "GooglePrivacyDlpV2InspectConfig", +"properties": { +"contentOptions": { +"description": "Deprecated and unused.", +"items": { +"enum": [ +"CONTENT_UNSPECIFIED", +"CONTENT_TEXT", +"CONTENT_IMAGE" +], +"enumDescriptions": [ +"Includes entire content of a file or a data stream.", +"Text content within the data, excluding any metadata.", +"Images found in the data." +], +"type": "string" +}, +"type": "array" +}, +"customInfoTypes": { +"description": "CustomInfoTypes provided by the user. See https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes to learn more.", +"items": { +"$ref": "GooglePrivacyDlpV2CustomInfoType" +}, +"type": "array" +}, +"excludeInfoTypes": { +"description": "When true, excludes type information of the findings. This is not used for data profiling.", +"type": "boolean" +}, +"includeQuote": { +"description": "When true, a contextual quote from the data that triggered a finding is included in the response; see Finding.quote. This is not used for data profiling.", +"type": "boolean" +}, +"infoTypes": { +"description": "Restricts what info_types to look for. The values must correspond to InfoType values returned by ListInfoTypes or listed at https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference. When no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose a default list of detectors to run, which may change over time. If you need precise control and predictability as to what detectors are run you should specify specific InfoTypes listed in the reference, otherwise a default list will be used, which may change over time.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoType" +}, +"type": "array" +}, +"limits": { +"$ref": "GooglePrivacyDlpV2FindingLimits", +"description": "Configuration to control the number of findings returned. This is not used for data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error. When set within an InspectJobConfig, the specified maximum values aren't hard limits. If an inspection job reaches these limits, the job ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns can be multiple times higher than these maximum values." +}, +"minLikelihood": { +"description": "Only returns findings equal to or above this threshold. The default is POSSIBLE. In general, the highest likelihood setting yields the fewest findings in results and the lowest chance of a false positive. For more information, see [Match likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood).", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Default value; same as POSSIBLE.", +"Highest chance of a false positive.", +"High chance of a false positive.", +"Some matching signals. The default value.", +"Low chance of a false positive.", +"Confidence level is high. Lowest chance of a false positive." +], +"type": "string" +}, +"minLikelihoodPerInfoType": { +"description": "Minimum likelihood per infotype. For each infotype, a user can specify a minimum likelihood. The system only returns a finding if its likelihood is above this threshold. If this field is not set, the system uses the InspectConfig min_likelihood.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeLikelihood" +}, +"type": "array" +}, +"ruleSet": { +"description": "Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end, other rules are executed in the order they are specified for each info type.", +"items": { +"$ref": "GooglePrivacyDlpV2InspectionRuleSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectContentRequest": { +"description": "Request to search for potentially sensitive info in a ContentItem.", +"id": "GooglePrivacyDlpV2InspectContentRequest", +"properties": { +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "Configuration for the inspector. What specified here will override the template referenced by the inspect_template_name argument." +}, +"inspectTemplateName": { +"description": "Template to use. Any configuration directly specified in inspect_config will override those set in the template. Singular fields that are set in this request will replace their corresponding fields in the template. Repeated fields are appended. Singular sub-messages and groups are recursively merged.", +"type": "string" +}, +"item": { +"$ref": "GooglePrivacyDlpV2ContentItem", +"description": "The item to inspect." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectContentResponse": { +"description": "Results of inspecting an item.", +"id": "GooglePrivacyDlpV2InspectContentResponse", +"properties": { +"result": { +"$ref": "GooglePrivacyDlpV2InspectResult", +"description": "The findings." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectDataSourceDetails": { +"description": "The results of an inspect DataSource job.", +"id": "GooglePrivacyDlpV2InspectDataSourceDetails", +"properties": { +"requestedOptions": { +"$ref": "GooglePrivacyDlpV2RequestedOptions", +"description": "The configuration used for this job." +}, +"result": { +"$ref": "GooglePrivacyDlpV2Result", +"description": "A summary of the outcome of this inspection job." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectJobConfig": { +"description": "Controls what and how to inspect for findings.", +"id": "GooglePrivacyDlpV2InspectJobConfig", +"properties": { +"actions": { +"description": "Actions to execute at the completion of the job.", +"items": { +"$ref": "GooglePrivacyDlpV2Action" +}, +"type": "array" +}, +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "How and what to scan for." +}, +"inspectTemplateName": { +"description": "If provided, will be used as the default for all values in InspectConfig. `inspect_config` will be merged into the values persisted as part of the template.", +"type": "string" +}, +"storageConfig": { +"$ref": "GooglePrivacyDlpV2StorageConfig", +"description": "The data to scan." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectResult": { +"description": "All the findings for a single scanned item.", +"id": "GooglePrivacyDlpV2InspectResult", +"properties": { +"findings": { +"description": "List of findings for an item.", +"items": { +"$ref": "GooglePrivacyDlpV2Finding" +}, +"type": "array" +}, +"findingsTruncated": { +"description": "If true, then this item might have more findings than were returned, and the findings returned are an arbitrary subset of all findings. The findings list might be truncated because the input items were too large, or because the server reached the maximum amount of resources allowed for a single API call. For best results, divide the input into smaller batches.", +"type": "boolean" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectTemplate": { +"description": "The inspectTemplate contains a configuration (set of types of sensitive data to be detected) to be used anywhere you otherwise would normally specify InspectConfig. See https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to learn more.", +"id": "GooglePrivacyDlpV2InspectTemplate", +"properties": { +"createTime": { +"description": "Output only. The creation timestamp of an inspectTemplate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Short description (max 256 chars).", +"type": "string" +}, +"displayName": { +"description": "Display name (max 256 chars).", +"type": "string" +}, +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "The core content of the template. Configuration of the scanning process." +}, +"name": { +"description": "Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`;", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update timestamp of an inspectTemplate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectionRule": { +"description": "A single inspection rule to be applied to infoTypes, specified in `InspectionRuleSet`.", +"id": "GooglePrivacyDlpV2InspectionRule", +"properties": { +"exclusionRule": { +"$ref": "GooglePrivacyDlpV2ExclusionRule", +"description": "Exclusion rule." +}, +"hotwordRule": { +"$ref": "GooglePrivacyDlpV2HotwordRule", +"description": "Hotword-based detection rule." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2InspectionRuleSet": { +"description": "Rule set for modifying a set of infoTypes to alter behavior under certain circumstances, depending on the specific details of the rules within the set.", +"id": "GooglePrivacyDlpV2InspectionRuleSet", +"properties": { +"infoTypes": { +"description": "List of infoTypes this rule set is applied to.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoType" +}, +"type": "array" +}, +"rules": { +"description": "Set of rules to be applied to infoTypes. The rules are applied in order.", +"items": { +"$ref": "GooglePrivacyDlpV2InspectionRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2JobNotificationEmails": { +"description": "Sends an email when the job completes. The email goes to IAM project owners and technical [Essential Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).", +"id": "GooglePrivacyDlpV2JobNotificationEmails", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2JobTrigger": { +"description": "Contains a configuration to make API calls on a repeating basis. See https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers to learn more.", +"id": "GooglePrivacyDlpV2JobTrigger", +"properties": { +"createTime": { +"description": "Output only. The creation timestamp of a triggeredJob.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User provided description (max 256 chars)", +"type": "string" +}, +"displayName": { +"description": "Display name (max 100 chars)", +"type": "string" +}, +"errors": { +"description": "Output only. A stream of errors encountered when the trigger was activated. Repeated errors may result in the JobTrigger automatically being paused. Will return the last 100 errors. Whenever the JobTrigger is modified this list will be cleared.", +"items": { +"$ref": "GooglePrivacyDlpV2Error" +}, +"readOnly": true, +"type": "array" +}, +"inspectJob": { +"$ref": "GooglePrivacyDlpV2InspectJobConfig", +"description": "For inspect jobs, a snapshot of the configuration." +}, +"lastRunTime": { +"description": "Output only. The timestamp of the last time this trigger executed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Unique resource name for the triggeredJob, assigned by the service when the triggeredJob is created, for example `projects/dlp-test-project/jobTriggers/53234423`.", +"type": "string" +}, +"status": { +"description": "Required. A status for this trigger.", +"enum": [ +"STATUS_UNSPECIFIED", +"HEALTHY", +"PAUSED", +"CANCELLED" +], +"enumDescriptions": [ +"Unused.", +"Trigger is healthy.", +"Trigger is temporarily paused.", +"Trigger is cancelled and can not be resumed." +], +"type": "string" +}, +"triggers": { +"description": "A list of triggers which will be OR'ed together. Only one in the list needs to trigger for a job to be started. The list may contain only a single Schedule trigger and must have at least one object.", +"items": { +"$ref": "GooglePrivacyDlpV2Trigger" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last update timestamp of a triggeredJob.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KAnonymityConfig": { +"description": "k-anonymity metric, used for analysis of reidentification risk.", +"id": "GooglePrivacyDlpV2KAnonymityConfig", +"properties": { +"entityId": { +"$ref": "GooglePrivacyDlpV2EntityId", +"description": "Message indicating that multiple rows might be associated to a single individual. If the same entity_id is associated to multiple quasi-identifier tuples over distinct rows, we consider the entire collection of tuples as the composite quasi-identifier. This collection is a multiset: the order in which the different tuples appear in the dataset is ignored, but their frequency is taken into account. Important note: a maximum of 1000 rows can be associated to a single entity ID. If more rows are associated with the same entity ID, some might be ignored." +}, +"quasiIds": { +"description": "Set of fields to compute k-anonymity over. When multiple fields are specified, they are considered a single composite key. Structs and repeated data types are not supported; however, nested fields are supported so long as they are not structs themselves or nested within a repeated field.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KAnonymityEquivalenceClass": { +"description": "The set of columns' values that share the same ldiversity value", +"id": "GooglePrivacyDlpV2KAnonymityEquivalenceClass", +"properties": { +"equivalenceClassSize": { +"description": "Size of the equivalence class, for example number of rows with the above set of values.", +"format": "int64", +"type": "string" +}, +"quasiIdsValues": { +"description": "Set of values defining the equivalence class. One value per quasi-identifier column in the original KAnonymity metric message. The order is always the same as the original request.", +"items": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KAnonymityHistogramBucket": { +"description": "Histogram of k-anonymity equivalence classes.", +"id": "GooglePrivacyDlpV2KAnonymityHistogramBucket", +"properties": { +"bucketSize": { +"description": "Total number of equivalence classes in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValueCount": { +"description": "Total number of distinct equivalence classes in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValues": { +"description": "Sample of equivalence classes in this bucket. The total number of classes returned per bucket is capped at 20.", +"items": { +"$ref": "GooglePrivacyDlpV2KAnonymityEquivalenceClass" +}, +"type": "array" +}, +"equivalenceClassSizeLowerBound": { +"description": "Lower bound on the size of the equivalence classes in this bucket.", +"format": "int64", +"type": "string" +}, +"equivalenceClassSizeUpperBound": { +"description": "Upper bound on the size of the equivalence classes in this bucket.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KAnonymityResult": { +"description": "Result of the k-anonymity computation.", +"id": "GooglePrivacyDlpV2KAnonymityResult", +"properties": { +"equivalenceClassHistogramBuckets": { +"description": "Histogram of k-anonymity equivalence classes.", +"items": { +"$ref": "GooglePrivacyDlpV2KAnonymityHistogramBucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KMapEstimationConfig": { +"description": "Reidentifiability metric. This corresponds to a risk model similar to what is called \"journalist risk\" in the literature, except the attack dataset is statistically modeled instead of being perfectly known. This can be done using publicly available data (like the US Census), or using a custom statistical model (indicated as one or several BigQuery tables), or by extrapolating from the distribution of values in the input dataset.", +"id": "GooglePrivacyDlpV2KMapEstimationConfig", +"properties": { +"auxiliaryTables": { +"description": "Several auxiliary tables can be used in the analysis. Each custom_tag used to tag a quasi-identifiers column must appear in exactly one column of one auxiliary table.", +"items": { +"$ref": "GooglePrivacyDlpV2AuxiliaryTable" +}, +"type": "array" +}, +"quasiIds": { +"description": "Required. Fields considered to be quasi-identifiers. No two columns can have the same tag.", +"items": { +"$ref": "GooglePrivacyDlpV2TaggedField" +}, +"type": "array" +}, +"regionCode": { +"description": "ISO 3166-1 alpha-2 region code to use in the statistical modeling. Set if no column is tagged with a region-specific InfoType (like US_ZIP_5) or a region code.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KMapEstimationHistogramBucket": { +"description": "A KMapEstimationHistogramBucket message with the following values: min_anonymity: 3 max_anonymity: 5 frequency: 42 means that there are 42 records whose quasi-identifier values correspond to 3, 4 or 5 people in the overlying population. An important particular case is when min_anonymity = max_anonymity = 1: the frequency field then corresponds to the number of uniquely identifiable records.", +"id": "GooglePrivacyDlpV2KMapEstimationHistogramBucket", +"properties": { +"bucketSize": { +"description": "Number of records within these anonymity bounds.", +"format": "int64", +"type": "string" +}, +"bucketValueCount": { +"description": "Total number of distinct quasi-identifier tuple values in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValues": { +"description": "Sample of quasi-identifier tuple values in this bucket. The total number of classes returned per bucket is capped at 20.", +"items": { +"$ref": "GooglePrivacyDlpV2KMapEstimationQuasiIdValues" +}, +"type": "array" +}, +"maxAnonymity": { +"description": "Always greater than or equal to min_anonymity.", +"format": "int64", +"type": "string" +}, +"minAnonymity": { +"description": "Always positive.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KMapEstimationQuasiIdValues": { +"description": "A tuple of values for the quasi-identifier columns.", +"id": "GooglePrivacyDlpV2KMapEstimationQuasiIdValues", +"properties": { +"estimatedAnonymity": { +"description": "The estimated anonymity for these quasi-identifier values.", +"format": "int64", +"type": "string" +}, +"quasiIdsValues": { +"description": "The quasi-identifier values.", +"items": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KMapEstimationResult": { +"description": "Result of the reidentifiability analysis. Note that these results are an estimation, not exact values.", +"id": "GooglePrivacyDlpV2KMapEstimationResult", +"properties": { +"kMapEstimationHistogram": { +"description": "The intervals [min_anonymity, max_anonymity] do not overlap. If a value doesn't correspond to any such interval, the associated frequency is zero. For example, the following records: {min_anonymity: 1, max_anonymity: 1, frequency: 17} {min_anonymity: 2, max_anonymity: 3, frequency: 42} {min_anonymity: 5, max_anonymity: 10, frequency: 99} mean that there are no record with an estimated anonymity of 4, 5, or larger than 10.", +"items": { +"$ref": "GooglePrivacyDlpV2KMapEstimationHistogramBucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Key": { +"description": "A unique identifier for a Datastore entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts.", +"id": "GooglePrivacyDlpV2Key", +"properties": { +"partitionId": { +"$ref": "GooglePrivacyDlpV2PartitionId", +"description": "Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition." +}, +"path": { +"description": "The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. A path can never be empty, and a path can have at most 100 elements.", +"items": { +"$ref": "GooglePrivacyDlpV2PathElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KindExpression": { +"description": "A representation of a Datastore kind.", +"id": "GooglePrivacyDlpV2KindExpression", +"properties": { +"name": { +"description": "The name of the kind.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2KmsWrappedCryptoKey": { +"description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt For more information, see [Creating a wrapped key] (https://cloud.google.com/sensitive-data-protection/docs/create-wrapped-key). Note: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).", +"id": "GooglePrivacyDlpV2KmsWrappedCryptoKey", +"properties": { +"cryptoKeyName": { +"description": "Required. The resource name of the KMS CryptoKey to use for unwrapping.", +"type": "string" +}, +"wrappedKey": { +"description": "Required. The wrapped data crypto key.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LDiversityConfig": { +"description": "l-diversity metric, used for analysis of reidentification risk.", +"id": "GooglePrivacyDlpV2LDiversityConfig", +"properties": { +"quasiIds": { +"description": "Set of quasi-identifiers indicating how equivalence classes are defined for the l-diversity computation. When multiple fields are specified, they are considered a single composite key.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +}, +"sensitiveAttribute": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Sensitive field for computing the l-value." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LDiversityEquivalenceClass": { +"description": "The set of columns' values that share the same ldiversity value.", +"id": "GooglePrivacyDlpV2LDiversityEquivalenceClass", +"properties": { +"equivalenceClassSize": { +"description": "Size of the k-anonymity equivalence class.", +"format": "int64", +"type": "string" +}, +"numDistinctSensitiveValues": { +"description": "Number of distinct sensitive values in this equivalence class.", +"format": "int64", +"type": "string" +}, +"quasiIdsValues": { +"description": "Quasi-identifier values defining the k-anonymity equivalence class. The order is always the same as the original request.", +"items": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"type": "array" +}, +"topSensitiveValues": { +"description": "Estimated frequencies of top sensitive values.", +"items": { +"$ref": "GooglePrivacyDlpV2ValueFrequency" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LDiversityHistogramBucket": { +"description": "Histogram of l-diversity equivalence class sensitive value frequencies.", +"id": "GooglePrivacyDlpV2LDiversityHistogramBucket", +"properties": { +"bucketSize": { +"description": "Total number of equivalence classes in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValueCount": { +"description": "Total number of distinct equivalence classes in this bucket.", +"format": "int64", +"type": "string" +}, +"bucketValues": { +"description": "Sample of equivalence classes in this bucket. The total number of classes returned per bucket is capped at 20.", +"items": { +"$ref": "GooglePrivacyDlpV2LDiversityEquivalenceClass" +}, +"type": "array" +}, +"sensitiveValueFrequencyLowerBound": { +"description": "Lower bound on the sensitive value frequencies of the equivalence classes in this bucket.", +"format": "int64", +"type": "string" +}, +"sensitiveValueFrequencyUpperBound": { +"description": "Upper bound on the sensitive value frequencies of the equivalence classes in this bucket.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LDiversityResult": { +"description": "Result of the l-diversity computation.", +"id": "GooglePrivacyDlpV2LDiversityResult", +"properties": { +"sensitiveValueFrequencyHistogramBuckets": { +"description": "Histogram of l-diversity equivalence class sensitive value frequencies.", +"items": { +"$ref": "GooglePrivacyDlpV2LDiversityHistogramBucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LargeCustomDictionaryConfig": { +"description": "Configuration for a custom dictionary created from a data source of any size up to the maximum size defined in the [limits](https://cloud.google.com/sensitive-data-protection/limits) page. The artifacts of dictionary creation are stored in the specified Cloud Storage location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries that satisfy the size requirements.", +"id": "GooglePrivacyDlpV2LargeCustomDictionaryConfig", +"properties": { +"bigQueryField": { +"$ref": "GooglePrivacyDlpV2BigQueryField", +"description": "Field in a BigQuery table where each cell represents a dictionary phrase." +}, +"cloudStorageFileSet": { +"$ref": "GooglePrivacyDlpV2CloudStorageFileSet", +"description": "Set of files containing newline-delimited lists of dictionary phrases." +}, +"outputPath": { +"$ref": "GooglePrivacyDlpV2CloudStoragePath", +"description": "Location to store dictionary artifacts in Cloud Storage. These files will only be accessible by project owners and the DLP API. If any of these artifacts are modified, the dictionary is considered invalid and can no longer be used." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LargeCustomDictionaryStats": { +"description": "Summary statistics of a custom dictionary.", +"id": "GooglePrivacyDlpV2LargeCustomDictionaryStats", +"properties": { +"approxNumPhrases": { +"description": "Approximate number of distinct phrases in the dictionary.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2LeaveUntransformed": { +"description": "Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response.", +"id": "GooglePrivacyDlpV2LeaveUntransformed", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2LikelihoodAdjustment": { +"description": "Message for specifying an adjustment to the likelihood of a finding as part of a detection rule.", +"id": "GooglePrivacyDlpV2LikelihoodAdjustment", +"properties": { +"fixedLikelihood": { +"description": "Set the likelihood of a finding to a fixed value.", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Default value; same as POSSIBLE.", +"Highest chance of a false positive.", +"High chance of a false positive.", +"Some matching signals. The default value.", +"Low chance of a false positive.", +"Confidence level is high. Lowest chance of a false positive." +], +"type": "string" +}, +"relativeLikelihood": { +"description": "Increase or decrease the likelihood by the specified number of levels. For example, if a finding would be `POSSIBLE` without the detection rule and `relative_likelihood` is 1, then it is upgraded to `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`. Likelihood may never drop below `VERY_UNLIKELY` or exceed `VERY_LIKELY`, so applying an adjustment of 1 followed by an adjustment of -1 when base likelihood is `VERY_LIKELY` will result in a final likelihood of `LIKELY`.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListColumnDataProfilesResponse": { +"description": "List of profiles generated for a given organization or project.", +"id": "GooglePrivacyDlpV2ListColumnDataProfilesResponse", +"properties": { +"columnDataProfiles": { +"description": "List of data profiles.", +"items": { +"$ref": "GooglePrivacyDlpV2ColumnDataProfile" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next page token.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListConnectionsResponse": { +"description": "Response message for ListConnections.", +"id": "GooglePrivacyDlpV2ListConnectionsResponse", +"properties": { +"connections": { +"description": "List of connections.", +"items": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results. An empty value means there are no more results.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListDeidentifyTemplatesResponse": { +"description": "Response message for ListDeidentifyTemplates.", +"id": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse", +"properties": { +"deidentifyTemplates": { +"description": "List of deidentify templates, up to page_size in ListDeidentifyTemplatesRequest.", +"items": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the next page is available then the next page token to be used in the following ListDeidentifyTemplates request.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListDiscoveryConfigsResponse": { +"description": "Response message for ListDiscoveryConfigs.", +"id": "GooglePrivacyDlpV2ListDiscoveryConfigsResponse", +"properties": { +"discoveryConfigs": { +"description": "List of configs, up to page_size in ListDiscoveryConfigsRequest.", +"items": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the next page is available then this value is the next page token to be used in the following ListDiscoveryConfigs request.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListDlpJobsResponse": { +"description": "The response message for listing DLP jobs.", +"id": "GooglePrivacyDlpV2ListDlpJobsResponse", +"properties": { +"jobs": { +"description": "A list of DlpJobs that matches the specified filter in the request.", +"items": { +"$ref": "GooglePrivacyDlpV2DlpJob" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListFileStoreDataProfilesResponse": { +"description": "List of file store data profiles generated for a given organization or project.", +"id": "GooglePrivacyDlpV2ListFileStoreDataProfilesResponse", +"properties": { +"fileStoreDataProfiles": { +"description": "List of data profiles.", +"items": { +"$ref": "GooglePrivacyDlpV2FileStoreDataProfile" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next page token.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListInfoTypesResponse": { +"description": "Response to the ListInfoTypes request.", +"id": "GooglePrivacyDlpV2ListInfoTypesResponse", +"properties": { +"infoTypes": { +"description": "Set of sensitive infoTypes.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeDescription" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListInspectTemplatesResponse": { +"description": "Response message for ListInspectTemplates.", +"id": "GooglePrivacyDlpV2ListInspectTemplatesResponse", +"properties": { +"inspectTemplates": { +"description": "List of inspectTemplates, up to page_size in ListInspectTemplatesRequest.", +"items": { +"$ref": "GooglePrivacyDlpV2InspectTemplate" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the next page is available then the next page token to be used in the following ListInspectTemplates request.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListJobTriggersResponse": { +"description": "Response message for ListJobTriggers.", +"id": "GooglePrivacyDlpV2ListJobTriggersResponse", +"properties": { +"jobTriggers": { +"description": "List of triggeredJobs, up to page_size in ListJobTriggersRequest.", +"items": { +"$ref": "GooglePrivacyDlpV2JobTrigger" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the next page is available then this value is the next page token to be used in the following ListJobTriggers request.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListProjectDataProfilesResponse": { +"description": "List of profiles generated for a given organization or project.", +"id": "GooglePrivacyDlpV2ListProjectDataProfilesResponse", +"properties": { +"nextPageToken": { +"description": "The next page token.", +"type": "string" +}, +"projectDataProfiles": { +"description": "List of data profiles.", +"items": { +"$ref": "GooglePrivacyDlpV2ProjectDataProfile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListStoredInfoTypesResponse": { +"description": "Response message for ListStoredInfoTypes.", +"id": "GooglePrivacyDlpV2ListStoredInfoTypesResponse", +"properties": { +"nextPageToken": { +"description": "If the next page is available then the next page token to be used in the following ListStoredInfoTypes request.", +"type": "string" +}, +"storedInfoTypes": { +"description": "List of storedInfoTypes, up to page_size in ListStoredInfoTypesRequest.", +"items": { +"$ref": "GooglePrivacyDlpV2StoredInfoType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ListTableDataProfilesResponse": { +"description": "List of profiles generated for a given organization or project.", +"id": "GooglePrivacyDlpV2ListTableDataProfilesResponse", +"properties": { +"nextPageToken": { +"description": "The next page token.", +"type": "string" +}, +"tableDataProfiles": { +"description": "List of data profiles.", +"items": { +"$ref": "GooglePrivacyDlpV2TableDataProfile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Location": { +"description": "Specifies the location of the finding.", +"id": "GooglePrivacyDlpV2Location", +"properties": { +"byteRange": { +"$ref": "GooglePrivacyDlpV2Range", +"description": "Zero-based byte offsets delimiting the finding. These are relative to the finding's containing element. Note that when the content is not textual, this references the UTF-8 encoded textual representation of the content. Omitted if content is an image." +}, +"codepointRange": { +"$ref": "GooglePrivacyDlpV2Range", +"description": "Unicode character offsets delimiting the finding. These are relative to the finding's containing element. Provided when the content is text." +}, +"container": { +"$ref": "GooglePrivacyDlpV2Container", +"description": "Information about the container where this finding occurred, if available." +}, +"contentLocations": { +"description": "List of nested objects pointing to the precise location of the finding within the file or record.", +"items": { +"$ref": "GooglePrivacyDlpV2ContentLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Manual": { +"description": "Job trigger option for hybrid jobs. Jobs must be manually created and finished.", +"id": "GooglePrivacyDlpV2Manual", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2MetadataLocation": { +"description": "Metadata Location", +"id": "GooglePrivacyDlpV2MetadataLocation", +"properties": { +"storageLabel": { +"$ref": "GooglePrivacyDlpV2StorageMetadataLabel", +"description": "Storage metadata." +}, +"type": { +"description": "Type of metadata containing the finding.", +"enum": [ +"METADATATYPE_UNSPECIFIED", +"STORAGE_METADATA" +], +"enumDescriptions": [ +"Unused", +"General file metadata provided by Cloud Storage." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2NumericalStatsConfig": { +"description": "Compute numerical stats over an individual column, including min, max, and quantiles.", +"id": "GooglePrivacyDlpV2NumericalStatsConfig", +"properties": { +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Field to compute numerical stats on. Supported types are integer, float, date, datetime, timestamp, time." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2NumericalStatsResult": { +"description": "Result of the numerical stats computation.", +"id": "GooglePrivacyDlpV2NumericalStatsResult", +"properties": { +"maxValue": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Maximum value appearing in the column." +}, +"minValue": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Minimum value appearing in the column." +}, +"quantileValues": { +"description": "List of 99 values that partition the set of field values into 100 equal sized buckets.", +"items": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OrConditions": { +"description": "There is an OR relationship between these attributes. They are used to determine if a table should be scanned or not in Discovery.", +"id": "GooglePrivacyDlpV2OrConditions", +"properties": { +"minAge": { +"description": "Minimum age a table must have before Cloud DLP can profile it. Value must be 1 hour or greater.", +"format": "google-duration", +"type": "string" +}, +"minRowCount": { +"description": "Minimum number of rows that should be present before Cloud DLP profiles a table", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OrgConfig": { +"description": "Project and scan location information. Only set when the parent is an org.", +"id": "GooglePrivacyDlpV2OrgConfig", +"properties": { +"location": { +"$ref": "GooglePrivacyDlpV2DiscoveryStartingLocation", +"description": "The data to scan: folder, org, or project" +}, +"projectId": { +"description": "The project that will run the scan. The DLP service account that exists within this project must have access to all resources that are profiled, and the DLP API must be enabled.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherCloudDiscoveryStartingLocation": { +"description": "The other cloud starting location for discovery.", +"id": "GooglePrivacyDlpV2OtherCloudDiscoveryStartingLocation", +"properties": { +"awsLocation": { +"$ref": "GooglePrivacyDlpV2AwsDiscoveryStartingLocation", +"description": "The AWS starting location for discovery." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherCloudDiscoveryTarget": { +"description": "Target used to match against for discovery of resources from other clouds. An [AWS connector in Security Command Center (Enterprise](https://cloud.google.com/security-command-center/docs/connect-scc-to-aws) is required to use this feature.", +"id": "GooglePrivacyDlpV2OtherCloudDiscoveryTarget", +"properties": { +"conditions": { +"$ref": "GooglePrivacyDlpV2DiscoveryOtherCloudConditions", +"description": "Optional. In addition to matching the filter, these conditions must be true before a profile is generated." +}, +"dataSourceType": { +"$ref": "GooglePrivacyDlpV2DataSourceType", +"description": "Required. The type of data profiles generated by this discovery target. Supported values are: * aws/s3/bucket" +}, +"disabled": { +"$ref": "GooglePrivacyDlpV2Disabled", +"description": "Disable profiling for resources that match this filter." +}, +"filter": { +"$ref": "GooglePrivacyDlpV2DiscoveryOtherCloudFilter", +"description": "Required. The resources that the discovery cadence applies to. The first target with a matching filter will be the one to apply to a resource." +}, +"generationCadence": { +"$ref": "GooglePrivacyDlpV2DiscoveryOtherCloudGenerationCadence", +"description": "How often and when to update data profiles. New resources that match both the filter and conditions are scanned as quickly as possible depending on system capacity." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherCloudResourceCollection": { +"description": "Match resources using regex filters.", +"id": "GooglePrivacyDlpV2OtherCloudResourceCollection", +"properties": { +"includeRegexes": { +"$ref": "GooglePrivacyDlpV2OtherCloudResourceRegexes", +"description": "A collection of regular expressions to match a resource against." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherCloudResourceRegex": { +"description": "A pattern to match against one or more resources. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", +"id": "GooglePrivacyDlpV2OtherCloudResourceRegex", +"properties": { +"amazonS3BucketRegex": { +"$ref": "GooglePrivacyDlpV2AmazonS3BucketRegex", +"description": "Regex for Amazon S3 buckets." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherCloudResourceRegexes": { +"description": "A collection of regular expressions to determine what resources to match against.", +"id": "GooglePrivacyDlpV2OtherCloudResourceRegexes", +"properties": { +"patterns": { +"description": "A group of regular expression patterns to match against one or more resources. Maximum of 100 entries. The sum of all regular expression's length can't exceed 10 KiB.", +"items": { +"$ref": "GooglePrivacyDlpV2OtherCloudResourceRegex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherCloudSingleResourceReference": { +"description": "Identifies a single resource, like a single Amazon S3 bucket.", +"id": "GooglePrivacyDlpV2OtherCloudSingleResourceReference", +"properties": { +"amazonS3Bucket": { +"$ref": "GooglePrivacyDlpV2AmazonS3Bucket", +"description": "Amazon S3 bucket." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OtherInfoTypeSummary": { +"description": "Infotype details for other infoTypes found within a column.", +"id": "GooglePrivacyDlpV2OtherInfoTypeSummary", +"properties": { +"estimatedPrevalence": { +"description": "Approximate percentage of non-null rows that contained data detected by this infotype.", +"format": "int32", +"type": "integer" +}, +"excludedFromAnalysis": { +"description": "Whether this infoType was excluded from sensitivity and risk analysis due to factors such as low prevalence (subject to change).", +"type": "boolean" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "The other infoType." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2OutputStorageConfig": { +"description": "Cloud repository for storing output.", +"id": "GooglePrivacyDlpV2OutputStorageConfig", +"properties": { +"outputSchema": { +"description": "Schema used for writing the findings for Inspect jobs. This field is only used for Inspect and must be unspecified for Risk jobs. Columns are derived from the `Finding` object. If appending to an existing table, any columns from the predefined schema that are missing will be added. No columns in the existing table will be deleted. If unspecified, then all available columns will be used for a new table or an (existing) table with no schema, and no changes will be made to an existing table that has a schema. Only for use with external storage.", +"enum": [ +"OUTPUT_SCHEMA_UNSPECIFIED", +"BASIC_COLUMNS", +"GCS_COLUMNS", +"DATASTORE_COLUMNS", +"BIG_QUERY_COLUMNS", +"ALL_COLUMNS" +], +"enumDescriptions": [ +"Unused.", +"Basic schema including only `info_type`, `quote`, `certainty`, and `timestamp`.", +"Schema tailored to findings from scanning Cloud Storage.", +"Schema tailored to findings from scanning Google Datastore.", +"Schema tailored to findings from scanning Google BigQuery.", +"Schema containing all columns." +], +"type": "string" +}, +"table": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Store findings in an existing table or a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used for generating the date details. For Inspect, each column in an existing output table must have the same name, type, and mode of a field in the `Finding` object. For Risk, an existing output table should be the output of a previous Risk analysis job run on the same source table, with the same privacy metric and quasi-identifiers. Risk jobs that analyze the same table but compute a different privacy metric, or use different sets of quasi-identifiers, cannot store their results in the same table." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PartitionId": { +"description": "Datastore partition ID. A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID.", +"id": "GooglePrivacyDlpV2PartitionId", +"properties": { +"namespaceId": { +"description": "If not empty, the ID of the namespace to which the entities belong.", +"type": "string" +}, +"projectId": { +"description": "The ID of the project to which the entities belong.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PathElement": { +"description": "A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.", +"id": "GooglePrivacyDlpV2PathElement", +"properties": { +"id": { +"description": "The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.", +"format": "int64", +"type": "string" +}, +"kind": { +"description": "The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`.", +"type": "string" +}, +"name": { +"description": "The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PrimitiveTransformation": { +"description": "A rule for transforming a value.", +"id": "GooglePrivacyDlpV2PrimitiveTransformation", +"properties": { +"bucketingConfig": { +"$ref": "GooglePrivacyDlpV2BucketingConfig", +"description": "Bucketing" +}, +"characterMaskConfig": { +"$ref": "GooglePrivacyDlpV2CharacterMaskConfig", +"description": "Mask" +}, +"cryptoDeterministicConfig": { +"$ref": "GooglePrivacyDlpV2CryptoDeterministicConfig", +"description": "Deterministic Crypto" +}, +"cryptoHashConfig": { +"$ref": "GooglePrivacyDlpV2CryptoHashConfig", +"description": "Crypto" +}, +"cryptoReplaceFfxFpeConfig": { +"$ref": "GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig", +"description": "Ffx-Fpe. Strongly discouraged, consider using CryptoDeterministicConfig instead. Fpe is computationally expensive incurring latency costs." +}, +"dateShiftConfig": { +"$ref": "GooglePrivacyDlpV2DateShiftConfig", +"description": "Date Shift" +}, +"fixedSizeBucketingConfig": { +"$ref": "GooglePrivacyDlpV2FixedSizeBucketingConfig", +"description": "Fixed size bucketing" +}, +"redactConfig": { +"$ref": "GooglePrivacyDlpV2RedactConfig", +"description": "Redact" +}, +"replaceConfig": { +"$ref": "GooglePrivacyDlpV2ReplaceValueConfig", +"description": "Replace with a specified value." +}, +"replaceDictionaryConfig": { +"$ref": "GooglePrivacyDlpV2ReplaceDictionaryConfig", +"description": "Replace with a value randomly drawn (with replacement) from a dictionary." +}, +"replaceWithInfoTypeConfig": { +"$ref": "GooglePrivacyDlpV2ReplaceWithInfoTypeConfig", +"description": "Replace with infotype" +}, +"timePartConfig": { +"$ref": "GooglePrivacyDlpV2TimePartConfig", +"description": "Time extraction" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PrivacyMetric": { +"description": "Privacy metric to compute for reidentification risk analysis.", +"id": "GooglePrivacyDlpV2PrivacyMetric", +"properties": { +"categoricalStatsConfig": { +"$ref": "GooglePrivacyDlpV2CategoricalStatsConfig", +"description": "Categorical stats" +}, +"deltaPresenceEstimationConfig": { +"$ref": "GooglePrivacyDlpV2DeltaPresenceEstimationConfig", +"description": "delta-presence" +}, +"kAnonymityConfig": { +"$ref": "GooglePrivacyDlpV2KAnonymityConfig", +"description": "K-anonymity" +}, +"kMapEstimationConfig": { +"$ref": "GooglePrivacyDlpV2KMapEstimationConfig", +"description": "k-map" +}, +"lDiversityConfig": { +"$ref": "GooglePrivacyDlpV2LDiversityConfig", +"description": "l-diversity" +}, +"numericalStatsConfig": { +"$ref": "GooglePrivacyDlpV2NumericalStatsConfig", +"description": "Numerical stats" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ProfileStatus": { +"description": "Success or errors for the profile generation.", +"id": "GooglePrivacyDlpV2ProfileStatus", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "Profiling status code and optional message. The `status.code` value is 0 (default value) for OK." +}, +"timestamp": { +"description": "Time when the profile generation status was updated", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ProjectDataProfile": { +"description": "An aggregated profile for this project, based on the resources profiled within it.", +"id": "GooglePrivacyDlpV2ProjectDataProfile", +"properties": { +"dataRiskLevel": { +"$ref": "GooglePrivacyDlpV2DataRiskLevel", +"description": "The data risk level of this project." +}, +"fileStoreDataProfileCount": { +"description": "The number of file store data profiles generated for this project.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The resource name of the profile.", +"type": "string" +}, +"profileLastGenerated": { +"description": "The last time the profile was generated.", +"format": "google-datetime", +"type": "string" +}, +"profileStatus": { +"$ref": "GooglePrivacyDlpV2ProfileStatus", +"description": "Success or error status of the last attempt to profile the project." +}, +"projectId": { +"description": "Project ID or account that was profiled.", +"type": "string" +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "The sensitivity score of this project." +}, +"tableDataProfileCount": { +"description": "The number of table data profiles generated for this project.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Proximity": { +"description": "Message for specifying a window around a finding to apply a detection rule.", +"id": "GooglePrivacyDlpV2Proximity", +"properties": { +"windowAfter": { +"description": "Number of characters after the finding to consider.", +"format": "int32", +"type": "integer" +}, +"windowBefore": { +"description": "Number of characters before the finding to consider. For tabular data, if you want to modify the likelihood of an entire column of findngs, set this to 1. For more information, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PubSubCondition": { +"description": "A condition consisting of a value.", +"id": "GooglePrivacyDlpV2PubSubCondition", +"properties": { +"minimumRiskScore": { +"description": "The minimum data risk score that triggers the condition.", +"enum": [ +"PROFILE_SCORE_BUCKET_UNSPECIFIED", +"HIGH", +"MEDIUM_OR_HIGH" +], +"enumDescriptions": [ +"Unused.", +"High risk/sensitivity detected.", +"Medium or high risk/sensitivity detected." +], +"type": "string" +}, +"minimumSensitivityScore": { +"description": "The minimum sensitivity level that triggers the condition.", +"enum": [ +"PROFILE_SCORE_BUCKET_UNSPECIFIED", +"HIGH", +"MEDIUM_OR_HIGH" +], +"enumDescriptions": [ +"Unused.", +"High risk/sensitivity detected.", +"Medium or high risk/sensitivity detected." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PubSubExpressions": { +"description": "An expression, consisting of an operator and conditions.", +"id": "GooglePrivacyDlpV2PubSubExpressions", +"properties": { +"conditions": { +"description": "Conditions to apply to the expression.", +"items": { +"$ref": "GooglePrivacyDlpV2PubSubCondition" +}, +"type": "array" +}, +"logicalOperator": { +"description": "The operator to apply to the collection of conditions.", +"enum": [ +"LOGICAL_OPERATOR_UNSPECIFIED", +"OR", +"AND" +], +"enumDescriptions": [ +"Unused.", +"Conditional OR.", +"Conditional AND." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PubSubNotification": { +"description": "Send a Pub/Sub message into the given Pub/Sub topic to connect other systems to data profile generation. The message payload data will be the byte serialization of `DataProfilePubSubMessage`.", +"id": "GooglePrivacyDlpV2PubSubNotification", +"properties": { +"detailOfMessage": { +"description": "How much data to include in the Pub/Sub message. If the user wishes to limit the size of the message, they can use resource_name and fetch the profile fields they wish to. Per table profile (not per column).", +"enum": [ +"DETAIL_LEVEL_UNSPECIFIED", +"TABLE_PROFILE", +"RESOURCE_NAME", +"FILE_STORE_PROFILE" +], +"enumDescriptions": [ +"Unused.", +"The full table data profile.", +"The name of the profiled resource.", +"The full file store data profile." +], +"type": "string" +}, +"event": { +"description": "The type of event that triggers a Pub/Sub. At most one `PubSubNotification` per EventType is permitted.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"NEW_PROFILE", +"CHANGED_PROFILE", +"SCORE_INCREASED", +"ERROR_CHANGED" +], +"enumDescriptions": [ +"Unused.", +"New profile (not a re-profile).", +"One of the following profile metrics changed: Data risk score, Sensitivity score, Resource visibility, Encryption type, Predicted infoTypes, Other infoTypes", +"Table data risk score or sensitivity score increased.", +"A user (non-internal) error occurred." +], +"type": "string" +}, +"pubsubCondition": { +"$ref": "GooglePrivacyDlpV2DataProfilePubSubCondition", +"description": "Conditions (e.g., data risk or sensitivity level) for triggering a Pub/Sub." +}, +"topic": { +"description": "Cloud Pub/Sub topic to send notifications to. Format is projects/{project}/topics/{topic}.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog": { +"description": "Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag templates are applied to the resource that Cloud DLP scanned. Data Catalog tag templates are stored in the same project and region where the BigQuery table exists. For Cloud DLP to create and apply the tag template, the Cloud DLP service agent must have the `roles/datacatalog.tagTemplateOwner` permission on the project. The tag template contains fields summarizing the results of the DlpJob. Any field values previously written by another DlpJob are deleted. InfoType naming patterns are strictly enforced when using this feature. Findings are persisted in Data Catalog storage and are governed by service-specific policies for Data Catalog. For more information, see [Service Specific Terms](https://cloud.google.com/terms/service-terms). Only a single instance of this action can be specified. This action is allowed only if all resources being scanned are BigQuery tables. Compatible with: Inspect", +"id": "GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2PublishSummaryToCscc": { +"description": "Publish the result summary of a DlpJob to [Security Command Center](https://cloud.google.com/security-command-center). This action is available for only projects that belong to an organization. This action publishes the count of finding instances and their infoTypes. The summary of findings are persisted in Security Command Center and are governed by [service-specific policies for Security Command Center](https://cloud.google.com/terms/service-terms). Only a single instance of this action can be specified. Compatible with: Inspect", +"id": "GooglePrivacyDlpV2PublishSummaryToCscc", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2PublishToChronicle": { +"description": "Message expressing intention to publish to Google Security Operations.", +"id": "GooglePrivacyDlpV2PublishToChronicle", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2PublishToPubSub": { +"description": "Publish a message into a given Pub/Sub topic when DlpJob has completed. The message contains a single field, `DlpJobName`, which is equal to the finished job's [`DlpJob.name`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk", +"id": "GooglePrivacyDlpV2PublishToPubSub", +"properties": { +"topic": { +"description": "Cloud Pub/Sub topic to send notifications to. The topic must have given publishing access rights to the DLP API service account executing the long running DlpJob sending the notifications. Format is projects/{project}/topics/{topic}.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2PublishToSecurityCommandCenter": { +"description": "If set, a summary finding will be created or updated in Security Command Center for each profile.", +"id": "GooglePrivacyDlpV2PublishToSecurityCommandCenter", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2PublishToStackdriver": { +"description": "Enable Stackdriver metric dlp.googleapis.com/finding_count. This will publish a metric to stack driver on each infotype requested and how many findings were found for it. CustomDetectors will be bucketed as 'Custom' under the Stackdriver label 'info_type'.", +"id": "GooglePrivacyDlpV2PublishToStackdriver", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2QuasiId": { +"description": "A column with a semantic tag attached.", +"id": "GooglePrivacyDlpV2QuasiId", +"properties": { +"customTag": { +"description": "A column can be tagged with a custom tag. In this case, the user must indicate an auxiliary table that contains statistical information on the possible values of this column (below).", +"type": "string" +}, +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Required. Identifies the column." +}, +"inferred": { +"$ref": "GoogleProtobufEmpty", +"description": "If no semantic tag is indicated, we infer the statistical model from the distribution of values in the input data" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "A column can be tagged with a InfoType to use the relevant public dataset as a statistical model of population, if available. We currently support US ZIP codes, region codes, ages and genders. To programmatically obtain the list of supported InfoTypes, use ListInfoTypes with the supported_by=RISK_ANALYSIS filter." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2QuasiIdField": { +"description": "A quasi-identifier column has a custom_tag, used to know which column in the data corresponds to which column in the statistical model.", +"id": "GooglePrivacyDlpV2QuasiIdField", +"properties": { +"customTag": { +"description": "A auxiliary field.", +"type": "string" +}, +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Identifies the column." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2QuasiIdentifierField": { +"description": "A quasi-identifier column has a custom_tag, used to know which column in the data corresponds to which column in the statistical model.", +"id": "GooglePrivacyDlpV2QuasiIdentifierField", +"properties": { +"customTag": { +"description": "A column can be tagged with a custom tag. In this case, the user must indicate an auxiliary table that contains statistical information on the possible values of this column (below).", +"type": "string" +}, +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Identifies the column." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2QuoteInfo": { +"description": "Message for infoType-dependent details parsed from quote.", +"id": "GooglePrivacyDlpV2QuoteInfo", +"properties": { +"dateTime": { +"$ref": "GooglePrivacyDlpV2DateTime", +"description": "The date time indicated by the quote." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Range": { +"description": "Generic half-open interval [start, end)", +"id": "GooglePrivacyDlpV2Range", +"properties": { +"end": { +"description": "Index of the last character of the range (exclusive).", +"format": "int64", +"type": "string" +}, +"start": { +"description": "Index of the first character of the range (inclusive).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RecordCondition": { +"description": "A condition for determining whether a transformation should be applied to a field.", +"id": "GooglePrivacyDlpV2RecordCondition", +"properties": { +"expressions": { +"$ref": "GooglePrivacyDlpV2Expressions", +"description": "An expression." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RecordKey": { +"description": "Message for a unique key indicating a record that contains a finding.", +"id": "GooglePrivacyDlpV2RecordKey", +"properties": { +"bigQueryKey": { +"$ref": "GooglePrivacyDlpV2BigQueryKey", +"description": "Datastore key" +}, +"datastoreKey": { +"$ref": "GooglePrivacyDlpV2DatastoreKey", +"description": "BigQuery key" +}, +"idValues": { +"description": "Values of identifying columns in the given row. Order of values matches the order of `identifying_fields` specified in the scanning request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RecordLocation": { +"description": "Location of a finding within a row or record.", +"id": "GooglePrivacyDlpV2RecordLocation", +"properties": { +"fieldId": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Field id of the field containing the finding." +}, +"recordKey": { +"$ref": "GooglePrivacyDlpV2RecordKey", +"description": "Key of the finding." +}, +"tableLocation": { +"$ref": "GooglePrivacyDlpV2TableLocation", +"description": "Location within a `ContentItem.Table`." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RecordSuppression": { +"description": "Configuration to suppress records whose suppression conditions evaluate to true.", +"id": "GooglePrivacyDlpV2RecordSuppression", +"properties": { +"condition": { +"$ref": "GooglePrivacyDlpV2RecordCondition", +"description": "A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RecordTransformation": { +"description": "The field in a record to transform.", +"id": "GooglePrivacyDlpV2RecordTransformation", +"properties": { +"containerTimestamp": { +"description": "Findings container modification timestamp, if applicable.", +"format": "google-datetime", +"type": "string" +}, +"containerVersion": { +"description": "Container version, if available (\"generation\" for Cloud Storage).", +"type": "string" +}, +"fieldId": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "For record transformations, provide a field." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RecordTransformations": { +"description": "A type of transformation that is applied over structured data such as a table.", +"id": "GooglePrivacyDlpV2RecordTransformations", +"properties": { +"fieldTransformations": { +"description": "Transform the record by applying various field transformations.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldTransformation" +}, +"type": "array" +}, +"recordSuppressions": { +"description": "Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.", +"items": { +"$ref": "GooglePrivacyDlpV2RecordSuppression" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RedactConfig": { +"description": "Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the output would be 'My phone number is '.", +"id": "GooglePrivacyDlpV2RedactConfig", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2RedactImageRequest": { +"description": "Request to search for potentially sensitive info in an image and redact it by covering it with a colored rectangle.", +"id": "GooglePrivacyDlpV2RedactImageRequest", +"properties": { +"byteItem": { +"$ref": "GooglePrivacyDlpV2ByteContentItem", +"description": "The content must be PNG, JPEG, SVG or BMP." +}, +"imageRedactionConfigs": { +"description": "The configuration for specifying what content to redact from images.", +"items": { +"$ref": "GooglePrivacyDlpV2ImageRedactionConfig" +}, +"type": "array" +}, +"includeFindings": { +"description": "Whether the response should include findings along with the redacted image.", +"type": "boolean" +}, +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "Configuration for the inspector." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RedactImageResponse": { +"description": "Results of redacting an image.", +"id": "GooglePrivacyDlpV2RedactImageResponse", +"properties": { +"extractedText": { +"description": "If an image was being inspected and the InspectConfig's include_quote was set to true, then this field will include all text, if any, that was found in the image.", +"type": "string" +}, +"inspectResult": { +"$ref": "GooglePrivacyDlpV2InspectResult", +"description": "The findings. Populated when include_findings in the request is true." +}, +"redactedImage": { +"description": "The redacted image. The type will be the same as the original image.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Regex": { +"description": "Message defining a custom regular expression.", +"id": "GooglePrivacyDlpV2Regex", +"properties": { +"groupIndexes": { +"description": "The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"pattern": { +"description": "Pattern defining the regular expression. Its syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ReidentifyContentRequest": { +"description": "Request to re-identify an item.", +"id": "GooglePrivacyDlpV2ReidentifyContentRequest", +"properties": { +"inspectConfig": { +"$ref": "GooglePrivacyDlpV2InspectConfig", +"description": "Configuration for the inspector." +}, +"inspectTemplateName": { +"description": "Template to use. Any configuration directly specified in `inspect_config` will override those set in the template. Singular fields that are set in this request will replace their corresponding fields in the template. Repeated fields are appended. Singular sub-messages and groups are recursively merged.", +"type": "string" +}, +"item": { +"$ref": "GooglePrivacyDlpV2ContentItem", +"description": "The item to re-identify. Will be treated as text." +}, +"locationId": { +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"reidentifyConfig": { +"$ref": "GooglePrivacyDlpV2DeidentifyConfig", +"description": "Configuration for the re-identification of the content item. This field shares the same proto message type that is used for de-identification, however its usage here is for the reversal of the previous de-identification. Re-identification is performed by examining the transformations used to de-identify the items and executing the reverse. This requires that only reversible transformations be provided here. The reversible transformations are: - `CryptoDeterministicConfig` - `CryptoReplaceFfxFpeConfig`" +}, +"reidentifyTemplateName": { +"description": "Template to use. References an instance of `DeidentifyTemplate`. Any configuration directly specified in `reidentify_config` or `inspect_config` will override those set in the template. The `DeidentifyTemplate` used must include only reversible transformations. Singular fields that are set in this request will replace their corresponding fields in the template. Repeated fields are appended. Singular sub-messages and groups are recursively merged.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ReidentifyContentResponse": { +"description": "Results of re-identifying an item.", +"id": "GooglePrivacyDlpV2ReidentifyContentResponse", +"properties": { +"item": { +"$ref": "GooglePrivacyDlpV2ContentItem", +"description": "The re-identified item." +}, +"overview": { +"$ref": "GooglePrivacyDlpV2TransformationOverview", +"description": "An overview of the changes that were made to the `item`." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ReplaceDictionaryConfig": { +"description": "Replace each input value with a value randomly selected from the dictionary.", +"id": "GooglePrivacyDlpV2ReplaceDictionaryConfig", +"properties": { +"wordList": { +"$ref": "GooglePrivacyDlpV2WordList", +"description": "A list of words to select from for random replacement. The [limits](https://cloud.google.com/sensitive-data-protection/limits) page contains details about the size limits of dictionaries." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ReplaceValueConfig": { +"description": "Replace each input value with a given `Value`.", +"id": "GooglePrivacyDlpV2ReplaceValueConfig", +"properties": { +"newValue": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "Value to replace it with." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ReplaceWithInfoTypeConfig": { +"description": "Replace each matching finding with the name of the info_type.", +"id": "GooglePrivacyDlpV2ReplaceWithInfoTypeConfig", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2RequestedDeidentifyOptions": { +"description": "De-identification options.", +"id": "GooglePrivacyDlpV2RequestedDeidentifyOptions", +"properties": { +"snapshotDeidentifyTemplate": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate", +"description": "Snapshot of the state of the `DeidentifyTemplate` from the Deidentify action at the time this job was run." +}, +"snapshotImageRedactTemplate": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate", +"description": "Snapshot of the state of the image transformation `DeidentifyTemplate` from the `Deidentify` action at the time this job was run." +}, +"snapshotStructuredDeidentifyTemplate": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate", +"description": "Snapshot of the state of the structured `DeidentifyTemplate` from the `Deidentify` action at the time this job was run." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RequestedOptions": { +"description": "Snapshot of the inspection configuration.", +"id": "GooglePrivacyDlpV2RequestedOptions", +"properties": { +"jobConfig": { +"$ref": "GooglePrivacyDlpV2InspectJobConfig", +"description": "Inspect config." +}, +"snapshotInspectTemplate": { +"$ref": "GooglePrivacyDlpV2InspectTemplate", +"description": "If run with an InspectTemplate, a snapshot of its state at the time of this run." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RequestedRiskAnalysisOptions": { +"description": "Risk analysis options.", +"id": "GooglePrivacyDlpV2RequestedRiskAnalysisOptions", +"properties": { +"jobConfig": { +"$ref": "GooglePrivacyDlpV2RiskAnalysisJobConfig", +"description": "The job config for the risk job." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Result": { +"description": "All result fields mentioned below are updated while the job is processing.", +"id": "GooglePrivacyDlpV2Result", +"properties": { +"hybridStats": { +"$ref": "GooglePrivacyDlpV2HybridInspectStatistics", +"description": "Statistics related to the processing of hybrid inspect." +}, +"infoTypeStats": { +"description": "Statistics of how many instances of each info type were found during inspect job.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeStats" +}, +"type": "array" +}, +"numRowsProcessed": { +"description": "Number of rows scanned after sampling and time filtering (applicable for row based stores such as BigQuery).", +"format": "int64", +"type": "string" +}, +"processedBytes": { +"description": "Total size in bytes that were processed.", +"format": "int64", +"type": "string" +}, +"totalEstimatedBytes": { +"description": "Estimate of the number of bytes to process.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2RiskAnalysisJobConfig": { +"description": "Configuration for a risk analysis job. See https://cloud.google.com/sensitive-data-protection/docs/concepts-risk-analysis to learn more.", +"id": "GooglePrivacyDlpV2RiskAnalysisJobConfig", +"properties": { +"actions": { +"description": "Actions to execute at the completion of the job. Are executed in the order provided.", +"items": { +"$ref": "GooglePrivacyDlpV2Action" +}, +"type": "array" +}, +"privacyMetric": { +"$ref": "GooglePrivacyDlpV2PrivacyMetric", +"description": "Privacy metric to compute." +}, +"sourceTable": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Input dataset to compute metrics over." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Row": { +"description": "Values of the row.", +"id": "GooglePrivacyDlpV2Row", +"properties": { +"values": { +"description": "Individual cells.", +"items": { +"$ref": "GooglePrivacyDlpV2Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SaveFindings": { +"description": "If set, the detailed findings will be persisted to the specified OutputStorageConfig. Only a single instance of this action can be specified. Compatible with: Inspect, Risk", +"id": "GooglePrivacyDlpV2SaveFindings", +"properties": { +"outputConfig": { +"$ref": "GooglePrivacyDlpV2OutputStorageConfig", +"description": "Location to store findings outside of DLP." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Schedule": { +"description": "Schedule for inspect job triggers.", +"id": "GooglePrivacyDlpV2Schedule", +"properties": { +"recurrencePeriodDuration": { +"description": "With this option a job is started on a regular periodic basis. For example: every day (86400 seconds). A scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs. This value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SchemaModifiedCadence": { +"description": "How frequently to modify the profile when the table's schema is modified.", +"id": "GooglePrivacyDlpV2SchemaModifiedCadence", +"properties": { +"frequency": { +"description": "Frequency to regenerate data profiles when the schema is modified. Defaults to monthly.", +"enum": [ +"UPDATE_FREQUENCY_UNSPECIFIED", +"UPDATE_FREQUENCY_NEVER", +"UPDATE_FREQUENCY_DAILY", +"UPDATE_FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Unspecified.", +"After the data profile is created, it will never be updated.", +"The data profile can be updated up to once every 24 hours.", +"The data profile can be updated up to once every 30 days. Default." +], +"type": "string" +}, +"types": { +"description": "The types of schema modifications to consider. Defaults to NEW_COLUMNS.", +"items": { +"enum": [ +"SQL_SCHEMA_MODIFICATION_UNSPECIFIED", +"NEW_COLUMNS", +"REMOVED_COLUMNS" +], +"enumDescriptions": [ +"Unused.", +"New columns have appeared.", +"Columns have been removed from the table." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SearchConnectionsResponse": { +"description": "Response message for SearchConnections.", +"id": "GooglePrivacyDlpV2SearchConnectionsResponse", +"properties": { +"connections": { +"description": "List of connections that match the search query. Note that only a subset of the fields will be populated, and only \"name\" is guaranteed to be set. For full details of a Connection, call GetConnection with the name.", +"items": { +"$ref": "GooglePrivacyDlpV2Connection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results. An empty value means there are no more results.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SecretManagerCredential": { +"description": "A credential consisting of a username and password, where the password is stored in a Secret Manager resource. Note: Secret Manager [charges apply](https://cloud.google.com/secret-manager/pricing).", +"id": "GooglePrivacyDlpV2SecretManagerCredential", +"properties": { +"passwordSecretVersionName": { +"description": "Required. The name of the Secret Manager resource that stores the password, in the form `projects/project-id/secrets/secret-name/versions/version`.", +"type": "string" +}, +"username": { +"description": "Required. The username.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SecretsDiscoveryTarget": { +"description": "Discovery target for credentials and secrets in cloud resource metadata. This target does not include any filtering or frequency controls. Cloud DLP will scan cloud resource metadata for secrets daily. No inspect template should be included in the discovery config for a security benchmarks scan. Instead, the built-in list of secrets and credentials infoTypes will be used (see https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#credentials_and_secrets). Credentials and secrets discovered will be reported as vulnerabilities to Security Command Center.", +"id": "GooglePrivacyDlpV2SecretsDiscoveryTarget", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2SelectedInfoTypes": { +"description": "Apply transformation to the selected info_types.", +"id": "GooglePrivacyDlpV2SelectedInfoTypes", +"properties": { +"infoTypes": { +"description": "Required. InfoTypes to apply the transformation to. Required. Provided InfoType must be unique within the ImageTransformations message.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SensitivityScore": { +"description": "Score is calculated from of all elements in the data profile. A higher level means the data is more sensitive.", +"id": "GooglePrivacyDlpV2SensitivityScore", +"properties": { +"score": { +"description": "The sensitivity score applied to the resource.", +"enum": [ +"SENSITIVITY_SCORE_UNSPECIFIED", +"SENSITIVITY_LOW", +"SENSITIVITY_UNKNOWN", +"SENSITIVITY_MODERATE", +"SENSITIVITY_HIGH" +], +"enumDescriptions": [ +"Unused.", +"No sensitive information detected. The resource isn't publicly accessible.", +"Unable to determine sensitivity.", +"Medium risk. Contains personally identifiable information (PII), potentially sensitive data, or fields with free-text data that are at a higher risk of having intermittent sensitive data. Consider limiting access.", +"High risk. Sensitive personally identifiable information (SPII) can be present. Exfiltration of data can lead to user data loss. Re-identification of users might be possible. Consider limiting usage and or removing SPII." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StatisticalTable": { +"description": "An auxiliary table containing statistical information on the relative frequency of different quasi-identifiers values. It has one or several quasi-identifiers columns, and one column that indicates the relative frequency of each quasi-identifier tuple. If a tuple is present in the data but not in the auxiliary table, the corresponding relative frequency is assumed to be zero (and thus, the tuple is highly reidentifiable).", +"id": "GooglePrivacyDlpV2StatisticalTable", +"properties": { +"quasiIds": { +"description": "Required. Quasi-identifier columns.", +"items": { +"$ref": "GooglePrivacyDlpV2QuasiIdentifierField" +}, +"type": "array" +}, +"relativeFrequency": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Required. The relative frequency column must contain a floating-point number between 0 and 1 (inclusive). Null values are assumed to be zero." +}, +"table": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "Required. Auxiliary table location." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StorageConfig": { +"description": "Shared message indicating Cloud storage type.", +"id": "GooglePrivacyDlpV2StorageConfig", +"properties": { +"bigQueryOptions": { +"$ref": "GooglePrivacyDlpV2BigQueryOptions", +"description": "BigQuery options." +}, +"cloudStorageOptions": { +"$ref": "GooglePrivacyDlpV2CloudStorageOptions", +"description": "Cloud Storage options." +}, +"datastoreOptions": { +"$ref": "GooglePrivacyDlpV2DatastoreOptions", +"description": "Google Cloud Datastore options." +}, +"hybridOptions": { +"$ref": "GooglePrivacyDlpV2HybridOptions", +"description": "Hybrid inspection options." +}, +"timespanConfig": { +"$ref": "GooglePrivacyDlpV2TimespanConfig", +"description": "Configuration of the timespan of the items to include in scanning." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StorageMetadataLabel": { +"description": "Storage metadata label to indicate which metadata entry contains findings.", +"id": "GooglePrivacyDlpV2StorageMetadataLabel", +"properties": { +"key": { +"description": "Label name.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StoredInfoType": { +"description": "StoredInfoType resource message that contains information about the current version and any pending updates.", +"id": "GooglePrivacyDlpV2StoredInfoType", +"properties": { +"currentVersion": { +"$ref": "GooglePrivacyDlpV2StoredInfoTypeVersion", +"description": "Current version of the stored info type." +}, +"name": { +"description": "Resource name.", +"type": "string" +}, +"pendingVersions": { +"description": "Pending versions of the stored info type. Empty if no versions are pending.", +"items": { +"$ref": "GooglePrivacyDlpV2StoredInfoTypeVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StoredInfoTypeConfig": { +"description": "Configuration for stored infoTypes. All fields and subfield are provided by the user. For more information, see https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes.", +"id": "GooglePrivacyDlpV2StoredInfoTypeConfig", +"properties": { +"description": { +"description": "Description of the StoredInfoType (max 256 characters).", +"type": "string" +}, +"dictionary": { +"$ref": "GooglePrivacyDlpV2Dictionary", +"description": "Store dictionary-based CustomInfoType." +}, +"displayName": { +"description": "Display name of the StoredInfoType (max 256 characters).", +"type": "string" +}, +"largeCustomDictionary": { +"$ref": "GooglePrivacyDlpV2LargeCustomDictionaryConfig", +"description": "StoredInfoType where findings are defined by a dictionary of phrases." +}, +"regex": { +"$ref": "GooglePrivacyDlpV2Regex", +"description": "Store regular expression-based StoredInfoType." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StoredInfoTypeStats": { +"description": "Statistics for a StoredInfoType.", +"id": "GooglePrivacyDlpV2StoredInfoTypeStats", +"properties": { +"largeCustomDictionary": { +"$ref": "GooglePrivacyDlpV2LargeCustomDictionaryStats", +"description": "StoredInfoType where findings are defined by a dictionary of phrases." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StoredInfoTypeVersion": { +"description": "Version of a StoredInfoType, including the configuration used to build it, create timestamp, and current state.", +"id": "GooglePrivacyDlpV2StoredInfoTypeVersion", +"properties": { +"config": { +"$ref": "GooglePrivacyDlpV2StoredInfoTypeConfig", +"description": "StoredInfoType configuration." +}, +"createTime": { +"description": "Create timestamp of the version. Read-only, determined by the system when the version is created.", +"format": "google-datetime", +"type": "string" +}, +"errors": { +"description": "Errors that occurred when creating this storedInfoType version, or anomalies detected in the storedInfoType data that render it unusable. Only the five most recent errors will be displayed, with the most recent error appearing first. For example, some of the data for stored custom dictionaries is put in the user's Cloud Storage bucket, and if this data is modified or deleted by the user or another system, the dictionary becomes invalid. If any errors occur, fix the problem indicated by the error message and use the UpdateStoredInfoType API method to create another version of the storedInfoType to continue using it, reusing the same `config` if it was not the source of the error.", +"items": { +"$ref": "GooglePrivacyDlpV2Error" +}, +"type": "array" +}, +"state": { +"description": "Stored info type version state. Read-only, updated by the system during dictionary creation.", +"enum": [ +"STORED_INFO_TYPE_STATE_UNSPECIFIED", +"PENDING", +"READY", +"FAILED", +"INVALID" +], +"enumDescriptions": [ +"Unused", +"StoredInfoType version is being created.", +"StoredInfoType version is ready for use.", +"StoredInfoType creation failed. All relevant error messages are returned in the `StoredInfoTypeVersion` message.", +"StoredInfoType is no longer valid because artifacts stored in user-controlled storage were modified. To fix an invalid StoredInfoType, use the `UpdateStoredInfoType` method to create a new version." +], +"type": "string" +}, +"stats": { +"$ref": "GooglePrivacyDlpV2StoredInfoTypeStats", +"description": "Statistics about this storedInfoType version." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2StoredType": { +"description": "A reference to a StoredInfoType to use with scanning.", +"id": "GooglePrivacyDlpV2StoredType", +"properties": { +"createTime": { +"description": "Timestamp indicating when the version of the `StoredInfoType` used for inspection was created. Output-only field, populated by the system.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Resource name of the requested `StoredInfoType`, for example `organizations/433245324/storedInfoTypes/432452342` or `projects/project-id/storedInfoTypes/432452342`.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SummaryResult": { +"description": "A collection that informs the user the number of times a particular `TransformationResultCode` and error details occurred.", +"id": "GooglePrivacyDlpV2SummaryResult", +"properties": { +"code": { +"description": "Outcome of the transformation.", +"enum": [ +"TRANSFORMATION_RESULT_CODE_UNSPECIFIED", +"SUCCESS", +"ERROR" +], +"enumDescriptions": [ +"Unused", +"Transformation completed without an error.", +"Transformation had an error." +], +"type": "string" +}, +"count": { +"description": "Number of transformations counted by this result.", +"format": "int64", +"type": "string" +}, +"details": { +"description": "A place for warnings or errors to show up if a transformation didn't work as expected.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2SurrogateType": { +"description": "Message for detecting output from deidentification transformations such as [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). These types of transformations are those that perform pseudonymization, thereby producing a \"surrogate\" as output. This should be used in conjunction with a field on the transformation such as `surrogate_info_type`. This CustomInfoType does not support the use of `detection_rules`.", +"id": "GooglePrivacyDlpV2SurrogateType", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2Table": { +"description": "Structured content to inspect. Up to 50,000 `Value`s per request allowed. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-structured-text#inspecting_a_table to learn more.", +"id": "GooglePrivacyDlpV2Table", +"properties": { +"headers": { +"description": "Headers of the table.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +}, +"rows": { +"description": "Rows of the table.", +"items": { +"$ref": "GooglePrivacyDlpV2Row" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TableDataProfile": { +"description": "The profile for a scanned table.", +"id": "GooglePrivacyDlpV2TableDataProfile", +"properties": { +"configSnapshot": { +"$ref": "GooglePrivacyDlpV2DataProfileConfigSnapshot", +"description": "The snapshot of the configurations used to generate the profile." +}, +"createTime": { +"description": "The time at which the table was created.", +"format": "google-datetime", +"type": "string" +}, +"dataRiskLevel": { +"$ref": "GooglePrivacyDlpV2DataRiskLevel", +"description": "The data risk level of this table." +}, +"dataSourceType": { +"$ref": "GooglePrivacyDlpV2DataSourceType", +"description": "The resource type that was profiled." +}, +"datasetId": { +"description": "If the resource is BigQuery, the dataset ID.", +"type": "string" +}, +"datasetLocation": { +"description": "If supported, the location where the dataset's data is stored. See https://cloud.google.com/bigquery/docs/locations for supported locations.", +"type": "string" +}, +"datasetProjectId": { +"description": "The Google Cloud project ID that owns the resource.", +"type": "string" +}, +"encryptionStatus": { +"description": "How the table is encrypted.", +"enum": [ +"ENCRYPTION_STATUS_UNSPECIFIED", +"ENCRYPTION_GOOGLE_MANAGED", +"ENCRYPTION_CUSTOMER_MANAGED" +], +"enumDescriptions": [ +"Unused.", +"Google manages server-side encryption keys on your behalf.", +"Customer provides the key." +], +"type": "string" +}, +"expirationTime": { +"description": "Optional. The time when this table expires.", +"format": "google-datetime", +"type": "string" +}, +"failedColumnCount": { +"description": "The number of columns skipped in the table because of an error.", +"format": "int64", +"type": "string" +}, +"fullResource": { +"description": "The Cloud Asset Inventory resource that was profiled in order to generate this TableDataProfile. https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"lastModifiedTime": { +"description": "The time when this table was last modified", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "The name of the profile.", +"type": "string" +}, +"otherInfoTypes": { +"description": "Other infoTypes found in this table's data.", +"items": { +"$ref": "GooglePrivacyDlpV2OtherInfoTypeSummary" +}, +"type": "array" +}, +"predictedInfoTypes": { +"description": "The infoTypes predicted from this table's data.", +"items": { +"$ref": "GooglePrivacyDlpV2InfoTypeSummary" +}, +"type": "array" +}, +"profileLastGenerated": { +"description": "The last time the profile was generated.", +"format": "google-datetime", +"type": "string" +}, +"profileStatus": { +"$ref": "GooglePrivacyDlpV2ProfileStatus", +"description": "Success or error status from the most recent profile generation attempt. May be empty if the profile is still being generated." +}, +"projectDataProfile": { +"description": "The resource name of the project data profile for this table.", +"type": "string" +}, +"resourceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels applied to the resource at the time the profile was generated.", +"type": "object" +}, +"resourceVisibility": { +"description": "How broadly a resource has been shared.", +"enum": [ +"RESOURCE_VISIBILITY_UNSPECIFIED", +"RESOURCE_VISIBILITY_PUBLIC", +"RESOURCE_VISIBILITY_INCONCLUSIVE", +"RESOURCE_VISIBILITY_RESTRICTED" +], +"enumDescriptions": [ +"Unused.", +"Visible to any user.", +"May contain public items. For example, if a Cloud Storage bucket has uniform bucket level access disabled, some objects inside it may be public, but none are known yet.", +"Visible only to specific users." +], +"type": "string" +}, +"rowCount": { +"description": "Number of rows in the table when the profile was generated. This will not be populated for BigLake tables.", +"format": "int64", +"type": "string" +}, +"scannedColumnCount": { +"description": "The number of columns profiled in the table.", +"format": "int64", +"type": "string" +}, +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "The sensitivity score of this table." +}, +"state": { +"description": "State of a profile.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"Unused.", +"The profile is currently running. Once a profile has finished it will transition to DONE.", +"The profile is no longer generating. If profile_status.status.code is 0, the profile succeeded, otherwise, it failed." +], +"type": "string" +}, +"tableId": { +"description": "The table ID.", +"type": "string" +}, +"tableSizeBytes": { +"description": "The size of the table when the profile was generated.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TableLocation": { +"description": "Location of a finding within a table.", +"id": "GooglePrivacyDlpV2TableLocation", +"properties": { +"rowIndex": { +"description": "The zero-based index of the row where the finding is located. Only populated for resources that have a natural ordering, not BigQuery. In BigQuery, to identify the row a finding came from, populate BigQueryOptions.identifying_fields with your primary key column names and when you store the findings the value of those columns will be stored inside of Finding.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TableOptions": { +"description": "Instructions regarding the table content being inspected.", +"id": "GooglePrivacyDlpV2TableOptions", +"properties": { +"identifyingFields": { +"description": "The columns that are the primary keys for table objects included in ContentItem. A copy of this cell's value will stored alongside alongside each finding so that the finding can be traced to the specific row it came from. No more than 3 may be provided.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldId" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TableReference": { +"description": "Message defining the location of a BigQuery table with the projectId inferred from the parent project.", +"id": "GooglePrivacyDlpV2TableReference", +"properties": { +"datasetId": { +"description": "Dataset ID of the table.", +"type": "string" +}, +"tableId": { +"description": "Name of the table.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TagCondition": { +"description": "The tag to attach to profiles matching the condition. At most one `TagCondition` can be specified per sensitivity level.", +"id": "GooglePrivacyDlpV2TagCondition", +"properties": { +"sensitivityScore": { +"$ref": "GooglePrivacyDlpV2SensitivityScore", +"description": "Conditions attaching the tag to a resource on its profile having this sensitivity score." +}, +"tag": { +"$ref": "GooglePrivacyDlpV2TagValue", +"description": "The tag value to attach to resources." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TagResources": { +"description": "If set, attaches the [tags] (https://cloud.google.com/resource-manager/docs/tags/tags-overview) provided to profiled resources. Tags support [access control](https://cloud.google.com/iam/docs/tags-access-control). You can conditionally grant or deny access to a resource based on whether the resource has a specific tag.", +"id": "GooglePrivacyDlpV2TagResources", +"properties": { +"lowerDataRiskToLow": { +"description": "Whether applying a tag to a resource should lower the risk of the profile for that resource. For example, in conjunction with an [IAM deny policy](https://cloud.google.com/iam/docs/deny-overview), you can deny all principals a permission if a tag value is present, mitigating the risk of the resource. This also lowers the data risk of resources at the lower levels of the resource hierarchy. For example, reducing the data risk of a table data profile also reduces the data risk of the constituent column data profiles.", +"type": "boolean" +}, +"profileGenerationsToTag": { +"description": "The profile generations for which the tag should be attached to resources. If you attach a tag to only new profiles, then if the sensitivity score of a profile subsequently changes, its tag doesn't change. By default, this field includes only new profiles. To include both new and updated profiles for tagging, this field should explicitly include both `PROFILE_GENERATION_NEW` and `PROFILE_GENERATION_UPDATE`.", +"items": { +"enum": [ +"PROFILE_GENERATION_UNSPECIFIED", +"PROFILE_GENERATION_NEW", +"PROFILE_GENERATION_UPDATE" +], +"enumDescriptions": [ +"Unused.", +"The profile is the first profile for the resource.", +"The profile is an update to a previous profile." +], +"type": "string" +}, +"type": "array" +}, +"tagConditions": { +"description": "The tags to associate with different conditions.", +"items": { +"$ref": "GooglePrivacyDlpV2TagCondition" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TagValue": { +"description": "A value of a tag.", +"id": "GooglePrivacyDlpV2TagValue", +"properties": { +"namespacedValue": { +"description": "The namespaced name for the tag value to attach to resources. Must be in the format `{parent_id}/{tag_key_short_name}/{short_name}`, for example, \"123456/environment/prod\".", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TaggedField": { +"description": "A column with a semantic tag attached.", +"id": "GooglePrivacyDlpV2TaggedField", +"properties": { +"customTag": { +"description": "A column can be tagged with a custom tag. In this case, the user must indicate an auxiliary table that contains statistical information on the possible values of this column (below).", +"type": "string" +}, +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Required. Identifies the column." +}, +"inferred": { +"$ref": "GoogleProtobufEmpty", +"description": "If no semantic tag is indicated, we infer the statistical model from the distribution of values in the input data" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "A column can be tagged with a InfoType to use the relevant public dataset as a statistical model of population, if available. We currently support US ZIP codes, region codes, ages and genders. To programmatically obtain the list of supported InfoTypes, use ListInfoTypes with the supported_by=RISK_ANALYSIS filter." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ThrowError": { +"description": "Throw an error and fail the request when a transformation error occurs.", +"id": "GooglePrivacyDlpV2ThrowError", +"properties": {}, +"type": "object" +}, +"GooglePrivacyDlpV2TimePartConfig": { +"description": "For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value.", +"id": "GooglePrivacyDlpV2TimePartConfig", +"properties": { +"partToExtract": { +"description": "The part of the time to keep.", +"enum": [ +"TIME_PART_UNSPECIFIED", +"YEAR", +"MONTH", +"DAY_OF_MONTH", +"DAY_OF_WEEK", +"WEEK_OF_YEAR", +"HOUR_OF_DAY" +], +"enumDescriptions": [ +"Unused", +"[0-9999]", +"[1-12]", +"[1-31]", +"[1-7]", +"[1-53]", +"[0-23]" +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TimeZone": { +"description": "Time zone of the date time object.", +"id": "GooglePrivacyDlpV2TimeZone", +"properties": { +"offsetMinutes": { +"description": "Set only if the offset can be determined. Positive for time ahead of UTC. E.g. For \"UTC-9\", this value is -540.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TimespanConfig": { +"description": "Configuration of the timespan of the items to include in scanning. Currently only supported when inspecting Cloud Storage and BigQuery.", +"id": "GooglePrivacyDlpV2TimespanConfig", +"properties": { +"enableAutoPopulationOfTimespanConfig": { +"description": "When the job is started by a JobTrigger we will automatically figure out a valid start_time to avoid scanning files that have not been modified since the last time the JobTrigger executed. This will be based on the time of the execution of the last run of the JobTrigger or the timespan end_time used in the last run of the JobTrigger. **For BigQuery** Inspect jobs triggered by automatic population will scan data that is at least three hours old when the job starts. This is because streaming buffer rows are not read during inspection and reading up to the current timestamp will result in skipped rows. See the [known issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#recently-streamed-data) related to this operation.", +"type": "boolean" +}, +"endTime": { +"description": "Exclude files, tables, or rows newer than this value. If not set, no upper time limit is applied.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Exclude files, tables, or rows older than this value. If not set, no lower time limit is applied.", +"format": "google-datetime", +"type": "string" +}, +"timestampField": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery. **For BigQuery** If this value is not specified and the table was modified between the given start and end times, the entire table will be scanned. If this value is specified, then rows are filtered based on the given start and end times. Rows with a `NULL` value in the provided BigQuery column are skipped. Valid data types of the provided BigQuery column are: `INTEGER`, `DATE`, `TIMESTAMP`, and `DATETIME`. If your BigQuery table is [partitioned at ingestion time](https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), you can use any of the following pseudo-columns as your timestamp field. When used with Cloud DLP, these pseudo-column names are case sensitive. - `_PARTITIONTIME` - `_PARTITIONDATE` - `_PARTITION_LOAD_TIME` **For Datastore** If this value is specified, then entities are filtered based on the given start and end times. If an entity does not contain the provided timestamp property or contains empty or invalid values, then it is included. Valid data types of the provided timestamp property are: `TIMESTAMP`. See the [known issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-timespan) related to this operation." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationConfig": { +"description": "User specified templates and configs for how to deidentify structured, unstructures, and image files. User must provide either a unstructured deidentify template or at least one redact image config.", +"id": "GooglePrivacyDlpV2TransformationConfig", +"properties": { +"deidentifyTemplate": { +"description": "De-identify template. If this template is specified, it will serve as the default de-identify template. This template cannot contain `record_transformations` since it can be used for unstructured content such as free-form text files. If this template is not set, a default `ReplaceWithInfoTypeConfig` will be used to de-identify unstructured content.", +"type": "string" +}, +"imageRedactTemplate": { +"description": "Image redact template. If this template is specified, it will serve as the de-identify template for images. If this template is not set, all findings in the image will be redacted with a black box.", +"type": "string" +}, +"structuredDeidentifyTemplate": { +"description": "Structured de-identify template. If this template is specified, it will serve as the de-identify template for structured content such as delimited files and tables. If this template is not set but the `deidentify_template` is set, then `deidentify_template` will also apply to the structured content. If neither template is set, a default `ReplaceWithInfoTypeConfig` will be used to de-identify structured content.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationDescription": { +"description": "A flattened description of a `PrimitiveTransformation` or `RecordSuppression`.", +"id": "GooglePrivacyDlpV2TransformationDescription", +"properties": { +"condition": { +"description": "A human-readable string representation of the `RecordCondition` corresponding to this transformation. Set if a `RecordCondition` was used to determine whether or not to apply this transformation. Examples: * (age_field > 85) * (age_field <= 18) * (zip_field exists) * (zip_field == 01234) && (city_field != \"Springville\") * (zip_field == 01234) && (age_field <= 18) && (city_field exists)", +"type": "string" +}, +"description": { +"description": "A description of the transformation. This is empty for a RECORD_SUPPRESSION, or is the output of calling toString() on the `PrimitiveTransformation` protocol buffer message for any other type of transformation.", +"type": "string" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "Set if the transformation was limited to a specific `InfoType`." +}, +"type": { +"description": "The transformation type.", +"enum": [ +"TRANSFORMATION_TYPE_UNSPECIFIED", +"RECORD_SUPPRESSION", +"REPLACE_VALUE", +"REPLACE_DICTIONARY", +"REDACT", +"CHARACTER_MASK", +"CRYPTO_REPLACE_FFX_FPE", +"FIXED_SIZE_BUCKETING", +"BUCKETING", +"REPLACE_WITH_INFO_TYPE", +"TIME_PART", +"CRYPTO_HASH", +"DATE_SHIFT", +"CRYPTO_DETERMINISTIC_CONFIG", +"REDACT_IMAGE" +], +"enumDescriptions": [ +"Unused", +"Record suppression", +"Replace value", +"Replace value using a dictionary.", +"Redact", +"Character mask", +"FFX-FPE", +"Fixed size bucketing", +"Bucketing", +"Replace with info type", +"Time part", +"Crypto hash", +"Date shift", +"Deterministic crypto", +"Redact image" +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationDetails": { +"description": "Details about a single transformation. This object contains a description of the transformation, information about whether the transformation was successfully applied, and the precise location where the transformation occurred. These details are stored in a user-specified BigQuery table.", +"id": "GooglePrivacyDlpV2TransformationDetails", +"properties": { +"containerName": { +"description": "The top level name of the container where the transformation is located (this will be the source file name or table name).", +"type": "string" +}, +"resourceName": { +"description": "The name of the job that completed the transformation.", +"type": "string" +}, +"statusDetails": { +"$ref": "GooglePrivacyDlpV2TransformationResultStatus", +"description": "Status of the transformation, if transformation was not successful, this will specify what caused it to fail, otherwise it will show that the transformation was successful." +}, +"transformation": { +"description": "Description of transformation. This would only contain more than one element if there were multiple matching transformations and which one to apply was ambiguous. Not set for states that contain no transformation, currently only state that contains no transformation is TransformationResultStateType.METADATA_UNRETRIEVABLE.", +"items": { +"$ref": "GooglePrivacyDlpV2TransformationDescription" +}, +"type": "array" +}, +"transformationLocation": { +"$ref": "GooglePrivacyDlpV2TransformationLocation", +"description": "The precise location of the transformed content in the original container." +}, +"transformedBytes": { +"description": "The number of bytes that were transformed. If transformation was unsuccessful or did not take place because there was no content to transform, this will be zero.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationDetailsStorageConfig": { +"description": "Config for storing transformation details.", +"id": "GooglePrivacyDlpV2TransformationDetailsStorageConfig", +"properties": { +"table": { +"$ref": "GooglePrivacyDlpV2BigQueryTable", +"description": "The BigQuery table in which to store the output. This may be an existing table or in a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_transformation_details_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used for generating the date details." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationErrorHandling": { +"description": "How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`.", +"id": "GooglePrivacyDlpV2TransformationErrorHandling", +"properties": { +"leaveUntransformed": { +"$ref": "GooglePrivacyDlpV2LeaveUntransformed", +"description": "Ignore errors" +}, +"throwError": { +"$ref": "GooglePrivacyDlpV2ThrowError", +"description": "Throw an error" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationLocation": { +"description": "Specifies the location of a transformation.", +"id": "GooglePrivacyDlpV2TransformationLocation", +"properties": { +"containerType": { +"description": "Information about the functionality of the container where this finding occurred, if available.", +"enum": [ +"TRANSFORM_UNKNOWN_CONTAINER", +"TRANSFORM_BODY", +"TRANSFORM_METADATA", +"TRANSFORM_TABLE" +], +"enumDescriptions": [ +"Unused.", +"Body of a file.", +"Metadata for a file.", +"A table." +], +"type": "string" +}, +"findingId": { +"description": "For infotype transformations, link to the corresponding findings ID so that location information does not need to be duplicated. Each findings ID correlates to an entry in the findings output table, this table only gets created when users specify to save findings (add the save findings action to the request).", +"type": "string" +}, +"recordTransformation": { +"$ref": "GooglePrivacyDlpV2RecordTransformation", +"description": "For record transformations, provide a field and container information." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationOverview": { +"description": "Overview of the modifications that occurred.", +"id": "GooglePrivacyDlpV2TransformationOverview", +"properties": { +"transformationSummaries": { +"description": "Transformations applied to the dataset.", +"items": { +"$ref": "GooglePrivacyDlpV2TransformationSummary" +}, +"type": "array" +}, +"transformedBytes": { +"description": "Total size in bytes that were transformed in some way.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationResultStatus": { +"description": "The outcome of a transformation.", +"id": "GooglePrivacyDlpV2TransformationResultStatus", +"properties": { +"details": { +"$ref": "GoogleRpcStatus", +"description": "Detailed error codes and messages" +}, +"resultStatusType": { +"description": "Transformation result status type, this will be either SUCCESS, or it will be the reason for why the transformation was not completely successful.", +"enum": [ +"STATE_TYPE_UNSPECIFIED", +"INVALID_TRANSFORM", +"BIGQUERY_MAX_ROW_SIZE_EXCEEDED", +"METADATA_UNRETRIEVABLE", +"SUCCESS" +], +"enumDescriptions": [ +"Unused.", +"This will be set when a finding could not be transformed (i.e. outside user set bucket range).", +"This will be set when a BigQuery transformation was successful but could not be stored back in BigQuery because the transformed row exceeds BigQuery's max row size.", +"This will be set when there is a finding in the custom metadata of a file, but at the write time of the transformed file, this key / value pair is unretrievable.", +"This will be set when the transformation and storing of it is successful." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransformationSummary": { +"description": "Summary of a single transformation. Only one of 'transformation', 'field_transformation', or 'record_suppress' will be set.", +"id": "GooglePrivacyDlpV2TransformationSummary", +"properties": { +"field": { +"$ref": "GooglePrivacyDlpV2FieldId", +"description": "Set if the transformation was limited to a specific FieldId." +}, +"fieldTransformations": { +"description": "The field transformation that was applied. If multiple field transformations are requested for a single field, this list will contain all of them; otherwise, only one is supplied.", +"items": { +"$ref": "GooglePrivacyDlpV2FieldTransformation" +}, +"type": "array" +}, +"infoType": { +"$ref": "GooglePrivacyDlpV2InfoType", +"description": "Set if the transformation was limited to a specific InfoType." +}, +"recordSuppress": { +"$ref": "GooglePrivacyDlpV2RecordSuppression", +"description": "The specific suppression option these stats apply to." +}, +"results": { +"description": "Collection of all transformations that took place or had an error.", +"items": { +"$ref": "GooglePrivacyDlpV2SummaryResult" +}, +"type": "array" +}, +"transformation": { +"$ref": "GooglePrivacyDlpV2PrimitiveTransformation", +"description": "The specific transformation these stats apply to." +}, +"transformedBytes": { +"description": "Total size in bytes that were transformed in some way.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2TransientCryptoKey": { +"description": "Use this to have a random data crypto key generated. It will be discarded after the request finishes.", +"id": "GooglePrivacyDlpV2TransientCryptoKey", +"properties": { +"name": { +"description": "Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Trigger": { +"description": "What event needs to occur for a new job to be started.", +"id": "GooglePrivacyDlpV2Trigger", +"properties": { +"manual": { +"$ref": "GooglePrivacyDlpV2Manual", +"description": "For use with hybrid jobs. Jobs must be manually created and finished." +}, +"schedule": { +"$ref": "GooglePrivacyDlpV2Schedule", +"description": "Create a job on a repeating basis based on the elapse of time." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UnwrappedCryptoKey": { +"description": "Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible.", +"id": "GooglePrivacyDlpV2UnwrappedCryptoKey", +"properties": { +"key": { +"description": "Required. A 128/192/256 bit key.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UpdateConnectionRequest": { +"description": "Request message for UpdateConnection.", +"id": "GooglePrivacyDlpV2UpdateConnectionRequest", +"properties": { +"connection": { +"$ref": "GooglePrivacyDlpV2Connection", +"description": "Required. The connection with new values for the relevant fields." +}, +"updateMask": { +"description": "Optional. Mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest": { +"description": "Request message for UpdateDeidentifyTemplate.", +"id": "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest", +"properties": { +"deidentifyTemplate": { +"$ref": "GooglePrivacyDlpV2DeidentifyTemplate", +"description": "New DeidentifyTemplate value." +}, +"updateMask": { +"description": "Mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UpdateDiscoveryConfigRequest": { +"description": "Request message for UpdateDiscoveryConfig.", +"id": "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest", +"properties": { +"discoveryConfig": { +"$ref": "GooglePrivacyDlpV2DiscoveryConfig", +"description": "Required. New DiscoveryConfig value." +}, +"updateMask": { +"description": "Mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UpdateInspectTemplateRequest": { +"description": "Request message for UpdateInspectTemplate.", +"id": "GooglePrivacyDlpV2UpdateInspectTemplateRequest", +"properties": { +"inspectTemplate": { +"$ref": "GooglePrivacyDlpV2InspectTemplate", +"description": "New InspectTemplate value." +}, +"updateMask": { +"description": "Mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UpdateJobTriggerRequest": { +"description": "Request message for UpdateJobTrigger.", +"id": "GooglePrivacyDlpV2UpdateJobTriggerRequest", +"properties": { +"jobTrigger": { +"$ref": "GooglePrivacyDlpV2JobTrigger", +"description": "New JobTrigger value." +}, +"updateMask": { +"description": "Mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2UpdateStoredInfoTypeRequest": { +"description": "Request message for UpdateStoredInfoType.", +"id": "GooglePrivacyDlpV2UpdateStoredInfoTypeRequest", +"properties": { +"config": { +"$ref": "GooglePrivacyDlpV2StoredInfoTypeConfig", +"description": "Updated configuration for the storedInfoType. If not provided, a new version of the storedInfoType will be created with the existing configuration." +}, +"updateMask": { +"description": "Mask to control which fields get updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2Value": { +"description": "Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a 'Value' is based on its representation as a UTF-8 encoded string. For example, if 'integer_value' is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data.", +"id": "GooglePrivacyDlpV2Value", +"properties": { +"booleanValue": { +"description": "boolean", +"type": "boolean" +}, +"dateValue": { +"$ref": "GoogleTypeDate", +"description": "date" +}, +"dayOfWeekValue": { +"description": "day of week", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"floatValue": { +"description": "float", +"format": "double", +"type": "number" +}, +"integerValue": { +"description": "integer", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "string", +"type": "string" +}, +"timeValue": { +"$ref": "GoogleTypeTimeOfDay", +"description": "time of day" +}, +"timestampValue": { +"description": "timestamp", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2ValueFrequency": { +"description": "A value of a field, including its frequency.", +"id": "GooglePrivacyDlpV2ValueFrequency", +"properties": { +"count": { +"description": "How many times the value is contained in the field.", +"format": "int64", +"type": "string" +}, +"value": { +"$ref": "GooglePrivacyDlpV2Value", +"description": "A value contained in the field in question." +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2VersionDescription": { +"description": "Details about each available version for an infotype.", +"id": "GooglePrivacyDlpV2VersionDescription", +"properties": { +"description": { +"description": "Description of the version.", +"type": "string" +}, +"version": { +"description": "Name of the version", +"type": "string" +} +}, +"type": "object" +}, +"GooglePrivacyDlpV2WordList": { +"description": "Message defining a list of words or phrases to search for in the data.", +"id": "GooglePrivacyDlpV2WordList", +"properties": { +"words": { +"description": "Words or phrases defining the dictionary. The dictionary must contain at least one phrase and every phrase must contain at least 2 characters that are letters or digits. [required]", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeDate": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "GoogleTypeDate", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleTypeTimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "GoogleTypeTimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Sensitive Data Protection (DLP)", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/documentai.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/documentai.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..0d7a0a620770077cb0585bfa1c6da53eec658ec2 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/documentai.v1.json @@ -0,0 +1,6268 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://documentai.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Document", +"description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/document-ai/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "documentai:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://documentai.mtls.googleapis.com/", +"name": "documentai", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "documentai.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"fetchProcessorTypes": { +"description": "Fetches processor types. Note that we don't use ListProcessorTypes here, because it isn't paginated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:fetchProcessorTypes", +"httpMethod": "GET", +"id": "documentai.projects.locations.fetchProcessorTypes", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:fetchProcessorTypes", +"response": { +"$ref": "GoogleCloudDocumentaiV1FetchProcessorTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "documentai.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "documentai.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "documentai.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"processorTypes": { +"methods": { +"get": { +"description": "Gets a processor type detail.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processorTypes/{processorTypesId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processorTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor type resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processorTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1ProcessorType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the processor types that exist.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processorTypes", +"httpMethod": "GET", +"id": "documentai.projects.locations.processorTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of processor types to return. If unspecified, at most `100` processor types will be returned. The maximum value is `500`. Values above `500` will be coerced to `500`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Used to retrieve the next page of results, empty if at the end of the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/processorTypes", +"response": { +"$ref": "GoogleCloudDocumentaiV1ListProcessorTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"processors": { +"methods": { +"batchProcess": { +"description": "LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:batchProcess", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.batchProcess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of Processor or ProcessorVersion. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:batchProcess", +"request": { +"$ref": "GoogleCloudDocumentaiV1BatchProcessRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a processor from the ProcessorType provided. The processor will be at `ENABLED` state by default after its creation. Note that this method requires the `documentai.processors.create` permission on the project, which is highly privileged. A user or service account with this permission can create new processors that can interact with any gcs bucket in your project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) under which to create the processor. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/processors", +"request": { +"$ref": "GoogleCloudDocumentaiV1Processor" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1Processor" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the processor, unloads all deployed model artifacts if it was enabled and then deletes all artifacts associated with this processor.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}", +"httpMethod": "DELETE", +"id": "documentai.projects.locations.processors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disables a processor", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:disable", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name to be disabled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:disable", +"request": { +"$ref": "GoogleCloudDocumentaiV1DisableProcessorRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enables a processor", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:enable", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name to be enabled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enable", +"request": { +"$ref": "GoogleCloudDocumentaiV1EnableProcessorRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a processor detail.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1Processor" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all processors which belong to this project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of processors to return. If unspecified, at most `50` processors will be returned. The maximum value is `100`. Values above `100` will be coerced to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "We will return the processors sorted by creation time. The page token will point to the next processor.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) which owns this collection of Processors. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/processors", +"response": { +"$ref": "GoogleCloudDocumentaiV1ListProcessorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"process": { +"description": "Processes a single document.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:process", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.process", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Processor or ProcessorVersion to use for processing. If a Processor is specified, the server will use its default version. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:process", +"request": { +"$ref": "GoogleCloudDocumentaiV1ProcessRequest" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1ProcessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setDefaultProcessorVersion": { +"description": "Set the default (active) version of a Processor that will be used in ProcessDocument and BatchProcessDocuments.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:setDefaultProcessorVersion", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.setDefaultProcessorVersion", +"parameterOrder": [ +"processor" +], +"parameters": { +"processor": { +"description": "Required. The resource name of the Processor to change default version.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+processor}:setDefaultProcessorVersion", +"request": { +"$ref": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"humanReviewConfig": { +"methods": { +"reviewDocument": { +"description": "Send a document for Human Review. The input document should be processed by the specified processor.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/humanReviewConfig:reviewDocument", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.humanReviewConfig.reviewDocument", +"parameterOrder": [ +"humanReviewConfig" +], +"parameters": { +"humanReviewConfig": { +"description": "Required. The resource name of the HumanReviewConfig that the document will be reviewed with.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/humanReviewConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+humanReviewConfig}:reviewDocument", +"request": { +"$ref": "GoogleCloudDocumentaiV1ReviewDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"processorVersions": { +"methods": { +"batchProcess": { +"description": "LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:batchProcess", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.batchProcess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of Processor or ProcessorVersion. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:batchProcess", +"request": { +"$ref": "GoogleCloudDocumentaiV1BatchProcessRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the processor version, all artifacts under the processor version will be deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}", +"httpMethod": "DELETE", +"id": "documentai.projects.locations.processors.processorVersions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor version resource name to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deploy": { +"description": "Deploys the processor version.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:deploy", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.deploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor version resource name to be deployed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:deploy", +"request": { +"$ref": "GoogleCloudDocumentaiV1DeployProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"evaluateProcessorVersion": { +"description": "Evaluates a ProcessorVersion against annotated documents, producing an Evaluation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:evaluateProcessorVersion", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.evaluateProcessorVersion", +"parameterOrder": [ +"processorVersion" +], +"parameters": { +"processorVersion": { +"description": "Required. The resource name of the ProcessorVersion to evaluate. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+processorVersion}:evaluateProcessorVersion", +"request": { +"$ref": "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a processor version detail.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all versions of a processor.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of processor versions to return. If unspecified, at most `10` processor versions will be returned. The maximum value is `20`. Values above `20` will be coerced to `20`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "We will return the processor versions sorted by creation time. The page token will point to the next processor version.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project, location and processor) to list all versions. Format: `projects/{project}/locations/{location}/processors/{processor}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/processorVersions", +"response": { +"$ref": "GoogleCloudDocumentaiV1ListProcessorVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"process": { +"description": "Processes a single document.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:process", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.process", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Processor or ProcessorVersion to use for processing. If a Processor is specified, the server will use its default version. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:process", +"request": { +"$ref": "GoogleCloudDocumentaiV1ProcessRequest" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1ProcessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"train": { +"description": "Trains a new processor version. Operation metadata is returned as TrainProcessorVersionMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:train", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.train", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project, location and processor) to create the new version for. Format: `projects/{project}/locations/{location}/processors/{processor}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/processorVersions:train", +"request": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undeploy": { +"description": "Undeploys the processor version.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:undeploy", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.undeploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor version resource name to be undeployed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undeploy", +"request": { +"$ref": "GoogleCloudDocumentaiV1UndeployProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"evaluations": { +"methods": { +"get": { +"description": "Retrieves a specific evaluation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations/{evaluationsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.evaluations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Evaluation to get. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}/evaluations/{evaluation}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1Evaluation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Retrieves a set of evaluations for a given processor version.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.evaluations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The standard list page size. If unspecified, at most `5` evaluations are returned. The maximum value is `100`. Values above `100` are coerced to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEvaluations` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the ProcessorVersion to list evaluations for. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/evaluations", +"response": { +"$ref": "GoogleCloudDocumentaiV1ListEvaluationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "documentai.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20241210", +"rootUrl": "https://documentai.googleapis.com/", +"schemas": { +"GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { +"description": "Metadata of the auto-labeling documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"individualAutoLabelStatuses": { +"description": "The list of individual auto-labeling statuses of the dataset documents.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of the auto-labeling documents.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus": { +"description": "The status of individual documents in the auto-labeling process.", +"id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the auto-labeled document. This will replace the gcs_uri." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the document auto-labeling." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse": { +"description": "The response proto of AutoLabelDocuments method.", +"id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"errorDocumentCount": { +"description": "Total number of documents that failed to be deleted in storage.", +"format": "int32", +"type": "integer" +}, +"individualBatchDeleteStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of documents deleting from dataset.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { +"description": "The status of each individual document in the batch delete process.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of deleting the document in storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsResponse": { +"description": "Response of the delete documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"destDatasetType": { +"deprecated": true, +"description": "The destination dataset split type.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"destSplitType": { +"description": "The destination dataset split type.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"individualBatchMoveStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadataIndividualBatchMoveStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadataIndividualBatchMoveStatus": { +"description": "The status of each individual document in the batch move process.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadataIndividualBatchMoveStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of moving the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsResponse": { +"description": "Response of the batch move documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"individualBatchUpdateStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus": { +"description": "The status of each individual document in the batch update process.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of updating the document in storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse": { +"description": "Response of the batch update documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { +"description": "The common metadata for long running operations.", +"id": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "A related resource to this operation.", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata": { +"description": "The long-running operation metadata for the CreateLabelerPool method.", +"id": "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { +"description": "The long-running operation metadata for DeleteLabelerPool.", +"id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata": { +"description": "The long-running operation metadata for the DeleteProcessor method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeleteProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse": { +"description": "Response message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata": { +"description": "The long-running operation metadata for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse": { +"description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DocumentId": { +"description": "Document Identifier.", +"id": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"properties": { +"gcsManagedDocId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", +"description": "A document id within user-managed Cloud Storage." +}, +"revisionRef": { +"$ref": "GoogleCloudDocumentaiUiv1beta3RevisionRef", +"description": "Points to a specific revision of the document if set." +}, +"unmanagedDocId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", +"description": "A document id within unmanaged dataset." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", +"id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", +"properties": { +"cwDocId": { +"deprecated": true, +"description": "Id of the document (indexed) managed by Content Warehouse.", +"type": "string" +}, +"gcsUri": { +"description": "Required. The Cloud Storage URI where the actual document is stored.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", +"id": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", +"properties": { +"docId": { +"description": "Required. The id of the document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata": { +"description": "The long-running operation metadata for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse": { +"description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionMetadata": { +"description": "Metadata of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse": { +"description": "Response of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse", +"properties": { +"evaluation": { +"description": "The resource name of the created evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata": { +"description": "Metadata of the batch export documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"individualExportStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus" +}, +"type": "array" +}, +"splitExportStats": { +"description": "The list of statistics for each dataset split type.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus": { +"description": "The status of each individual document in the export process.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The path to source docproto of the document." +}, +"outputGcsDestination": { +"description": "The output_gcs_destination of the exported document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the exporting of the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat": { +"description": "The statistic representing a dataset split type for this export.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat", +"properties": { +"splitType": { +"description": "The dataset split type.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"totalDocumentCount": { +"description": "Total number of documents with the given dataset split type to be exported.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse": { +"description": "The response proto of ExportDocuments method.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata": { +"description": "Metadata message associated with the ExportProcessorVersion operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The common metadata about the operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionResponse": { +"description": "Response message associated with the ExportProcessorVersion operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionResponse", +"properties": { +"gcsUri": { +"description": "The Cloud Storage URI containing the output artifacts.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadata": { +"description": "Metadata of the import document operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"importConfigValidationResults": { +"description": "Validation statuses of the batch documents import config.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult" +}, +"type": "array" +}, +"individualImportStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of the documents that are qualified for importing.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult": { +"description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI specified in the import config.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The validation status of import config." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus": { +"description": "The status of each individual document in the import process.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI of the document.", +"type": "string" +}, +"outputDocumentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of imported document if it was successful, otherwise empty." +}, +"outputGcsDestination": { +"description": "The output_gcs_destination of the processed document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the importing of the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsResponse": { +"description": "Response of the import document operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata": { +"description": "The long-running operation metadata for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata for the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse": { +"description": "The response message for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The destination processor version name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata": { +"description": "The metadata proto of `ResyncDataset` method.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"datasetResyncStatuses": { +"description": "The list of dataset resync statuses. Not checked when ResyncDatasetRequest.dataset_documents is specified.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" +}, +"type": "array" +}, +"individualDocumentResyncStatuses": { +"description": "The list of document resync statuses. The same document could have multiple `individual_document_resync_statuses` if it has multiple inconsistencies.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus": { +"description": "Resync status against inconsistency types on the dataset level.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus", +"properties": { +"datasetInconsistencyType": { +"description": "The type of the inconsistency of the dataset.", +"enum": [ +"DATASET_INCONSISTENCY_TYPE_UNSPECIFIED", +"DATASET_INCONSISTENCY_TYPE_NO_STORAGE_MARKER" +], +"enumDescriptions": [ +"Default value.", +"The marker file under the dataset folder is not found." +], +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus": { +"description": "Resync status for each document per inconsistency type.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document identifier." +}, +"documentInconsistencyType": { +"description": "The type of document inconsistency.", +"enum": [ +"DOCUMENT_INCONSISTENCY_TYPE_UNSPECIFIED", +"DOCUMENT_INCONSISTENCY_TYPE_INVALID_DOCPROTO", +"DOCUMENT_INCONSISTENCY_TYPE_MISMATCHED_METADATA", +"DOCUMENT_INCONSISTENCY_TYPE_NO_PAGE_IMAGE" +], +"enumDescriptions": [ +"Default value.", +"The document proto is invalid.", +"Indexed docproto metadata is mismatched.", +"The page image or thumbnails are missing." +], +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of resyncing the document with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetResponse": { +"description": "The response proto of ResyncDataset method.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3RevisionRef": { +"description": "The revision reference specifies which revision on the document to read.", +"id": "GoogleCloudDocumentaiUiv1beta3RevisionRef", +"properties": { +"latestProcessorVersion": { +"description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"type": "string" +}, +"revisionCase": { +"description": "Reads the revision by the predefined case.", +"enum": [ +"REVISION_CASE_UNSPECIFIED", +"LATEST_HUMAN_REVIEW", +"LATEST_TIMESTAMP", +"BASE_OCR_REVISION" +], +"enumDescriptions": [ +"Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", +"The latest revision made by a human.", +"The latest revision based on timestamp.", +"The first (OCR) revision." +], +"type": "string" +}, +"revisionId": { +"description": "Reads the revision given by the id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata": { +"description": "Metadata of the sample documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse": { +"description": "Response of the sample documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse", +"properties": { +"sampleTestStatus": { +"$ref": "GoogleRpcStatus", +"description": "The status of sampling documents in test split." +}, +"sampleTrainingStatus": { +"$ref": "GoogleRpcStatus", +"description": "The status of sampling documents in training split." +}, +"selectedDocuments": { +"description": "The result of the sampling process.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument": { +"id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument", +"properties": { +"documentId": { +"description": "An internal identifier for document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata": { +"description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse": { +"description": "Response message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadata": { +"description": "The metadata that represents a processor version being created.", +"id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"testDatasetValidation": { +"$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The test dataset validation information." +}, +"trainingDatasetValidation": { +"$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The training dataset validation information." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation": { +"description": "The dataset validation information. This includes any and all errors with documents and the dataset.", +"id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", +"properties": { +"datasetErrorCount": { +"description": "The total number of dataset errors.", +"format": "int32", +"type": "integer" +}, +"datasetErrors": { +"description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"documentErrorCount": { +"description": "The total number of document errors.", +"format": "int32", +"type": "integer" +}, +"documentErrors": { +"description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse": { +"description": "The response for TrainProcessorVersion.", +"id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The resource name of the processor version produced by training.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse": { +"description": "Response message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UpdateDatasetOperationMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3UpdateDatasetOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata": { +"description": "The long-running operation metadata for updating the human review configuration.", +"id": "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata": { +"description": "The long-running operation metadata for UpdateLabelerPool.", +"id": "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1Barcode": { +"description": "Encodes the detailed information of a barcode.", +"id": "GoogleCloudDocumentaiV1Barcode", +"properties": { +"format": { +"description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", +"type": "string" +}, +"rawValue": { +"description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", +"type": "string" +}, +"valueFormat": { +"description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchDocumentsInputConfig": { +"description": "The common config to specify a set of documents used as input.", +"id": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", +"properties": { +"gcsDocuments": { +"$ref": "GoogleCloudDocumentaiV1GcsDocuments", +"description": "The set of documents individually specified on Cloud Storage." +}, +"gcsPrefix": { +"$ref": "GoogleCloudDocumentaiV1GcsPrefix", +"description": "The set of documents that match the specified Cloud Storage `gcs_prefix`." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessMetadata": { +"description": "The long-running operation metadata for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1BatchProcessMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"individualProcessStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus" +}, +"type": "array" +}, +"state": { +"description": "The state of the current batch processing.", +"enum": [ +"STATE_UNSPECIFIED", +"WAITING", +"RUNNING", +"SUCCEEDED", +"CANCELLING", +"CANCELLED", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Request operation is waiting for scheduling.", +"Request is being processed.", +"The batch processing completed successfully.", +"The batch processing was being cancelled.", +"The batch processing was cancelled.", +"The batch processing has failed." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the error message if the operation is failed.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus": { +"description": "The status of a each individual document in the batch process.", +"id": "GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus", +"properties": { +"humanReviewStatus": { +"$ref": "GoogleCloudDocumentaiV1HumanReviewStatus", +"description": "The status of human review on the processed document." +}, +"inputGcsSource": { +"description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", +"type": "string" +}, +"outputGcsDestination": { +"description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status processing the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessRequest": { +"description": "Request message for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1BatchProcessRequest", +"properties": { +"documentOutputConfig": { +"$ref": "GoogleCloudDocumentaiV1DocumentOutputConfig", +"description": "The output configuration for the BatchProcessDocuments method." +}, +"inputDocuments": { +"$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", +"description": "The input documents for the BatchProcessDocuments method." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"processOptions": { +"$ref": "GoogleCloudDocumentaiV1ProcessOptions", +"description": "Inference-time options for the process API" +}, +"skipHumanReview": { +"description": "Whether human review should be skipped for this request. Default to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessResponse": { +"description": "Response message for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1BatchProcessResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "GoogleCloudDocumentaiV1BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "GoogleCloudDocumentaiV1NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "GoogleCloudDocumentaiV1Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1CommonOperationMetadata": { +"description": "The common metadata for long running operations.", +"id": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "A related resource to this operation.", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeleteProcessorMetadata": { +"description": "The long-running operation metadata for the DeleteProcessor method.", +"id": "GoogleCloudDocumentaiV1DeleteProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeleteProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeployProcessorVersionRequest": { +"description": "Request message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeployProcessorVersionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeployProcessorVersionResponse": { +"description": "Response message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DisableProcessorMetadata": { +"description": "The long-running operation metadata for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiV1DisableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DisableProcessorRequest": { +"description": "Request message for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiV1DisableProcessorRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DisableProcessorResponse": { +"description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1DisableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1Document": { +"description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", +"id": "GoogleCloudDocumentaiV1Document", +"properties": { +"chunkedDocument": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocument", +"description": "Document chunked based on chunking config." +}, +"content": { +"description": "Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.", +"format": "byte", +"type": "string" +}, +"documentLayout": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayout", +"description": "Parsed layout of the document." +}, +"entities": { +"description": "A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentEntity" +}, +"type": "array" +}, +"entityRelations": { +"description": "Placeholder. Relationship among Document.entities.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentEntityRelation" +}, +"type": "array" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "Any error that occurred while processing this document." +}, +"mimeType": { +"description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", +"type": "string" +}, +"pages": { +"description": "Visual page layout for the Document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPage" +}, +"type": "array" +}, +"revisions": { +"description": "Placeholder. Revision history of this document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentRevision" +}, +"type": "array" +}, +"shardInfo": { +"$ref": "GoogleCloudDocumentaiV1DocumentShardInfo", +"description": "Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified." +}, +"text": { +"description": "Optional. UTF-8 encoded text in reading order from the document.", +"type": "string" +}, +"textChanges": { +"description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentTextChange" +}, +"type": "array" +}, +"textStyles": { +"deprecated": true, +"description": "Styles for the Document.text.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentStyle" +}, +"type": "array" +}, +"uri": { +"description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentChunkedDocument": { +"description": "Represents the chunks that the document is divided into.", +"id": "GoogleCloudDocumentaiV1DocumentChunkedDocument", +"properties": { +"chunks": { +"description": "List of chunks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunk" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentChunkedDocumentChunk": { +"description": "Represents a chunk.", +"id": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunk", +"properties": { +"chunkId": { +"description": "ID of the chunk.", +"type": "string" +}, +"content": { +"description": "Text content of the chunk.", +"type": "string" +}, +"pageFooters": { +"description": "Page footers associated with the chunk.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageFooter" +}, +"type": "array" +}, +"pageHeaders": { +"description": "Page headers associated with the chunk.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageHeader" +}, +"type": "array" +}, +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageSpan", +"description": "Page span of the chunk." +}, +"sourceBlockIds": { +"description": "Unused.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageFooter": { +"description": "Represents the page footer associated with the chunk.", +"id": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageFooter", +"properties": { +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageSpan", +"description": "Page span of the footer." +}, +"text": { +"description": "Footer in text format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageHeader": { +"description": "Represents the page header associated with the chunk.", +"id": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageHeader", +"properties": { +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageSpan", +"description": "Page span of the header." +}, +"text": { +"description": "Header in text format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageSpan": { +"description": "Represents where the chunk starts and ends in the document.", +"id": "GoogleCloudDocumentaiV1DocumentChunkedDocumentChunkChunkPageSpan", +"properties": { +"pageEnd": { +"description": "Page where chunk ends in the document.", +"format": "int32", +"type": "integer" +}, +"pageStart": { +"description": "Page where chunk starts in the document.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayout": { +"description": "Represents the parsed layout of a document as a collection of blocks that the document is divided into.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayout", +"properties": { +"blocks": { +"description": "List of blocks in the document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlock": { +"description": "Represents a block. A block could be one of the various types (text, table, list) supported.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlock", +"properties": { +"blockId": { +"description": "ID of the block.", +"type": "string" +}, +"listBlock": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock", +"description": "Block consisting of list content/structure." +}, +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan", +"description": "Page span of the block." +}, +"tableBlock": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock", +"description": "Block consisting of table content/structure." +}, +"textBlock": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock", +"description": "Block consisting of text content." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock": { +"description": "Represents a list type block.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock", +"properties": { +"listEntries": { +"description": "List entries that constitute a list block.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry" +}, +"type": "array" +}, +"type": { +"description": "Type of the list_entries (if exist). Available options are `ordered` and `unordered`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry": { +"description": "Represents an entry in the list.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry", +"properties": { +"blocks": { +"description": "A list entry is a list of blocks. Repeated blocks support further hierarchies and nested blocks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan": { +"description": "Represents where the block starts and ends in the document.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan", +"properties": { +"pageEnd": { +"description": "Page where block ends in the document.", +"format": "int32", +"type": "integer" +}, +"pageStart": { +"description": "Page where block starts in the document.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock": { +"description": "Represents a table type block.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock", +"properties": { +"bodyRows": { +"description": "Body rows containing main table content.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow" +}, +"type": "array" +}, +"caption": { +"description": "Table caption/title.", +"type": "string" +}, +"headerRows": { +"description": "Header rows at the top of the table.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell": { +"description": "Represents a cell in a table row.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell", +"properties": { +"blocks": { +"description": "A table cell is a list of blocks. Repeated blocks support further hierarchies and nested blocks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +}, +"colSpan": { +"description": "How many columns this cell spans.", +"format": "int32", +"type": "integer" +}, +"rowSpan": { +"description": "How many rows this cell spans.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow": { +"description": "Represents a row in a table.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow", +"properties": { +"cells": { +"description": "A table row is a list of table cells.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock": { +"description": "Represents a text type block.", +"id": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock", +"properties": { +"blocks": { +"description": "A text block could further have child blocks. Repeated blocks support further hierarchies and nested blocks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +}, +"text": { +"description": "Text content stored in the block.", +"type": "string" +}, +"type": { +"description": "Type of the text in the block. Available options are: `paragraph`, `subtitle`, `heading-1`, `heading-2`, `heading-3`, `heading-4`, `heading-5`, `header`, `footer`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentEntity": { +"description": "An entity that could be a phrase in the text or a property that belongs to the document. It is a known entity type, such as a person, an organization, or location.", +"id": "GoogleCloudDocumentaiV1DocumentEntity", +"properties": { +"confidence": { +"description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"id": { +"description": "Optional. Canonical id. This will be a unique value in the entity list for this document.", +"type": "string" +}, +"mentionId": { +"description": "Optional. Deprecated. Use `id` field instead.", +"type": "string" +}, +"mentionText": { +"description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", +"type": "string" +}, +"normalizedValue": { +"$ref": "GoogleCloudDocumentaiV1DocumentEntityNormalizedValue", +"description": "Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types." +}, +"pageAnchor": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageAnchor", +"description": "Optional. Represents the provenance of this entity wrt. the location on the page where it was found." +}, +"properties": { +"description": "Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentEntity" +}, +"type": "array" +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"description": "Optional. The history of this annotation." +}, +"redacted": { +"description": "Optional. Whether the entity will be redacted for de-identification purposes.", +"type": "boolean" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1DocumentTextAnchor", +"description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." +}, +"type": { +"description": "Required. Entity type from a schema e.g. `Address`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentEntityNormalizedValue": { +"description": "Parsed and normalized entity value.", +"id": "GoogleCloudDocumentaiV1DocumentEntityNormalizedValue", +"properties": { +"addressValue": { +"$ref": "GoogleTypePostalAddress", +"description": "Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto" +}, +"booleanValue": { +"description": "Boolean value. Can be used for entities with binary values, or for checkboxes.", +"type": "boolean" +}, +"dateValue": { +"$ref": "GoogleTypeDate", +"description": "Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto" +}, +"datetimeValue": { +"$ref": "GoogleTypeDateTime", +"description": "DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto" +}, +"floatValue": { +"description": "Float value.", +"format": "float", +"type": "number" +}, +"integerValue": { +"description": "Integer value.", +"format": "int32", +"type": "integer" +}, +"moneyValue": { +"$ref": "GoogleTypeMoney", +"description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" +}, +"text": { +"description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentEntityRelation": { +"description": "Relationship between Entities.", +"id": "GoogleCloudDocumentaiV1DocumentEntityRelation", +"properties": { +"objectId": { +"description": "Object entity id.", +"type": "string" +}, +"relation": { +"description": "Relationship description.", +"type": "string" +}, +"subjectId": { +"description": "Subject entity id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentOutputConfig": { +"description": "Config that controls the output of documents. All documents will be written as a JSON file.", +"id": "GoogleCloudDocumentaiV1DocumentOutputConfig", +"properties": { +"gcsOutputConfig": { +"$ref": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfig", +"description": "Output config to write the results to Cloud Storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfig": { +"description": "The configuration used when outputting documents.", +"id": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfig", +"properties": { +"fieldMask": { +"description": "Specifies which fields to include in the output documents. Only supports top level document and pages field so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", +"format": "google-fieldmask", +"type": "string" +}, +"gcsUri": { +"description": "The Cloud Storage uri (a directory) of the output.", +"type": "string" +}, +"shardingConfig": { +"$ref": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfigShardingConfig", +"description": "Specifies the sharding config for the output document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfigShardingConfig": { +"description": "The sharding config for the output document.", +"id": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfigShardingConfig", +"properties": { +"pagesOverlap": { +"description": "The number of overlapping pages between consecutive shards.", +"format": "int32", +"type": "integer" +}, +"pagesPerShard": { +"description": "The number of pages per shard.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPage": { +"description": "A page in a Document.", +"id": "GoogleCloudDocumentaiV1DocumentPage", +"properties": { +"blocks": { +"description": "A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageBlock" +}, +"type": "array" +}, +"detectedBarcodes": { +"description": "A list of detected barcodes.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedBarcode" +}, +"type": "array" +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"dimension": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDimension", +"description": "Physical dimension of the page." +}, +"formFields": { +"description": "A list of visually detected form fields on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageFormField" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageImage", +"description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." +}, +"imageQualityScores": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageImageQualityScores", +"description": "Image quality scores." +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for the page." +}, +"lines": { +"description": "A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLine" +}, +"type": "array" +}, +"pageNumber": { +"description": "1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.", +"format": "int32", +"type": "integer" +}, +"paragraphs": { +"description": "A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageParagraph" +}, +"type": "array" +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"deprecated": true, +"description": "The history of this page." +}, +"symbols": { +"description": "A list of visually detected symbols on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageSymbol" +}, +"type": "array" +}, +"tables": { +"description": "A list of visually detected tables on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageTable" +}, +"type": "array" +}, +"tokens": { +"description": "A list of visually detected tokens on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageToken" +}, +"type": "array" +}, +"transforms": { +"description": "Transformation matrices that were applied to the original document image to produce Page.image.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageMatrix" +}, +"type": "array" +}, +"visualElements": { +"description": "A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageVisualElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageAnchor": { +"description": "Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types.", +"id": "GoogleCloudDocumentaiV1DocumentPageAnchor", +"properties": { +"pageRefs": { +"description": "One or more references to visual page elements", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageAnchorPageRef" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageAnchorPageRef": { +"description": "Represents a weak reference to a page element within a document.", +"id": "GoogleCloudDocumentaiV1DocumentPageAnchorPageRef", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudDocumentaiV1BoundingPoly", +"description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." +}, +"confidence": { +"description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"layoutId": { +"deprecated": true, +"description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", +"type": "string" +}, +"layoutType": { +"description": "Optional. The type of the layout element that is being referenced if any.", +"enum": [ +"LAYOUT_TYPE_UNSPECIFIED", +"BLOCK", +"PARAGRAPH", +"LINE", +"TOKEN", +"VISUAL_ELEMENT", +"TABLE", +"FORM_FIELD" +], +"enumDescriptions": [ +"Layout Unspecified.", +"References a Page.blocks element.", +"References a Page.paragraphs element.", +"References a Page.lines element.", +"References a Page.tokens element.", +"References a Page.visual_elements element.", +"Refrrences a Page.tables element.", +"References a Page.form_fields element." +], +"type": "string" +}, +"page": { +"description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageBlock": { +"description": "A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.", +"id": "GoogleCloudDocumentaiV1DocumentPageBlock", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for Block." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageDetectedBarcode": { +"description": "A detected barcode.", +"id": "GoogleCloudDocumentaiV1DocumentPageDetectedBarcode", +"properties": { +"barcode": { +"$ref": "GoogleCloudDocumentaiV1Barcode", +"description": "Detailed barcode information of the DetectedBarcode." +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for DetectedBarcode." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageDetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageDimension": { +"description": "Dimension for the page.", +"id": "GoogleCloudDocumentaiV1DocumentPageDimension", +"properties": { +"height": { +"description": "Page height.", +"format": "float", +"type": "number" +}, +"unit": { +"description": "Dimension unit.", +"type": "string" +}, +"width": { +"description": "Page width.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageFormField": { +"description": "A form field detected on the page.", +"id": "GoogleCloudDocumentaiV1DocumentPageFormField", +"properties": { +"correctedKeyText": { +"description": "Created for Labeling UI to export key text. If corrections were made to the text identified by the `field_name.text_anchor`, this field will contain the correction.", +"type": "string" +}, +"correctedValueText": { +"description": "Created for Labeling UI to export value text. If corrections were made to the text identified by the `field_value.text_anchor`, this field will contain the correction.", +"type": "string" +}, +"fieldName": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc." +}, +"fieldValue": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for the FormField value." +}, +"nameDetectedLanguages": { +"description": "A list of detected languages for name together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"description": "The history of this annotation." +}, +"valueDetectedLanguages": { +"description": "A list of detected languages for value together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"valueType": { +"description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageImage": { +"description": "Rendered image contents for this page.", +"id": "GoogleCloudDocumentaiV1DocumentPageImage", +"properties": { +"content": { +"description": "Raw byte content of the image.", +"format": "byte", +"type": "string" +}, +"height": { +"description": "Height of the image in pixels.", +"format": "int32", +"type": "integer" +}, +"mimeType": { +"description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", +"type": "string" +}, +"width": { +"description": "Width of the image in pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageImageQualityScores": { +"description": "Image quality scores for the page image.", +"id": "GoogleCloudDocumentaiV1DocumentPageImageQualityScores", +"properties": { +"detectedDefects": { +"description": "A list of detected defects.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect" +}, +"type": "array" +}, +"qualityScore": { +"description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect": { +"description": "Image Quality Defects", +"id": "GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect", +"properties": { +"confidence": { +"description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", +"format": "float", +"type": "number" +}, +"type": { +"description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageLayout": { +"description": "Visual element describing a layout unit on a page.", +"id": "GoogleCloudDocumentaiV1DocumentPageLayout", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudDocumentaiV1BoundingPoly", +"description": "The bounding polygon for the Layout." +}, +"confidence": { +"description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"orientation": { +"description": "Detected orientation for the Layout.", +"enum": [ +"ORIENTATION_UNSPECIFIED", +"PAGE_UP", +"PAGE_RIGHT", +"PAGE_DOWN", +"PAGE_LEFT" +], +"enumDescriptions": [ +"Unspecified orientation.", +"Orientation is aligned with page up.", +"Orientation is aligned with page right. Turn the head 90 degrees clockwise from upright to read.", +"Orientation is aligned with page down. Turn the head 180 degrees from upright to read.", +"Orientation is aligned with page left. Turn the head 90 degrees counterclockwise from upright to read." +], +"type": "string" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1DocumentTextAnchor", +"description": "Text anchor indexing into the Document.text." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageLine": { +"description": "A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.", +"id": "GoogleCloudDocumentaiV1DocumentPageLine", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for Line." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageMatrix": { +"description": "Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.", +"id": "GoogleCloudDocumentaiV1DocumentPageMatrix", +"properties": { +"cols": { +"description": "Number of columns in the matrix.", +"format": "int32", +"type": "integer" +}, +"data": { +"description": "The matrix data.", +"format": "byte", +"type": "string" +}, +"rows": { +"description": "Number of rows in the matrix.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageParagraph": { +"description": "A collection of lines that a human would perceive as a paragraph.", +"id": "GoogleCloudDocumentaiV1DocumentPageParagraph", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for Paragraph." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageSymbol": { +"description": "A detected symbol.", +"id": "GoogleCloudDocumentaiV1DocumentPageSymbol", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for Symbol." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageTable": { +"description": "A table representation similar to HTML table structure.", +"id": "GoogleCloudDocumentaiV1DocumentPageTable", +"properties": { +"bodyRows": { +"description": "Body rows of the table.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageTableTableRow" +}, +"type": "array" +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"headerRows": { +"description": "Header rows of the table.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageTableTableRow" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for Table." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"deprecated": true, +"description": "The history of this table." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageTableTableCell": { +"description": "A cell representation inside the table.", +"id": "GoogleCloudDocumentaiV1DocumentPageTableTableCell", +"properties": { +"colSpan": { +"description": "How many columns this cell spans.", +"format": "int32", +"type": "integer" +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for TableCell." +}, +"rowSpan": { +"description": "How many rows this cell spans.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageTableTableRow": { +"description": "A row of table cells.", +"id": "GoogleCloudDocumentaiV1DocumentPageTableTableRow", +"properties": { +"cells": { +"description": "Cells that make up this row.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageTableTableCell" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageToken": { +"description": "A detected token.", +"id": "GoogleCloudDocumentaiV1DocumentPageToken", +"properties": { +"detectedBreak": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageTokenDetectedBreak", +"description": "Detected break at the end of a Token." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for Token." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +}, +"styleInfo": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageTokenStyleInfo", +"description": "Text style attributes." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageTokenDetectedBreak": { +"description": "Detected break at the end of a Token.", +"id": "GoogleCloudDocumentaiV1DocumentPageTokenDetectedBreak", +"properties": { +"type": { +"description": "Detected break type.", +"enum": [ +"TYPE_UNSPECIFIED", +"SPACE", +"WIDE_SPACE", +"HYPHEN" +], +"enumDescriptions": [ +"Unspecified break type.", +"A single whitespace.", +"A wider whitespace.", +"A hyphen that indicates that a token has been split across lines." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageTokenStyleInfo": { +"description": "Font and other text style attributes.", +"id": "GoogleCloudDocumentaiV1DocumentPageTokenStyleInfo", +"properties": { +"backgroundColor": { +"$ref": "GoogleTypeColor", +"description": "Color of the background." +}, +"bold": { +"description": "Whether the text is bold (equivalent to font_weight is at least `700`).", +"type": "boolean" +}, +"fontSize": { +"description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", +"format": "int32", +"type": "integer" +}, +"fontType": { +"description": "Name or style of the font.", +"type": "string" +}, +"fontWeight": { +"description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", +"format": "int32", +"type": "integer" +}, +"handwritten": { +"description": "Whether the text is handwritten.", +"type": "boolean" +}, +"italic": { +"description": "Whether the text is italic.", +"type": "boolean" +}, +"letterSpacing": { +"description": "Letter spacing in points.", +"format": "double", +"type": "number" +}, +"pixelFontSize": { +"description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", +"format": "double", +"type": "number" +}, +"smallcaps": { +"description": "Whether the text is in small caps. This feature is not supported yet.", +"type": "boolean" +}, +"strikeout": { +"description": "Whether the text is strikethrough. This feature is not supported yet.", +"type": "boolean" +}, +"subscript": { +"description": "Whether the text is a subscript. This feature is not supported yet.", +"type": "boolean" +}, +"superscript": { +"description": "Whether the text is a superscript. This feature is not supported yet.", +"type": "boolean" +}, +"textColor": { +"$ref": "GoogleTypeColor", +"description": "Color of the text." +}, +"underlined": { +"description": "Whether the text is underlined.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentPageVisualElement": { +"description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", +"id": "GoogleCloudDocumentaiV1DocumentPageVisualElement", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", +"description": "Layout for VisualElement." +}, +"type": { +"description": "Type of the VisualElement.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentProvenance": { +"description": "Structure to identify provenance relationships between annotations in different revisions.", +"id": "GoogleCloudDocumentaiV1DocumentProvenance", +"properties": { +"id": { +"deprecated": true, +"description": "The Id of this operation. Needs to be unique within the scope of the revision.", +"format": "int32", +"type": "integer" +}, +"parents": { +"description": "References to the original elements that are replaced.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenanceParent" +}, +"type": "array" +}, +"revision": { +"deprecated": true, +"description": "The index of the revision that produced this element.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "The type of provenance operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"ADD", +"REMOVE", +"UPDATE", +"REPLACE", +"EVAL_REQUESTED", +"EVAL_APPROVED", +"EVAL_SKIPPED" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", +"Add an element.", +"Remove an element identified by `parent`.", +"Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", +"Currently unused. Replace an element identified by `parent`.", +"Deprecated. Request human review for the element identified by `parent`.", +"Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", +"Deprecated. Element is skipped in the validation process." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentProvenanceParent": { +"description": "The parent element the current element is based on. Used for referencing/aligning, removal and replacement operations.", +"id": "GoogleCloudDocumentaiV1DocumentProvenanceParent", +"properties": { +"id": { +"deprecated": true, +"description": "The id of the parent provenance.", +"format": "int32", +"type": "integer" +}, +"index": { +"description": "The index of the parent item in the corresponding item list (eg. list of entities, properties within entities, etc.) in the parent revision.", +"format": "int32", +"type": "integer" +}, +"revision": { +"description": "The index of the index into current revision's parent_ids list.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentRevision": { +"description": "Contains past or forward revisions of this document.", +"id": "GoogleCloudDocumentaiV1DocumentRevision", +"properties": { +"agent": { +"description": "If the change was made by a person specify the name or id of that person.", +"type": "string" +}, +"createTime": { +"description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", +"format": "google-datetime", +"type": "string" +}, +"humanReview": { +"$ref": "GoogleCloudDocumentaiV1DocumentRevisionHumanReview", +"description": "Human Review information of this revision." +}, +"id": { +"description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", +"type": "string" +}, +"parent": { +"deprecated": true, +"description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"parentIds": { +"description": "The revisions that this revision is based on. Must include all the ids that have anything to do with this revision - eg. there are `provenance.parent.revision` fields that index into this field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"processor": { +"description": "If the annotation was made by processor identify the processor by its resource name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentRevisionHumanReview": { +"description": "Human Review information of the document.", +"id": "GoogleCloudDocumentaiV1DocumentRevisionHumanReview", +"properties": { +"state": { +"description": "Human review state. e.g. `requested`, `succeeded`, `rejected`.", +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentSchema": { +"description": "The schema defines the output of the processed document by a processor.", +"id": "GoogleCloudDocumentaiV1DocumentSchema", +"properties": { +"description": { +"description": "Description of the schema.", +"type": "string" +}, +"displayName": { +"description": "Display name to show to users.", +"type": "string" +}, +"entityTypes": { +"description": "Entity types of the schema.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityType" +}, +"type": "array" +}, +"metadata": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchemaMetadata", +"description": "Metadata of the schema." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentSchemaEntityType": { +"description": "EntityType is the wrapper of a label of the corresponding model with detailed attributes and limitations for entity-based processors. Multiple types can also compose a dependency tree to represent nested types.", +"id": "GoogleCloudDocumentaiV1DocumentSchemaEntityType", +"properties": { +"baseTypes": { +"description": "The entity type that this type is derived from. For now, one and only one should be set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "User defined name for the type.", +"type": "string" +}, +"enumValues": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeEnumValues", +"description": "If specified, lists all the possible values for this entity. This should not be more than a handful of values. If the number of values is >10 or could change frequently use the `EntityType.value_ontology` field and specify a list of all possible values in a value ontology file." +}, +"name": { +"description": "Name of the type. It must be unique within the schema file and cannot be a \"Common Type\". The following naming conventions are used: - Use `snake_casing`. - Name matching is case-sensitive. - Maximum 64 characters. - Must start with a letter. - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward compatibility internal infrastructure and tooling can handle any ascii character.) - The `/` is sometimes used to denote a property of a type. For example `line_item/amount`. This convention is deprecated, but will still be honored for backward compatibility.", +"type": "string" +}, +"properties": { +"description": "Description the nested structure, or composition of an entity.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentSchemaEntityTypeEnumValues": { +"description": "Defines the a list of enum values.", +"id": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeEnumValues", +"properties": { +"values": { +"description": "The individual values that this enum values type can include.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty": { +"description": "Defines properties that can be part of the entity type.", +"id": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty", +"properties": { +"displayName": { +"description": "User defined name for the property.", +"type": "string" +}, +"name": { +"description": "The name of the property. Follows the same guidelines as the EntityType name.", +"type": "string" +}, +"occurrenceType": { +"description": "Occurrence type limits the number of instances an entity type appears in the document.", +"enum": [ +"OCCURRENCE_TYPE_UNSPECIFIED", +"OPTIONAL_ONCE", +"OPTIONAL_MULTIPLE", +"REQUIRED_ONCE", +"REQUIRED_MULTIPLE" +], +"enumDescriptions": [ +"Unspecified occurrence type.", +"There will be zero or one instance of this entity type. The same entity instance may be mentioned multiple times.", +"The entity type will appear zero or multiple times.", +"The entity type will only appear exactly once. The same entity instance may be mentioned multiple times.", +"The entity type will appear once or more times." +], +"type": "string" +}, +"valueType": { +"description": "A reference to the value type of the property. This type is subject to the same conventions as the `Entity.base_types` field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentSchemaMetadata": { +"description": "Metadata for global schema behavior.", +"id": "GoogleCloudDocumentaiV1DocumentSchemaMetadata", +"properties": { +"documentAllowMultipleLabels": { +"description": "If true, on a given page, there can be multiple `document` annotations covering it.", +"type": "boolean" +}, +"documentSplitter": { +"description": "If true, a `document` entity type can be applied to subdocument (splitting). Otherwise, it can only be applied to the entire document (classification).", +"type": "boolean" +}, +"prefixedNamingOnProperties": { +"description": "If set, all the nested entities must be prefixed with the parents.", +"type": "boolean" +}, +"skipNamingValidation": { +"description": "If set, we will skip the naming format validation in the schema. So the string values in `DocumentSchema.EntityType.name` and `DocumentSchema.EntityType.Property.name` will not be checked.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentShardInfo": { +"description": "For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is.", +"id": "GoogleCloudDocumentaiV1DocumentShardInfo", +"properties": { +"shardCount": { +"description": "Total number of shards.", +"format": "int64", +"type": "string" +}, +"shardIndex": { +"description": "The 0-based index of this shard.", +"format": "int64", +"type": "string" +}, +"textOffset": { +"description": "The index of the first character in Document.text in the overall document global text.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentStyle": { +"description": "Annotation for common text style attributes. This adheres to CSS conventions as much as possible.", +"id": "GoogleCloudDocumentaiV1DocumentStyle", +"properties": { +"backgroundColor": { +"$ref": "GoogleTypeColor", +"description": "Text background color." +}, +"color": { +"$ref": "GoogleTypeColor", +"description": "Text color." +}, +"fontFamily": { +"description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", +"type": "string" +}, +"fontSize": { +"$ref": "GoogleCloudDocumentaiV1DocumentStyleFontSize", +"description": "Font size." +}, +"fontWeight": { +"description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", +"type": "string" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1DocumentTextAnchor", +"description": "Text anchor indexing into the Document.text." +}, +"textDecoration": { +"description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", +"type": "string" +}, +"textStyle": { +"description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentStyleFontSize": { +"description": "Font size with unit.", +"id": "GoogleCloudDocumentaiV1DocumentStyleFontSize", +"properties": { +"size": { +"description": "Font size for the text.", +"format": "float", +"type": "number" +}, +"unit": { +"description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentTextAnchor": { +"description": "Text reference indexing into the Document.text.", +"id": "GoogleCloudDocumentaiV1DocumentTextAnchor", +"properties": { +"content": { +"description": "Contains the content of the text span so that users do not have to look it up in the text_segments. It is always populated for formFields.", +"type": "string" +}, +"textSegments": { +"description": "The text segments from the Document.text.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentTextAnchorTextSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentTextAnchorTextSegment": { +"description": "A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset", +"id": "GoogleCloudDocumentaiV1DocumentTextAnchorTextSegment", +"properties": { +"endIndex": { +"description": "TextSegment half open end UTF-8 char index in the Document.text.", +"format": "int64", +"type": "string" +}, +"startIndex": { +"description": "TextSegment start UTF-8 char index in the Document.text.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DocumentTextChange": { +"description": "This message is used for text changes aka. OCR corrections.", +"id": "GoogleCloudDocumentaiV1DocumentTextChange", +"properties": { +"changedText": { +"description": "The text that replaces the text identified in the `text_anchor`.", +"type": "string" +}, +"provenance": { +"deprecated": true, +"description": "The history of this annotation.", +"items": { +"$ref": "GoogleCloudDocumentaiV1DocumentProvenance" +}, +"type": "array" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1DocumentTextAnchor", +"description": "Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EnableProcessorMetadata": { +"description": "The long-running operation metadata for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiV1EnableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EnableProcessorRequest": { +"description": "Request message for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiV1EnableProcessorRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EnableProcessorResponse": { +"description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1EnableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata": { +"description": "Metadata of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest": { +"description": "Evaluates the given ProcessorVersion against the supplied documents.", +"id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest", +"properties": { +"evaluationDocuments": { +"$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", +"description": "Optional. The documents used in the evaluation. If unspecified, use the processor's dataset as evaluation input." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse": { +"description": "Response of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse", +"properties": { +"evaluation": { +"description": "The resource name of the created evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1Evaluation": { +"description": "An evaluation of a ProcessorVersion's performance.", +"id": "GoogleCloudDocumentaiV1Evaluation", +"properties": { +"allEntitiesMetrics": { +"$ref": "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics", +"description": "Metrics for all the entities in aggregate." +}, +"createTime": { +"description": "The time that the evaluation was created.", +"format": "google-datetime", +"type": "string" +}, +"documentCounters": { +"$ref": "GoogleCloudDocumentaiV1EvaluationCounters", +"description": "Counters for the documents used in the evaluation." +}, +"entityMetrics": { +"additionalProperties": { +"$ref": "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics" +}, +"description": "Metrics across confidence levels, for different entities.", +"type": "object" +}, +"kmsKeyName": { +"description": "The KMS key name used for encryption.", +"type": "string" +}, +"kmsKeyVersionName": { +"description": "The KMS key version with which data is encrypted.", +"type": "string" +}, +"name": { +"description": "The resource name of the evaluation. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}/evaluations/{evaluation}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics": { +"description": "Evaluations metrics, at a specific confidence level.", +"id": "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics", +"properties": { +"confidenceLevel": { +"description": "The confidence level.", +"format": "float", +"type": "number" +}, +"metrics": { +"$ref": "GoogleCloudDocumentaiV1EvaluationMetrics", +"description": "The metrics at the specific confidence level." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluationCounters": { +"description": "Evaluation counters for the documents that were used.", +"id": "GoogleCloudDocumentaiV1EvaluationCounters", +"properties": { +"evaluatedDocumentsCount": { +"description": "How many documents were used in the evaluation.", +"format": "int32", +"type": "integer" +}, +"failedDocumentsCount": { +"description": "How many documents were not included in the evaluation as Document AI failed to process them.", +"format": "int32", +"type": "integer" +}, +"inputDocumentsCount": { +"description": "How many documents were sent for evaluation.", +"format": "int32", +"type": "integer" +}, +"invalidDocumentsCount": { +"description": "How many documents were not included in the evaluation as they didn't pass validation.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluationMetrics": { +"description": "Evaluation metrics, either in aggregate or about a specific entity.", +"id": "GoogleCloudDocumentaiV1EvaluationMetrics", +"properties": { +"f1Score": { +"description": "The calculated f1 score.", +"format": "float", +"type": "number" +}, +"falseNegativesCount": { +"description": "The amount of false negatives.", +"format": "int32", +"type": "integer" +}, +"falsePositivesCount": { +"description": "The amount of false positives.", +"format": "int32", +"type": "integer" +}, +"groundTruthDocumentCount": { +"description": "The amount of documents with a ground truth occurrence.", +"format": "int32", +"type": "integer" +}, +"groundTruthOccurrencesCount": { +"description": "The amount of occurrences in ground truth documents.", +"format": "int32", +"type": "integer" +}, +"precision": { +"description": "The calculated precision.", +"format": "float", +"type": "number" +}, +"predictedDocumentCount": { +"description": "The amount of documents with a predicted occurrence.", +"format": "int32", +"type": "integer" +}, +"predictedOccurrencesCount": { +"description": "The amount of occurrences in predicted documents.", +"format": "int32", +"type": "integer" +}, +"recall": { +"description": "The calculated recall.", +"format": "float", +"type": "number" +}, +"totalDocumentsCount": { +"description": "The amount of documents that had an occurrence of this label.", +"format": "int32", +"type": "integer" +}, +"truePositivesCount": { +"description": "The amount of true positives.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics": { +"description": "Metrics across multiple confidence levels.", +"id": "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics", +"properties": { +"auprc": { +"description": "The calculated area under the precision recall curve (AUPRC), computed by integrating over all confidence thresholds.", +"format": "float", +"type": "number" +}, +"auprcExact": { +"description": "The AUPRC for metrics with fuzzy matching disabled, i.e., exact matching only.", +"format": "float", +"type": "number" +}, +"confidenceLevelMetrics": { +"description": "Metrics across confidence levels with fuzzy matching enabled.", +"items": { +"$ref": "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics" +}, +"type": "array" +}, +"confidenceLevelMetricsExact": { +"description": "Metrics across confidence levels with only exact matching.", +"items": { +"$ref": "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics" +}, +"type": "array" +}, +"estimatedCalibrationError": { +"description": "The Estimated Calibration Error (ECE) of the confidence of the predicted entities.", +"format": "float", +"type": "number" +}, +"estimatedCalibrationErrorExact": { +"description": "The ECE for the predicted entities with fuzzy matching disabled, i.e., exact matching only.", +"format": "float", +"type": "number" +}, +"metricsType": { +"description": "The metrics type for the label.", +"enum": [ +"METRICS_TYPE_UNSPECIFIED", +"AGGREGATE" +], +"enumDescriptions": [ +"The metrics type is unspecified. By default, metrics without a particular specification are for leaf entity types (i.e., top-level entity types without child types, or child types which are not parent types themselves).", +"Indicates whether metrics for this particular label type represent an aggregate of metrics for other types instead of being based on actual TP/FP/FN values for the label type. Metrics for parent (i.e., non-leaf) entity types are an aggregate of metrics for their children." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluationReference": { +"description": "Gives a short summary of an evaluation, and links to the evaluation itself.", +"id": "GoogleCloudDocumentaiV1EvaluationReference", +"properties": { +"aggregateMetrics": { +"$ref": "GoogleCloudDocumentaiV1EvaluationMetrics", +"description": "An aggregate of the statistics for the evaluation with fuzzy matching on." +}, +"aggregateMetricsExact": { +"$ref": "GoogleCloudDocumentaiV1EvaluationMetrics", +"description": "An aggregate of the statistics for the evaluation with fuzzy matching off." +}, +"evaluation": { +"description": "The resource name of the evaluation.", +"type": "string" +}, +"operation": { +"description": "The resource name of the Long Running Operation for the evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1FetchProcessorTypesResponse": { +"description": "Response message for the FetchProcessorTypes method.", +"id": "GoogleCloudDocumentaiV1FetchProcessorTypesResponse", +"properties": { +"processorTypes": { +"description": "The list of processor types.", +"items": { +"$ref": "GoogleCloudDocumentaiV1ProcessorType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1GcsDocument": { +"description": "Specifies a document stored on Cloud Storage.", +"id": "GoogleCloudDocumentaiV1GcsDocument", +"properties": { +"gcsUri": { +"description": "The Cloud Storage object uri.", +"type": "string" +}, +"mimeType": { +"description": "An IANA MIME type (RFC6838) of the content.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1GcsDocuments": { +"description": "Specifies a set of documents on Cloud Storage.", +"id": "GoogleCloudDocumentaiV1GcsDocuments", +"properties": { +"documents": { +"description": "The list of documents.", +"items": { +"$ref": "GoogleCloudDocumentaiV1GcsDocument" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1GcsPrefix": { +"description": "Specifies all documents on Cloud Storage with a common prefix.", +"id": "GoogleCloudDocumentaiV1GcsPrefix", +"properties": { +"gcsUriPrefix": { +"description": "The URI prefix.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1HumanReviewStatus": { +"description": "The status of human review on a processed document.", +"id": "GoogleCloudDocumentaiV1HumanReviewStatus", +"properties": { +"humanReviewOperation": { +"description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", +"type": "string" +}, +"state": { +"description": "The state of human review on the processing request.", +"enum": [ +"STATE_UNSPECIFIED", +"SKIPPED", +"VALIDATION_PASSED", +"IN_PROGRESS", +"ERROR" +], +"enumDescriptions": [ +"Human review state is unspecified. Most likely due to an internal error.", +"Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", +"Human review validation is triggered and passed, so no review is needed.", +"Human review validation is triggered and the document is under review.", +"Some error happened during triggering human review, see the state_message for details." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the human review state.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ListEvaluationsResponse": { +"description": "The response from `ListEvaluations`.", +"id": "GoogleCloudDocumentaiV1ListEvaluationsResponse", +"properties": { +"evaluations": { +"description": "The evaluations requested.", +"items": { +"$ref": "GoogleCloudDocumentaiV1Evaluation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ListProcessorTypesResponse": { +"description": "Response message for the ListProcessorTypes method.", +"id": "GoogleCloudDocumentaiV1ListProcessorTypesResponse", +"properties": { +"nextPageToken": { +"description": "Points to the next page, otherwise empty.", +"type": "string" +}, +"processorTypes": { +"description": "The processor types.", +"items": { +"$ref": "GoogleCloudDocumentaiV1ProcessorType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ListProcessorVersionsResponse": { +"description": "Response message for the ListProcessorVersions method.", +"id": "GoogleCloudDocumentaiV1ListProcessorVersionsResponse", +"properties": { +"nextPageToken": { +"description": "Points to the next processor, otherwise empty.", +"type": "string" +}, +"processorVersions": { +"description": "The list of processors.", +"items": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ListProcessorsResponse": { +"description": "Response message for the ListProcessors method.", +"id": "GoogleCloudDocumentaiV1ListProcessorsResponse", +"properties": { +"nextPageToken": { +"description": "Points to the next processor, otherwise empty.", +"type": "string" +}, +"processors": { +"description": "The list of processors.", +"items": { +"$ref": "GoogleCloudDocumentaiV1Processor" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "GoogleCloudDocumentaiV1NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate (starts from the top of the image).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1OcrConfig": { +"description": "Config for Document OCR.", +"id": "GoogleCloudDocumentaiV1OcrConfig", +"properties": { +"advancedOcrOptions": { +"description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"computeStyleInfo": { +"deprecated": true, +"description": "Turn on font identification model and return font style information. Deprecated, use PremiumFeatures.compute_style_info instead.", +"type": "boolean" +}, +"disableCharacterBoxesDetection": { +"description": "Turn off character box detector in OCR engine. Character box detection is enabled by default in OCR 2.0 (and later) processors.", +"type": "boolean" +}, +"enableImageQualityScores": { +"description": "Enables intelligent document quality scores after OCR. Can help with diagnosing why OCR responses are of poor quality for a given input. Adds additional latency comparable to regular OCR to the process call.", +"type": "boolean" +}, +"enableNativePdfParsing": { +"description": "Enables special handling for PDFs with existing text information. Results in better text extraction quality in such PDF inputs.", +"type": "boolean" +}, +"enableSymbol": { +"description": "Includes symbol level OCR information if set to true.", +"type": "boolean" +}, +"hints": { +"$ref": "GoogleCloudDocumentaiV1OcrConfigHints", +"description": "Hints for the OCR model." +}, +"premiumFeatures": { +"$ref": "GoogleCloudDocumentaiV1OcrConfigPremiumFeatures", +"description": "Configurations for premium OCR features." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1OcrConfigHints": { +"description": "Hints for OCR Engine", +"id": "GoogleCloudDocumentaiV1OcrConfigHints", +"properties": { +"languageHints": { +"description": "List of BCP-47 language codes to use for OCR. In most cases, not specifying it yields the best results since it enables automatic language detection. For languages based on the Latin alphabet, setting hints is not needed. In rare cases, when the language of the text in the image is known, setting a hint will help get better results (although it will be a significant hindrance if the hint is wrong).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1OcrConfigPremiumFeatures": { +"description": "Configurations for premium OCR features.", +"id": "GoogleCloudDocumentaiV1OcrConfigPremiumFeatures", +"properties": { +"computeStyleInfo": { +"description": "Turn on font identification model and return font style information.", +"type": "boolean" +}, +"enableMathOcr": { +"description": "Turn on the model that can extract LaTeX math formulas.", +"type": "boolean" +}, +"enableSelectionMarkDetection": { +"description": "Turn on selection mark detector in OCR engine. Only available in OCR 2.0 (and later) processors.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessOptions": { +"description": "Options for Process API", +"id": "GoogleCloudDocumentaiV1ProcessOptions", +"properties": { +"fromEnd": { +"description": "Only process certain pages from the end, same as above.", +"format": "int32", +"type": "integer" +}, +"fromStart": { +"description": "Only process certain pages from the start. Process all if the document has fewer pages.", +"format": "int32", +"type": "integer" +}, +"individualPageSelector": { +"$ref": "GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector", +"description": "Which pages to process (1-indexed)." +}, +"layoutConfig": { +"$ref": "GoogleCloudDocumentaiV1ProcessOptionsLayoutConfig", +"description": "Optional. Only applicable to `LAYOUT_PARSER_PROCESSOR`. Returns error if set on other processor types." +}, +"ocrConfig": { +"$ref": "GoogleCloudDocumentaiV1OcrConfig", +"description": "Only applicable to `OCR_PROCESSOR` and `FORM_PARSER_PROCESSOR`. Returns error if set on other processor types." +}, +"schemaOverride": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchema", +"description": "Optional. Override the schema of the ProcessorVersion. Will return an Invalid Argument error if this field is set when the underlying ProcessorVersion doesn't support schema override." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector": { +"description": "A list of individual page numbers.", +"id": "GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector", +"properties": { +"pages": { +"description": "Optional. Indices of the pages (starting from 1).", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessOptionsLayoutConfig": { +"description": "Serving config for layout parser processor.", +"id": "GoogleCloudDocumentaiV1ProcessOptionsLayoutConfig", +"properties": { +"chunkingConfig": { +"$ref": "GoogleCloudDocumentaiV1ProcessOptionsLayoutConfigChunkingConfig", +"description": "Optional. Config for chunking in layout parser processor." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessOptionsLayoutConfigChunkingConfig": { +"description": "Serving config for chunking.", +"id": "GoogleCloudDocumentaiV1ProcessOptionsLayoutConfigChunkingConfig", +"properties": { +"chunkSize": { +"description": "Optional. The chunk sizes to use when splitting documents, in order of level.", +"format": "int32", +"type": "integer" +}, +"includeAncestorHeadings": { +"description": "Optional. Whether or not to include ancestor headings when splitting.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessRequest": { +"description": "Request message for the ProcessDocument method.", +"id": "GoogleCloudDocumentaiV1ProcessRequest", +"properties": { +"fieldMask": { +"description": "Specifies which fields to include in the ProcessResponse.document output. Only supports top-level document and pages field, so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", +"format": "google-fieldmask", +"type": "string" +}, +"gcsDocument": { +"$ref": "GoogleCloudDocumentaiV1GcsDocument", +"description": "A raw document on Google Cloud Storage." +}, +"imagelessMode": { +"description": "Optional. Option to remove images from the document.", +"type": "boolean" +}, +"inlineDocument": { +"$ref": "GoogleCloudDocumentaiV1Document", +"description": "An inline document proto." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"processOptions": { +"$ref": "GoogleCloudDocumentaiV1ProcessOptions", +"description": "Inference-time options for the process API" +}, +"rawDocument": { +"$ref": "GoogleCloudDocumentaiV1RawDocument", +"description": "A raw document content (bytes)." +}, +"skipHumanReview": { +"description": "Whether human review should be skipped for this request. Default to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessResponse": { +"description": "Response message for the ProcessDocument method.", +"id": "GoogleCloudDocumentaiV1ProcessResponse", +"properties": { +"document": { +"$ref": "GoogleCloudDocumentaiV1Document", +"description": "The document payload, will populate fields based on the processor's behavior." +}, +"humanReviewStatus": { +"$ref": "GoogleCloudDocumentaiV1HumanReviewStatus", +"description": "The status of human review on the processed document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1Processor": { +"description": "The first-class citizen for Document AI. Each processor defines how to extract structural information from a document.", +"id": "GoogleCloudDocumentaiV1Processor", +"properties": { +"createTime": { +"description": "The time the processor was created.", +"format": "google-datetime", +"type": "string" +}, +"defaultProcessorVersion": { +"description": "The default processor version.", +"type": "string" +}, +"displayName": { +"description": "The display name of the processor.", +"type": "string" +}, +"kmsKeyName": { +"description": "The [KMS key](https://cloud.google.com/security-key-management) used for encryption and decryption in CMEK scenarios.", +"type": "string" +}, +"name": { +"description": "Output only. Immutable. The resource name of the processor. Format: `projects/{project}/locations/{location}/processors/{processor}`", +"readOnly": true, +"type": "string" +}, +"processEndpoint": { +"description": "Output only. Immutable. The http endpoint that can be called to invoke processing.", +"readOnly": true, +"type": "string" +}, +"processorVersionAliases": { +"description": "Output only. The processor version aliases.", +"items": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersionAlias" +}, +"readOnly": true, +"type": "array" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the processor.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"ENABLING", +"DISABLING", +"CREATING", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"The processor is in an unspecified state.", +"The processor is enabled, i.e., has an enabled version which can currently serve processing requests and all the feature dependencies have been successfully initialized.", +"The processor is disabled.", +"The processor is being enabled, will become `ENABLED` if successful.", +"The processor is being disabled, will become `DISABLED` if successful.", +"The processor is being created, will become either `ENABLED` (for successful creation) or `FAILED` (for failed ones). Once a processor is in this state, it can then be used for document processing, but the feature dependencies of the processor might not be fully created yet.", +"The processor failed during creation or initialization of feature dependencies. The user should delete the processor and recreate one as all the functionalities of the processor are disabled.", +"The processor is being deleted, will be removed if successful." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`. To get a list of processor types, see FetchProcessorTypes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorType": { +"description": "A processor type is responsible for performing a certain document understanding task on a certain type of document.", +"id": "GoogleCloudDocumentaiV1ProcessorType", +"properties": { +"allowCreation": { +"description": "Whether the processor type allows creation. If true, users can create a processor of this processor type. Otherwise, users need to request access.", +"type": "boolean" +}, +"availableLocations": { +"description": "The locations in which this processor is available.", +"items": { +"$ref": "GoogleCloudDocumentaiV1ProcessorTypeLocationInfo" +}, +"type": "array" +}, +"category": { +"description": "The processor category, used by UI to group processor types.", +"type": "string" +}, +"launchStage": { +"description": "Launch stage of the processor type", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"name": { +"description": "The resource name of the processor type. Format: `projects/{project}/processorTypes/{processor_type}`", +"type": "string" +}, +"sampleDocumentUris": { +"description": "A set of Cloud Storage URIs of sample documents for this processor.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorTypeLocationInfo": { +"description": "The location information about where the processor is available.", +"id": "GoogleCloudDocumentaiV1ProcessorTypeLocationInfo", +"properties": { +"locationId": { +"description": "The location ID. For supported locations, refer to [regional and multi-regional support](/document-ai/docs/regions).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorVersion": { +"description": "A processor version is an implementation of a processor. Each processor can have multiple versions, pretrained by Google internally or uptrained by the customer. A processor can only have one default version at a time. Its document-processing behavior is defined by that version.", +"id": "GoogleCloudDocumentaiV1ProcessorVersion", +"properties": { +"createTime": { +"description": "The time the processor version was created.", +"format": "google-datetime", +"type": "string" +}, +"deprecationInfo": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo", +"description": "If set, information about the eventual deprecation of this version." +}, +"displayName": { +"description": "The display name of the processor version.", +"type": "string" +}, +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchema", +"description": "The schema of the processor version. Describes the output." +}, +"genAiModelInfo": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfo", +"description": "Output only. Information about Generative AI model-based processor versions.", +"readOnly": true +}, +"googleManaged": { +"description": "Output only. Denotes that this `ProcessorVersion` is managed by Google.", +"readOnly": true, +"type": "boolean" +}, +"kmsKeyName": { +"description": "The KMS key name used for encryption.", +"type": "string" +}, +"kmsKeyVersionName": { +"description": "The KMS key version with which data is encrypted.", +"type": "string" +}, +"latestEvaluation": { +"$ref": "GoogleCloudDocumentaiV1EvaluationReference", +"description": "The most recently invoked evaluation for the processor version." +}, +"modelType": { +"description": "Output only. The model type of this processor version.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"MODEL_TYPE_GENERATIVE", +"MODEL_TYPE_CUSTOM" +], +"enumDescriptions": [ +"The processor version has unspecified model type.", +"The processor version has generative model type.", +"The processor version has custom model type." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the processor version.", +"enum": [ +"STATE_UNSPECIFIED", +"DEPLOYED", +"DEPLOYING", +"UNDEPLOYED", +"UNDEPLOYING", +"CREATING", +"DELETING", +"FAILED", +"IMPORTING" +], +"enumDescriptions": [ +"The processor version is in an unspecified state.", +"The processor version is deployed and can be used for processing.", +"The processor version is being deployed.", +"The processor version is not deployed and cannot be used for processing.", +"The processor version is being undeployed.", +"The processor version is being created.", +"The processor version is being deleted.", +"The processor version failed and is in an indeterminate state.", +"The processor version is being imported." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorVersionAlias": { +"description": "Contains the alias and the aliased resource name of processor version.", +"id": "GoogleCloudDocumentaiV1ProcessorVersionAlias", +"properties": { +"alias": { +"description": "The alias in the form of `processor_version` resource name.", +"type": "string" +}, +"processorVersion": { +"description": "The resource name of aliased processor version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo": { +"description": "Information about the upcoming deprecation of this processor version.", +"id": "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo", +"properties": { +"deprecationTime": { +"description": "The time at which this processor version will be deprecated.", +"format": "google-datetime", +"type": "string" +}, +"replacementProcessorVersion": { +"description": "If set, the processor version that will be used as a replacement.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfo": { +"description": "Information about Generative AI model-based processor versions.", +"id": "GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfo", +"properties": { +"customGenAiModelInfo": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfoCustomGenAiModelInfo", +"description": "Information for a custom Generative AI model created by the user." +}, +"foundationGenAiModelInfo": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfoFoundationGenAiModelInfo", +"description": "Information for a pretrained Google-managed foundation model." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfoCustomGenAiModelInfo": { +"description": "Information for a custom Generative AI model created by the user. These are created with `Create New Version` in either the `Call foundation model` or `Fine tuning` tabs.", +"id": "GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfoCustomGenAiModelInfo", +"properties": { +"baseProcessorVersionId": { +"description": "The base processor version ID for the custom model.", +"type": "string" +}, +"customModelType": { +"description": "The type of custom model created by the user.", +"enum": [ +"CUSTOM_MODEL_TYPE_UNSPECIFIED", +"VERSIONED_FOUNDATION", +"FINE_TUNED" +], +"enumDescriptions": [ +"The model type is unspecified.", +"The model is a versioned foundation model.", +"The model is a finetuned foundation model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfoFoundationGenAiModelInfo": { +"description": "Information for a pretrained Google-managed foundation model.", +"id": "GoogleCloudDocumentaiV1ProcessorVersionGenAiModelInfoFoundationGenAiModelInfo", +"properties": { +"finetuningAllowed": { +"description": "Whether finetuning is allowed for this base processor version.", +"type": "boolean" +}, +"minTrainLabeledDocuments": { +"description": "The minimum number of labeled documents in the training dataset required for finetuning.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1RawDocument": { +"description": "Payload message of raw document content (bytes).", +"id": "GoogleCloudDocumentaiV1RawDocument", +"properties": { +"content": { +"description": "Inline document content.", +"format": "byte", +"type": "string" +}, +"displayName": { +"description": "The display name of the document, it supports all Unicode characters except the following: `*`, `?`, `[`, `]`, `%`, `{`, `}`,`'`, `\\\"`, `,` `~`, `=` and `:` are reserved. If not specified, a default ID is generated.", +"type": "string" +}, +"mimeType": { +"description": "An IANA MIME type (RFC6838) indicating the nature and format of the content.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata": { +"description": "The long-running operation metadata for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"questionId": { +"description": "The Crowd Compute question ID.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ReviewDocumentRequest": { +"description": "Request message for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1ReviewDocumentRequest", +"properties": { +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchema", +"description": "The document schema of the human review task." +}, +"enableSchemaValidation": { +"description": "Whether the validation should be performed on the ad-hoc review request.", +"type": "boolean" +}, +"inlineDocument": { +"$ref": "GoogleCloudDocumentaiV1Document", +"description": "An inline document proto." +}, +"priority": { +"description": "The priority of the human review task.", +"enum": [ +"DEFAULT", +"URGENT" +], +"enumDescriptions": [ +"The default priority level.", +"The urgent priority level. The labeling manager should allocate labeler resource to the urgent task queue to respect this priority level." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ReviewDocumentResponse": { +"description": "Response message for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", +"properties": { +"gcsDestination": { +"description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", +"type": "string" +}, +"rejectionReason": { +"description": "The reason why the review is rejected by reviewer.", +"type": "string" +}, +"state": { +"description": "The state of the review operation.", +"enum": [ +"STATE_UNSPECIFIED", +"REJECTED", +"SUCCEEDED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The review operation is rejected by the reviewer.", +"The review operation is succeeded." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata": { +"description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1SetDefaultProcessorVersionRequest": { +"description": "Request message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionRequest", +"properties": { +"defaultProcessorVersion": { +"description": "Required. The resource name of child ProcessorVersion to use as default. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{version}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse": { +"description": "Response message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionMetadata": { +"description": "The metadata that represents a processor version being created.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"testDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", +"description": "The test dataset validation information." +}, +"trainingDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", +"description": "The training dataset validation information." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation": { +"description": "The dataset validation information. This includes any and all errors with documents and the dataset.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", +"properties": { +"datasetErrorCount": { +"description": "The total number of dataset errors.", +"format": "int32", +"type": "integer" +}, +"datasetErrors": { +"description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"documentErrorCount": { +"description": "The total number of document errors.", +"format": "int32", +"type": "integer" +}, +"documentErrors": { +"description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionRequest": { +"description": "Request message for the TrainProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequest", +"properties": { +"baseProcessorVersion": { +"description": "Optional. The processor version to use as a base for training. This processor version must be a child of `parent`. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`.", +"type": "string" +}, +"customDocumentExtractionOptions": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestCustomDocumentExtractionOptions", +"description": "Options to control Custom Document Extraction (CDE) Processor." +}, +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1DocumentSchema", +"description": "Optional. The schema the processor version will be trained with." +}, +"foundationModelTuningOptions": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestFoundationModelTuningOptions", +"description": "Options to control foundation model tuning of a processor." +}, +"inputData": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", +"description": "Optional. The input data used to train the ProcessorVersion." +}, +"processorVersion": { +"$ref": "GoogleCloudDocumentaiV1ProcessorVersion", +"description": "Required. The processor version to be created." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionRequestCustomDocumentExtractionOptions": { +"description": "Options to control the training of the Custom Document Extraction (CDE) Processor.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestCustomDocumentExtractionOptions", +"properties": { +"trainingMethod": { +"description": "Training method to use for CDE training.", +"enum": [ +"TRAINING_METHOD_UNSPECIFIED", +"MODEL_BASED", +"TEMPLATE_BASED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionRequestFoundationModelTuningOptions": { +"description": "Options to control foundation model tuning of the processor.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestFoundationModelTuningOptions", +"properties": { +"learningRateMultiplier": { +"description": "Optional. The multiplier to apply to the recommended learning rate. Valid values are between 0.1 and 10. If not provided, recommended learning rate will be used.", +"format": "float", +"type": "number" +}, +"trainSteps": { +"description": "Optional. The number of steps to run for model tuning. Valid values are between 1 and 400. If not provided, recommended steps will be used.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData": { +"description": "The input data used to train a new ProcessorVersion.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", +"properties": { +"testDocuments": { +"$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", +"description": "The documents used for testing the trained version." +}, +"trainingDocuments": { +"$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", +"description": "The documents used for training the new version." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionResponse": { +"description": "The response for TrainProcessorVersion.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The resource name of the processor version produced by training.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1UndeployProcessorVersionRequest": { +"description": "Request message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1UndeployProcessorVersionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1UndeployProcessorVersionResponse": { +"description": "Response message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "GoogleCloudDocumentaiV1Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate (starts from the top of the image).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata": { +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"errorDocumentCount": { +"description": "Total number of documents that failed to be deleted in storage.", +"format": "int32", +"type": "integer" +}, +"individualBatchDeleteStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of documents deleting from dataset.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { +"description": "The status of each individual document in the batch delete process.", +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of deleting the document in storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse": { +"description": "Response of the delete documents operation.", +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessMetadata": { +"description": "The long-running operation metadata for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"individualProcessStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus" +}, +"type": "array" +}, +"state": { +"description": "The state of the current batch processing.", +"enum": [ +"STATE_UNSPECIFIED", +"WAITING", +"RUNNING", +"SUCCEEDED", +"CANCELLING", +"CANCELLED", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Request operation is waiting for scheduling.", +"Request is being processed.", +"The batch processing completed successfully.", +"The batch processing was being cancelled.", +"The batch processing was cancelled.", +"The batch processing has failed." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the error message if the operation is failed.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus": { +"description": "The status of a each individual document in the batch process.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus", +"properties": { +"humanReviewOperation": { +"deprecated": true, +"description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field will be empty. It has the same response type and metadata as the long-running operation returned by the ReviewDocument method.", +"type": "string" +}, +"humanReviewStatus": { +"$ref": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", +"description": "The status of human review on the processed document." +}, +"inputGcsSource": { +"description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", +"type": "string" +}, +"outputGcsDestination": { +"description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status processing the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessResponse": { +"description": "Response message for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3CommonOperationMetadata": { +"description": "The common metadata for long running operations.", +"id": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "A related resource to this operation.", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Dataset": { +"description": "A singleton resource under a Processor which configures a collection of documents.", +"id": "GoogleCloudDocumentaiV1beta3Dataset", +"properties": { +"documentWarehouseConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", +"deprecated": true, +"description": "Optional. Deprecated. Warehouse-based dataset configuration is not supported." +}, +"gcsManagedConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", +"description": "Optional. User-managed Cloud Storage dataset configuration. Use this configuration if the dataset documents are stored under a user-managed Cloud Storage location." +}, +"name": { +"description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"spannerIndexingConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", +"description": "Optional. A lightweight indexing source with low latency and high reliability, but lacking advanced features like CMEK and content-based search." +}, +"state": { +"description": "Required. State of the dataset. Ignored when updating dataset.", +"enum": [ +"STATE_UNSPECIFIED", +"UNINITIALIZED", +"INITIALIZING", +"INITIALIZED" +], +"enumDescriptions": [ +"Default unspecified enum, should not be used.", +"Dataset has not been initialized.", +"Dataset is being initialized.", +"Dataset has been initialized." +], +"type": "string" +}, +"unmanagedDatasetConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", +"description": "Optional. Unmanaged dataset configuration. Use this configuration if the dataset documents are managed by the document service internally (not user-managed)." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig": { +"description": "Configuration specific to the Document AI Warehouse-based implementation.", +"id": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", +"properties": { +"collection": { +"description": "Output only. The collection in Document AI Warehouse associated with the dataset.", +"readOnly": true, +"type": "string" +}, +"schema": { +"description": "Output only. The schema in Document AI Warehouse associated with the dataset.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig": { +"description": "Configuration specific to the Cloud Storage-based implementation.", +"id": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", +"properties": { +"gcsPrefix": { +"$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", +"description": "Required. The Cloud Storage URI (a directory) where the documents belonging to the dataset must be stored." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig": { +"description": "Configuration specific to spanner-based indexing.", +"id": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig": { +"description": "Configuration specific to an unmanaged dataset.", +"id": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata": { +"description": "The long-running operation metadata for the DeleteProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeleteProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse": { +"description": "Response message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DisableProcessorMetadata": { +"description": "The long-running operation metadata for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DisableProcessorResponse": { +"description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1beta3DisableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentId": { +"description": "Document Identifier.", +"id": "GoogleCloudDocumentaiV1beta3DocumentId", +"properties": { +"gcsManagedDocId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", +"description": "A document id within user-managed Cloud Storage." +}, +"revisionRef": { +"$ref": "GoogleCloudDocumentaiV1beta3RevisionRef", +"description": "Points to a specific revision of the document if set." +}, +"unmanagedDocId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", +"description": "A document id within unmanaged dataset." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", +"id": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", +"properties": { +"cwDocId": { +"deprecated": true, +"description": "Id of the document (indexed) managed by Content Warehouse.", +"type": "string" +}, +"gcsUri": { +"description": "Required. The Cloud Storage URI where the actual document is stored.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", +"id": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", +"properties": { +"docId": { +"description": "Required. The id of the document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EnableProcessorMetadata": { +"description": "The long-running operation metadata for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EnableProcessorResponse": { +"description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1beta3EnableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata": { +"description": "Metadata of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { +"description": "Response of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", +"properties": { +"evaluation": { +"description": "The resource name of the created evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3GcsPrefix": { +"description": "Specifies all documents on Cloud Storage with a common prefix.", +"id": "GoogleCloudDocumentaiV1beta3GcsPrefix", +"properties": { +"gcsUriPrefix": { +"description": "The URI prefix.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3HumanReviewStatus": { +"description": "The status of human review on a processed document.", +"id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", +"properties": { +"humanReviewOperation": { +"description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", +"type": "string" +}, +"state": { +"description": "The state of human review on the processing request.", +"enum": [ +"STATE_UNSPECIFIED", +"SKIPPED", +"VALIDATION_PASSED", +"IN_PROGRESS", +"ERROR" +], +"enumDescriptions": [ +"Human review state is unspecified. Most likely due to an internal error.", +"Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", +"Human review validation is triggered and passed, so no review is needed.", +"Human review validation is triggered and the document is under review.", +"Some error happened during triggering human review, see the state_message for details." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the human review state.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata": { +"description": "Metadata of the import document operation.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"importConfigValidationResults": { +"description": "Validation statuses of the batch documents import config.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult" +}, +"type": "array" +}, +"individualImportStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of the documents that are qualified for importing.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult": { +"description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI specified in the import config.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The validation status of import config." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus": { +"description": "The status of each individual document in the import process.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI of the document.", +"type": "string" +}, +"outputDocumentId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentId", +"description": "The document id of imported document if it was successful, otherwise empty." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the importing of the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsResponse": { +"description": "Response of the import document operation.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata": { +"description": "The long-running operation metadata for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata for the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse": { +"description": "The response message for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The destination processor version name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata": { +"description": "The long-running operation metadata for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"questionId": { +"description": "The Crowd Compute question ID.", +"type": "string" +}, +"state": { +"description": "Used only when Operation.done is false.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the error message if the operation is failed.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ReviewDocumentResponse": { +"description": "Response message for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", +"properties": { +"gcsDestination": { +"description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", +"type": "string" +}, +"rejectionReason": { +"description": "The reason why the review is rejected by reviewer.", +"type": "string" +}, +"state": { +"description": "The state of the review operation.", +"enum": [ +"STATE_UNSPECIFIED", +"REJECTED", +"SUCCEEDED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The review operation is rejected by the reviewer.", +"The review operation is succeeded." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3RevisionRef": { +"description": "The revision reference specifies which revision on the document to read.", +"id": "GoogleCloudDocumentaiV1beta3RevisionRef", +"properties": { +"latestProcessorVersion": { +"description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"type": "string" +}, +"revisionCase": { +"description": "Reads the revision by the predefined case.", +"enum": [ +"REVISION_CASE_UNSPECIFIED", +"LATEST_HUMAN_REVIEW", +"LATEST_TIMESTAMP", +"BASE_OCR_REVISION" +], +"enumDescriptions": [ +"Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", +"The latest revision made by a human.", +"The latest revision based on timestamp.", +"The first (OCR) revision." +], +"type": "string" +}, +"revisionId": { +"description": "Reads the revision given by the id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata": { +"description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse": { +"description": "Response message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadata": { +"description": "The metadata that represents a processor version being created.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"testDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The test dataset validation information." +}, +"trainingDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The training dataset validation information." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation": { +"description": "The dataset validation information. This includes any and all errors with documents and the dataset.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", +"properties": { +"datasetErrorCount": { +"description": "The total number of dataset errors.", +"format": "int32", +"type": "integer" +}, +"datasetErrors": { +"description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"documentErrorCount": { +"description": "The total number of document errors.", +"format": "int32", +"type": "integer" +}, +"documentErrors": { +"description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { +"description": "The response for TrainProcessorVersion.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The resource name of the processor version produced by training.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse": { +"description": "Response message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata": { +"id": "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeColor": { +"description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value\u2014for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", +"id": "GoogleTypeColor", +"properties": { +"alpha": { +"description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", +"format": "float", +"type": "number" +}, +"blue": { +"description": "The amount of blue in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"green": { +"description": "The amount of green in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"red": { +"description": "The amount of red in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleTypeDate": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "GoogleTypeDate", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleTypeDateTime": { +"description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", +"id": "GoogleTypeDateTime", +"properties": { +"day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"type": "integer" +}, +"hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +}, +"timeZone": { +"$ref": "GoogleTypeTimeZone", +"description": "Time zone." +}, +"utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"type": "string" +}, +"year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleTypeMoney": { +"description": "Represents an amount of money with its currency type.", +"id": "GoogleTypeMoney", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypePostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "GoogleTypePostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeTimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "GoogleTypeTimeZone", +"properties": { +"id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"type": "string" +}, +"version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Document AI API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/documentai.v1beta3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/documentai.v1beta3.json new file mode 100644 index 0000000000000000000000000000000000000000..e680d354cddb4a3a6321e8bf2ba3a2a6d05eac4a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/documentai.v1beta3.json @@ -0,0 +1,6915 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://documentai.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Document", +"description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/document-ai/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "documentai:v1beta3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://documentai.mtls.googleapis.com/", +"name": "documentai", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"fetchProcessorTypes": { +"description": "Fetches processor types. Note that we don't use ListProcessorTypes here, because it isn't paginated.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}:fetchProcessorTypes", +"httpMethod": "GET", +"id": "documentai.projects.locations.fetchProcessorTypes", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}:fetchProcessorTypes", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta3/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "documentai.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta3/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "documentai.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:cancel", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "documentai.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"processorTypes": { +"methods": { +"get": { +"description": "Gets a processor type detail.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processorTypes/{processorTypesId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processorTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor type resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processorTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the processor types that exist.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processorTypes", +"httpMethod": "GET", +"id": "documentai.projects.locations.processorTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of processor types to return. If unspecified, at most `100` processor types will be returned. The maximum value is `500`. Values above `500` will be coerced to `500`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Used to retrieve the next page of results, empty if at the end of the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/processorTypes", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"processors": { +"methods": { +"batchProcess": { +"description": "LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:batchProcess", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.batchProcess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of Processor or ProcessorVersion. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:batchProcess", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a processor from the ProcessorType provided. The processor will be at `ENABLED` state by default after its creation. Note that this method requires the `documentai.processors.create` permission on the project, which is highly privileged. A user or service account with this permission can create new processors that can interact with any gcs bucket in your project.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) under which to create the processor. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/processors", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3Processor" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3Processor" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the processor, unloads all deployed model artifacts if it was enabled and then deletes all artifacts associated with this processor.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}", +"httpMethod": "DELETE", +"id": "documentai.projects.locations.processors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disables a processor", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:disable", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name to be disabled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:disable", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3DisableProcessorRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enables a processor", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:enable", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name to be enabled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:enable", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3EnableProcessorRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a processor detail.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3Processor" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all processors which belong to this project.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of processors to return. If unspecified, at most `50` processors will be returned. The maximum value is `100`. Values above `100` will be coerced to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "We will return the processors sorted by creation time. The page token will point to the next processor.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) which owns this collection of Processors. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/processors", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ListProcessorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"process": { +"description": "Processes a single document.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:process", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.process", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Processor or ProcessorVersion to use for processing. If a Processor is specified, the server will use its default version. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:process", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessRequest" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setDefaultProcessorVersion": { +"description": "Set the default (active) version of a Processor that will be used in ProcessDocument and BatchProcessDocuments.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}:setDefaultProcessorVersion", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.setDefaultProcessorVersion", +"parameterOrder": [ +"processor" +], +"parameters": { +"processor": { +"description": "Required. The resource name of the Processor to change default version.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+processor}:setDefaultProcessorVersion", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDataset": { +"description": "Updates metadata associated with a dataset. Note that this method requires the `documentai.googleapis.com/datasets.update` permission on the project, which is highly privileged. A user or service account with this permission can create new processors that can interact with any gcs bucket in your project.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset", +"httpMethod": "PATCH", +"id": "documentai.projects.locations.processors.updateDataset", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3Dataset" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dataset": { +"methods": { +"batchDeleteDocuments": { +"description": "Deletes a set of documents.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:batchDeleteDocuments", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.dataset.batchDeleteDocuments", +"parameterOrder": [ +"dataset" +], +"parameters": { +"dataset": { +"description": "Required. The dataset resource name. Format: projects/{project}/locations/{location}/processors/{processor}/dataset", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+dataset}:batchDeleteDocuments", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDatasetSchema": { +"description": "Gets the `DatasetSchema` of a `Dataset`.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset/datasetSchema", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.dataset.getDatasetSchema", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The dataset schema resource name. Format: projects/{project}/locations/{location}/processors/{processor}/dataset/datasetSchema", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset/datasetSchema$", +"required": true, +"type": "string" +}, +"visibleFieldsOnly": { +"description": "If set, only returns the visible fields of the schema.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetSchema" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDocument": { +"description": "Returns relevant fields present in the requested document.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:getDocument", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.dataset.getDocument", +"parameterOrder": [ +"dataset" +], +"parameters": { +"dataset": { +"description": "Required. The resource name of the dataset that the document belongs to . Format: projects/{project}/locations/{location}/processors/{processor}/dataset", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", +"required": true, +"type": "string" +}, +"documentId.gcsManagedDocId.cwDocId": { +"deprecated": true, +"description": "Id of the document (indexed) managed by Content Warehouse.", +"location": "query", +"type": "string" +}, +"documentId.gcsManagedDocId.gcsUri": { +"description": "Required. The Cloud Storage URI where the actual document is stored.", +"location": "query", +"type": "string" +}, +"documentId.revisionRef.latestProcessorVersion": { +"description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "query", +"type": "string" +}, +"documentId.revisionRef.revisionCase": { +"description": "Reads the revision by the predefined case.", +"enum": [ +"REVISION_CASE_UNSPECIFIED", +"LATEST_HUMAN_REVIEW", +"LATEST_TIMESTAMP", +"BASE_OCR_REVISION" +], +"enumDescriptions": [ +"Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", +"The latest revision made by a human.", +"The latest revision based on timestamp.", +"The first (OCR) revision." +], +"location": "query", +"type": "string" +}, +"documentId.revisionRef.revisionId": { +"description": "Reads the revision given by the id.", +"location": "query", +"type": "string" +}, +"documentId.unmanagedDocId.docId": { +"description": "Required. The id of the document.", +"location": "query", +"type": "string" +}, +"pageRange.end": { +"description": "Last page number (one-based index) to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageRange.start": { +"description": "First page number (one-based index) to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"readMask": { +"description": "If set, only fields listed here will be returned. Otherwise, all fields will be returned by default.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta3/{+dataset}:getDocument", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3GetDocumentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"importDocuments": { +"description": "Import documents into a dataset.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:importDocuments", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.dataset.importDocuments", +"parameterOrder": [ +"dataset" +], +"parameters": { +"dataset": { +"description": "Required. The dataset resource name. Format: projects/{project}/locations/{location}/processors/{processor}/dataset", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+dataset}:importDocuments", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDocuments": { +"description": "Returns a list of documents present in the dataset.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:listDocuments", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.dataset.listDocuments", +"parameterOrder": [ +"dataset" +], +"parameters": { +"dataset": { +"description": "Required. The resource name of the dataset to be listed. Format: projects/{project}/locations/{location}/processors/{processor}/dataset", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+dataset}:listDocuments", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3ListDocumentsRequest" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ListDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDatasetSchema": { +"description": "Updates a `DatasetSchema`.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset/datasetSchema", +"httpMethod": "PATCH", +"id": "documentai.projects.locations.processors.dataset.updateDatasetSchema", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Dataset schema resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset/datasetSchema`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset/datasetSchema$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetSchema" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetSchema" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"humanReviewConfig": { +"methods": { +"reviewDocument": { +"description": "Send a document for Human Review. The input document should be processed by the specified processor.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/humanReviewConfig:reviewDocument", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.humanReviewConfig.reviewDocument", +"parameterOrder": [ +"humanReviewConfig" +], +"parameters": { +"humanReviewConfig": { +"description": "Required. The resource name of the HumanReviewConfig that the document will be reviewed with.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/humanReviewConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+humanReviewConfig}:reviewDocument", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3ReviewDocumentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"processorVersions": { +"methods": { +"batchProcess": { +"description": "LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:batchProcess", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.batchProcess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of Processor or ProcessorVersion. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:batchProcess", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the processor version, all artifacts under the processor version will be deleted.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}", +"httpMethod": "DELETE", +"id": "documentai.projects.locations.processors.processorVersions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor version resource name to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deploy": { +"description": "Deploys the processor version.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:deploy", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.deploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor version resource name to be deployed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:deploy", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"evaluateProcessorVersion": { +"description": "Evaluates a ProcessorVersion against annotated documents, producing an Evaluation.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:evaluateProcessorVersion", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.evaluateProcessorVersion", +"parameterOrder": [ +"processorVersion" +], +"parameters": { +"processorVersion": { +"description": "Required. The resource name of the ProcessorVersion to evaluate. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+processorVersion}:evaluateProcessorVersion", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a processor version detail.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"importProcessorVersion": { +"description": "Imports a processor version from source processor version.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:importProcessorVersion", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.importProcessorVersion", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The destination processor name to create the processor version in. Format: `projects/{project}/locations/{location}/processors/{processor}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/processorVersions:importProcessorVersion", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all versions of a processor.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of processor versions to return. If unspecified, at most `10` processor versions will be returned. The maximum value is `20`. Values above `20` will be coerced to `20`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "We will return the processor versions sorted by creation time. The page token will point to the next processor version.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project, location and processor) to list all versions. Format: `projects/{project}/locations/{location}/processors/{processor}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/processorVersions", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"process": { +"description": "Processes a single document.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:process", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.process", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Processor or ProcessorVersion to use for processing. If a Processor is specified, the server will use its default version. Format: `projects/{project}/locations/{location}/processors/{processor}`, or `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:process", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessRequest" +}, +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"train": { +"description": "Trains a new processor version. Operation metadata is returned as TrainProcessorVersionMetadata.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:train", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.train", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project, location and processor) to create the new version for. Format: `projects/{project}/locations/{location}/processors/{processor}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/processorVersions:train", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undeploy": { +"description": "Undeploys the processor version.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:undeploy", +"httpMethod": "POST", +"id": "documentai.projects.locations.processors.processorVersions.undeploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The processor version resource name to be undeployed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}:undeploy", +"request": { +"$ref": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"evaluations": { +"methods": { +"get": { +"description": "Retrieves a specific evaluation.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations/{evaluationsId}", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.evaluations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Evaluation to get. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}/evaluations/{evaluation}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+name}", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3Evaluation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Retrieves a set of evaluations for a given processor version.", +"flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations", +"httpMethod": "GET", +"id": "documentai.projects.locations.processors.processorVersions.evaluations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The standard list page size. If unspecified, at most `5` evaluations are returned. The maximum value is `100`. Values above `100` are coerced to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEvaluations` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the ProcessorVersion to list evaluations for. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta3/{+parent}/evaluations", +"response": { +"$ref": "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20241210", +"rootUrl": "https://documentai.googleapis.com/", +"schemas": { +"GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { +"description": "Metadata of the auto-labeling documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"individualAutoLabelStatuses": { +"description": "The list of individual auto-labeling statuses of the dataset documents.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of the auto-labeling documents.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus": { +"description": "The status of individual documents in the auto-labeling process.", +"id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the auto-labeled document. This will replace the gcs_uri." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the document auto-labeling." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse": { +"description": "The response proto of AutoLabelDocuments method.", +"id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"errorDocumentCount": { +"description": "Total number of documents that failed to be deleted in storage.", +"format": "int32", +"type": "integer" +}, +"individualBatchDeleteStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of documents deleting from dataset.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { +"description": "The status of each individual document in the batch delete process.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of deleting the document in storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsResponse": { +"description": "Response of the delete documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"destDatasetType": { +"deprecated": true, +"description": "The destination dataset split type.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"destSplitType": { +"description": "The destination dataset split type.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"individualBatchMoveStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadataIndividualBatchMoveStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadataIndividualBatchMoveStatus": { +"description": "The status of each individual document in the batch move process.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsMetadataIndividualBatchMoveStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of moving the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsResponse": { +"description": "Response of the batch move documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchMoveDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"individualBatchUpdateStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus": { +"description": "The status of each individual document in the batch update process.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of updating the document in storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse": { +"description": "Response of the batch update documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { +"description": "The common metadata for long running operations.", +"id": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "A related resource to this operation.", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata": { +"description": "The long-running operation metadata for the CreateLabelerPool method.", +"id": "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { +"description": "The long-running operation metadata for DeleteLabelerPool.", +"id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata": { +"description": "The long-running operation metadata for the DeleteProcessor method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeleteProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse": { +"description": "Response message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata": { +"description": "The long-running operation metadata for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse": { +"description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DocumentId": { +"description": "Document Identifier.", +"id": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"properties": { +"gcsManagedDocId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", +"description": "A document id within user-managed Cloud Storage." +}, +"revisionRef": { +"$ref": "GoogleCloudDocumentaiUiv1beta3RevisionRef", +"description": "Points to a specific revision of the document if set." +}, +"unmanagedDocId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", +"description": "A document id within unmanaged dataset." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", +"id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", +"properties": { +"cwDocId": { +"deprecated": true, +"description": "Id of the document (indexed) managed by Content Warehouse.", +"type": "string" +}, +"gcsUri": { +"description": "Required. The Cloud Storage URI where the actual document is stored.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", +"id": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", +"properties": { +"docId": { +"description": "Required. The id of the document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata": { +"description": "The long-running operation metadata for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse": { +"description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionMetadata": { +"description": "Metadata of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse": { +"description": "Response of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse", +"properties": { +"evaluation": { +"description": "The resource name of the created evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata": { +"description": "Metadata of the batch export documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"individualExportStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus" +}, +"type": "array" +}, +"splitExportStats": { +"description": "The list of statistics for each dataset split type.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus": { +"description": "The status of each individual document in the export process.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The path to source docproto of the document." +}, +"outputGcsDestination": { +"description": "The output_gcs_destination of the exported document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the exporting of the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat": { +"description": "The statistic representing a dataset split type for this export.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat", +"properties": { +"splitType": { +"description": "The dataset split type.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"totalDocumentCount": { +"description": "Total number of documents with the given dataset split type to be exported.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse": { +"description": "The response proto of ExportDocuments method.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata": { +"description": "Metadata message associated with the ExportProcessorVersion operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The common metadata about the operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionResponse": { +"description": "Response message associated with the ExportProcessorVersion operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionResponse", +"properties": { +"gcsUri": { +"description": "The Cloud Storage URI containing the output artifacts.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadata": { +"description": "Metadata of the import document operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"importConfigValidationResults": { +"description": "Validation statuses of the batch documents import config.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult" +}, +"type": "array" +}, +"individualImportStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of the documents that are qualified for importing.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult": { +"description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI specified in the import config.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The validation status of import config." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus": { +"description": "The status of each individual document in the import process.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI of the document.", +"type": "string" +}, +"outputDocumentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document id of imported document if it was successful, otherwise empty." +}, +"outputGcsDestination": { +"description": "The output_gcs_destination of the processed document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the importing of the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportDocumentsResponse": { +"description": "Response of the import document operation.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata": { +"description": "The long-running operation metadata for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata for the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse": { +"description": "The response message for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The destination processor version name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata": { +"description": "The metadata proto of `ResyncDataset` method.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"datasetResyncStatuses": { +"description": "The list of dataset resync statuses. Not checked when ResyncDatasetRequest.dataset_documents is specified.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" +}, +"type": "array" +}, +"individualDocumentResyncStatuses": { +"description": "The list of document resync statuses. The same document could have multiple `individual_document_resync_statuses` if it has multiple inconsistencies.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus": { +"description": "Resync status against inconsistency types on the dataset level.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus", +"properties": { +"datasetInconsistencyType": { +"description": "The type of the inconsistency of the dataset.", +"enum": [ +"DATASET_INCONSISTENCY_TYPE_UNSPECIFIED", +"DATASET_INCONSISTENCY_TYPE_NO_STORAGE_MARKER" +], +"enumDescriptions": [ +"Default value.", +"The marker file under the dataset folder is not found." +], +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus": { +"description": "Resync status for each document per inconsistency type.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", +"description": "The document identifier." +}, +"documentInconsistencyType": { +"description": "The type of document inconsistency.", +"enum": [ +"DOCUMENT_INCONSISTENCY_TYPE_UNSPECIFIED", +"DOCUMENT_INCONSISTENCY_TYPE_INVALID_DOCPROTO", +"DOCUMENT_INCONSISTENCY_TYPE_MISMATCHED_METADATA", +"DOCUMENT_INCONSISTENCY_TYPE_NO_PAGE_IMAGE" +], +"enumDescriptions": [ +"Default value.", +"The document proto is invalid.", +"Indexed docproto metadata is mismatched.", +"The page image or thumbnails are missing." +], +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of resyncing the document with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3ResyncDatasetResponse": { +"description": "The response proto of ResyncDataset method.", +"id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3RevisionRef": { +"description": "The revision reference specifies which revision on the document to read.", +"id": "GoogleCloudDocumentaiUiv1beta3RevisionRef", +"properties": { +"latestProcessorVersion": { +"description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"type": "string" +}, +"revisionCase": { +"description": "Reads the revision by the predefined case.", +"enum": [ +"REVISION_CASE_UNSPECIFIED", +"LATEST_HUMAN_REVIEW", +"LATEST_TIMESTAMP", +"BASE_OCR_REVISION" +], +"enumDescriptions": [ +"Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", +"The latest revision made by a human.", +"The latest revision based on timestamp.", +"The first (OCR) revision." +], +"type": "string" +}, +"revisionId": { +"description": "Reads the revision given by the id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata": { +"description": "Metadata of the sample documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse": { +"description": "Response of the sample documents operation.", +"id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse", +"properties": { +"sampleTestStatus": { +"$ref": "GoogleRpcStatus", +"description": "The status of sampling documents in test split." +}, +"sampleTrainingStatus": { +"$ref": "GoogleRpcStatus", +"description": "The status of sampling documents in training split." +}, +"selectedDocuments": { +"description": "The result of the sampling process.", +"items": { +"$ref": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument": { +"id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument", +"properties": { +"documentId": { +"description": "An internal identifier for document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata": { +"description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse": { +"description": "Response message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadata": { +"description": "The metadata that represents a processor version being created.", +"id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"testDatasetValidation": { +"$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The test dataset validation information." +}, +"trainingDatasetValidation": { +"$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The training dataset validation information." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation": { +"description": "The dataset validation information. This includes any and all errors with documents and the dataset.", +"id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", +"properties": { +"datasetErrorCount": { +"description": "The total number of dataset errors.", +"format": "int32", +"type": "integer" +}, +"datasetErrors": { +"description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"documentErrorCount": { +"description": "The total number of document errors.", +"format": "int32", +"type": "integer" +}, +"documentErrors": { +"description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse": { +"description": "The response for TrainProcessorVersion.", +"id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The resource name of the processor version produced by training.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse": { +"description": "Response message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UpdateDatasetOperationMetadata": { +"id": "GoogleCloudDocumentaiUiv1beta3UpdateDatasetOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata": { +"description": "The long-running operation metadata for updating the human review configuration.", +"id": "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata": { +"description": "The long-running operation metadata for UpdateLabelerPool.", +"id": "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessMetadata": { +"description": "The long-running operation metadata for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1BatchProcessMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"individualProcessStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus" +}, +"type": "array" +}, +"state": { +"description": "The state of the current batch processing.", +"enum": [ +"STATE_UNSPECIFIED", +"WAITING", +"RUNNING", +"SUCCEEDED", +"CANCELLING", +"CANCELLED", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Request operation is waiting for scheduling.", +"Request is being processed.", +"The batch processing completed successfully.", +"The batch processing was being cancelled.", +"The batch processing was cancelled.", +"The batch processing has failed." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the error message if the operation is failed.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus": { +"description": "The status of a each individual document in the batch process.", +"id": "GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus", +"properties": { +"humanReviewStatus": { +"$ref": "GoogleCloudDocumentaiV1HumanReviewStatus", +"description": "The status of human review on the processed document." +}, +"inputGcsSource": { +"description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", +"type": "string" +}, +"outputGcsDestination": { +"description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status processing the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1BatchProcessResponse": { +"description": "Response message for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1BatchProcessResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1CommonOperationMetadata": { +"description": "The common metadata for long running operations.", +"id": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "A related resource to this operation.", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeleteProcessorMetadata": { +"description": "The long-running operation metadata for the DeleteProcessor method.", +"id": "GoogleCloudDocumentaiV1DeleteProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeleteProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DeployProcessorVersionResponse": { +"description": "Response message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1DeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DisableProcessorMetadata": { +"description": "The long-running operation metadata for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiV1DisableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1DisableProcessorResponse": { +"description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1DisableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EnableProcessorMetadata": { +"description": "The long-running operation metadata for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiV1EnableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EnableProcessorResponse": { +"description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1EnableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata": { +"description": "Metadata of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse": { +"description": "Response of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse", +"properties": { +"evaluation": { +"description": "The resource name of the created evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1HumanReviewStatus": { +"description": "The status of human review on a processed document.", +"id": "GoogleCloudDocumentaiV1HumanReviewStatus", +"properties": { +"humanReviewOperation": { +"description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", +"type": "string" +}, +"state": { +"description": "The state of human review on the processing request.", +"enum": [ +"STATE_UNSPECIFIED", +"SKIPPED", +"VALIDATION_PASSED", +"IN_PROGRESS", +"ERROR" +], +"enumDescriptions": [ +"Human review state is unspecified. Most likely due to an internal error.", +"Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", +"Human review validation is triggered and passed, so no review is needed.", +"Human review validation is triggered and the document is under review.", +"Some error happened during triggering human review, see the state_message for details." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the human review state.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata": { +"description": "The long-running operation metadata for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"questionId": { +"description": "The Crowd Compute question ID.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1ReviewDocumentResponse": { +"description": "Response message for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", +"properties": { +"gcsDestination": { +"description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", +"type": "string" +}, +"rejectionReason": { +"description": "The reason why the review is rejected by reviewer.", +"type": "string" +}, +"state": { +"description": "The state of the review operation.", +"enum": [ +"STATE_UNSPECIFIED", +"REJECTED", +"SUCCEEDED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The review operation is rejected by the reviewer.", +"The review operation is succeeded." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata": { +"description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse": { +"description": "Response message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionMetadata": { +"description": "The metadata that represents a processor version being created.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"testDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", +"description": "The test dataset validation information." +}, +"trainingDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", +"description": "The training dataset validation information." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation": { +"description": "The dataset validation information. This includes any and all errors with documents and the dataset.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", +"properties": { +"datasetErrorCount": { +"description": "The total number of dataset errors.", +"format": "int32", +"type": "integer" +}, +"datasetErrors": { +"description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"documentErrorCount": { +"description": "The total number of document errors.", +"format": "int32", +"type": "integer" +}, +"documentErrors": { +"description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1TrainProcessorVersionResponse": { +"description": "The response for TrainProcessorVersion.", +"id": "GoogleCloudDocumentaiV1TrainProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The resource name of the processor version produced by training.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1UndeployProcessorVersionResponse": { +"description": "Response message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Barcode": { +"description": "Encodes the detailed information of a barcode.", +"id": "GoogleCloudDocumentaiV1beta3Barcode", +"properties": { +"format": { +"description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", +"type": "string" +}, +"rawValue": { +"description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", +"type": "string" +}, +"valueFormat": { +"description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDatasetDocuments": { +"description": "Dataset documents that the batch operation will be applied to.", +"id": "GoogleCloudDocumentaiV1beta3BatchDatasetDocuments", +"properties": { +"filter": { +"description": "A filter matching the documents. Follows the same format and restriction as [google.cloud.documentai.master.ListDocumentsRequest.filter].", +"type": "string" +}, +"individualDocumentIds": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDatasetDocumentsIndividualDocumentIds", +"description": "Document identifiers." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDatasetDocumentsIndividualDocumentIds": { +"description": "List of individual DocumentIds.", +"id": "GoogleCloudDocumentaiV1beta3BatchDatasetDocumentsIndividualDocumentIds", +"properties": { +"documentIds": { +"description": "Required. List of Document IDs indicating where the actual documents are stored.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentId" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata": { +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"errorDocumentCount": { +"description": "Total number of documents that failed to be deleted in storage.", +"format": "int32", +"type": "integer" +}, +"individualBatchDeleteStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of documents deleting from dataset.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { +"description": "The status of each individual document in the batch delete process.", +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", +"properties": { +"documentId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentId", +"description": "The document id of the document." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of deleting the document in storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsRequest": { +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsRequest", +"properties": { +"datasetDocuments": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDatasetDocuments", +"description": "Required. Dataset documents input. If given `filter`, all documents satisfying the filter will be deleted. If given documentIds, a maximum of 50 documents can be deleted in a batch. The request will be rejected if more than 50 document_ids are provided." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse": { +"description": "Response of the delete documents operation.", +"id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig": { +"description": "The common config to specify a set of documents used as input.", +"id": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", +"properties": { +"gcsDocuments": { +"$ref": "GoogleCloudDocumentaiV1beta3GcsDocuments", +"description": "The set of documents individually specified on Cloud Storage." +}, +"gcsPrefix": { +"$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", +"description": "The set of documents that match the specified Cloud Storage `gcs_prefix`." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessMetadata": { +"description": "The long-running operation metadata for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"individualProcessStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus" +}, +"type": "array" +}, +"state": { +"description": "The state of the current batch processing.", +"enum": [ +"STATE_UNSPECIFIED", +"WAITING", +"RUNNING", +"SUCCEEDED", +"CANCELLING", +"CANCELLED", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Request operation is waiting for scheduling.", +"Request is being processed.", +"The batch processing completed successfully.", +"The batch processing was being cancelled.", +"The batch processing was cancelled.", +"The batch processing has failed." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the error message if the operation is failed.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus": { +"description": "The status of a each individual document in the batch process.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus", +"properties": { +"humanReviewOperation": { +"deprecated": true, +"description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field will be empty. It has the same response type and metadata as the long-running operation returned by the ReviewDocument method.", +"type": "string" +}, +"humanReviewStatus": { +"$ref": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", +"description": "The status of human review on the processed document." +}, +"inputGcsSource": { +"description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", +"type": "string" +}, +"outputGcsDestination": { +"description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status processing the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessRequest": { +"description": "Request message for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessRequest", +"properties": { +"documentOutputConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentOutputConfig", +"description": "The output configuration for the BatchProcessDocuments method." +}, +"inputConfigs": { +"deprecated": true, +"description": "The input config for each single document in the batch process.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig" +}, +"type": "array" +}, +"inputDocuments": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", +"description": "The input documents for the BatchProcessDocuments method." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"outputConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig", +"deprecated": true, +"description": "The overall output config for batch process." +}, +"processOptions": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessOptions", +"description": "Inference-time options for the process API" +}, +"skipHumanReview": { +"description": "Whether human review should be skipped for this request. Default to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig": { +"deprecated": true, +"description": "The message for input config in batch process.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig", +"properties": { +"gcsSource": { +"description": "The Cloud Storage location as the source of the document.", +"type": "string" +}, +"mimeType": { +"description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) of the input. If the input is a raw document, refer to [supported file types](https://cloud.google.com/document-ai/docs/file-types) for the list of media types. If the input is a Document, the type should be `application/json`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig": { +"deprecated": true, +"description": "The output configuration in the BatchProcessDocuments method.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig", +"properties": { +"gcsDestination": { +"description": "The output Cloud Storage directory to put the processed documents.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BatchProcessResponse": { +"description": "Response message for BatchProcessDocuments.", +"id": "GoogleCloudDocumentaiV1beta3BatchProcessResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "GoogleCloudDocumentaiV1beta3BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3CommonOperationMetadata": { +"description": "The common metadata for long running operations.", +"id": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"properties": { +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "A related resource to this operation.", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Dataset": { +"description": "A singleton resource under a Processor which configures a collection of documents.", +"id": "GoogleCloudDocumentaiV1beta3Dataset", +"properties": { +"documentWarehouseConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", +"deprecated": true, +"description": "Optional. Deprecated. Warehouse-based dataset configuration is not supported." +}, +"gcsManagedConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", +"description": "Optional. User-managed Cloud Storage dataset configuration. Use this configuration if the dataset documents are stored under a user-managed Cloud Storage location." +}, +"name": { +"description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"spannerIndexingConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", +"description": "Optional. A lightweight indexing source with low latency and high reliability, but lacking advanced features like CMEK and content-based search." +}, +"state": { +"description": "Required. State of the dataset. Ignored when updating dataset.", +"enum": [ +"STATE_UNSPECIFIED", +"UNINITIALIZED", +"INITIALIZING", +"INITIALIZED" +], +"enumDescriptions": [ +"Default unspecified enum, should not be used.", +"Dataset has not been initialized.", +"Dataset is being initialized.", +"Dataset has been initialized." +], +"type": "string" +}, +"unmanagedDatasetConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", +"description": "Optional. Unmanaged dataset configuration. Use this configuration if the dataset documents are managed by the document service internally (not user-managed)." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig": { +"description": "Configuration specific to the Document AI Warehouse-based implementation.", +"id": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", +"properties": { +"collection": { +"description": "Output only. The collection in Document AI Warehouse associated with the dataset.", +"readOnly": true, +"type": "string" +}, +"schema": { +"description": "Output only. The schema in Document AI Warehouse associated with the dataset.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig": { +"description": "Configuration specific to the Cloud Storage-based implementation.", +"id": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", +"properties": { +"gcsPrefix": { +"$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", +"description": "Required. The Cloud Storage URI (a directory) where the documents belonging to the dataset must be stored." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetSchema": { +"description": "Dataset Schema.", +"id": "GoogleCloudDocumentaiV1beta3DatasetSchema", +"properties": { +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", +"description": "Optional. Schema of the dataset." +}, +"name": { +"description": "Dataset schema resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset/datasetSchema`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig": { +"description": "Configuration specific to spanner-based indexing.", +"id": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig": { +"description": "Configuration specific to an unmanaged dataset.", +"id": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata": { +"description": "The long-running operation metadata for the DeleteProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeleteProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeployProcessorVersionRequest": { +"description": "Request message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse": { +"description": "Response message for the DeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DisableProcessorMetadata": { +"description": "The long-running operation metadata for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DisableProcessorRequest": { +"description": "Request message for the DisableProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3DisableProcessorRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DisableProcessorResponse": { +"description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1beta3DisableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Document": { +"description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", +"id": "GoogleCloudDocumentaiV1beta3Document", +"properties": { +"chunkedDocument": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocument", +"description": "Document chunked based on chunking config." +}, +"content": { +"description": "Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.", +"format": "byte", +"type": "string" +}, +"documentLayout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayout", +"description": "Parsed layout of the document." +}, +"entities": { +"description": "A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentEntity" +}, +"type": "array" +}, +"entityRelations": { +"description": "Placeholder. Relationship among Document.entities.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentEntityRelation" +}, +"type": "array" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "Any error that occurred while processing this document." +}, +"mimeType": { +"description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", +"type": "string" +}, +"pages": { +"description": "Visual page layout for the Document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPage" +}, +"type": "array" +}, +"revisions": { +"description": "Placeholder. Revision history of this document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentRevision" +}, +"type": "array" +}, +"shardInfo": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentShardInfo", +"description": "Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified." +}, +"text": { +"description": "Optional. UTF-8 encoded text in reading order from the document.", +"type": "string" +}, +"textChanges": { +"description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentTextChange" +}, +"type": "array" +}, +"textStyles": { +"deprecated": true, +"description": "Styles for the Document.text.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentStyle" +}, +"type": "array" +}, +"uri": { +"description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentChunkedDocument": { +"description": "Represents the chunks that the document is divided into.", +"id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocument", +"properties": { +"chunks": { +"description": "List of chunks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunk" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunk": { +"description": "Represents a chunk.", +"id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunk", +"properties": { +"chunkId": { +"description": "ID of the chunk.", +"type": "string" +}, +"content": { +"description": "Text content of the chunk.", +"type": "string" +}, +"pageFooters": { +"description": "Page footers associated with the chunk.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageFooter" +}, +"type": "array" +}, +"pageHeaders": { +"description": "Page headers associated with the chunk.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageHeader" +}, +"type": "array" +}, +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", +"description": "Page span of the chunk." +}, +"sourceBlockIds": { +"description": "Unused.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageFooter": { +"description": "Represents the page footer associated with the chunk.", +"id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageFooter", +"properties": { +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", +"description": "Page span of the footer." +}, +"text": { +"description": "Footer in text format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageHeader": { +"description": "Represents the page header associated with the chunk.", +"id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageHeader", +"properties": { +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", +"description": "Page span of the header." +}, +"text": { +"description": "Header in text format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan": { +"description": "Represents where the chunk starts and ends in the document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", +"properties": { +"pageEnd": { +"description": "Page where chunk ends in the document.", +"format": "int32", +"type": "integer" +}, +"pageStart": { +"description": "Page where chunk starts in the document.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayout": { +"description": "Represents the parsed layout of a document as a collection of blocks that the document is divided into.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayout", +"properties": { +"blocks": { +"description": "List of blocks in the document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock": { +"description": "Represents a block. A block could be one of the various types (text, table, list) supported.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock", +"properties": { +"blockId": { +"description": "ID of the block.", +"type": "string" +}, +"listBlock": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock", +"description": "Block consisting of list content/structure." +}, +"pageSpan": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan", +"description": "Page span of the block." +}, +"tableBlock": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock", +"description": "Block consisting of table content/structure." +}, +"textBlock": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock", +"description": "Block consisting of text content." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock": { +"description": "Represents a list type block.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock", +"properties": { +"listEntries": { +"description": "List entries that constitute a list block.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry" +}, +"type": "array" +}, +"type": { +"description": "Type of the list_entries (if exist). Available options are `ordered` and `unordered`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry": { +"description": "Represents an entry in the list.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry", +"properties": { +"blocks": { +"description": "A list entry is a list of blocks. Repeated blocks support further hierarchies and nested blocks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan": { +"description": "Represents where the block starts and ends in the document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan", +"properties": { +"pageEnd": { +"description": "Page where block ends in the document.", +"format": "int32", +"type": "integer" +}, +"pageStart": { +"description": "Page where block starts in the document.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock": { +"description": "Represents a table type block.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock", +"properties": { +"bodyRows": { +"description": "Body rows containing main table content.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow" +}, +"type": "array" +}, +"caption": { +"description": "Table caption/title.", +"type": "string" +}, +"headerRows": { +"description": "Header rows at the top of the table.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell": { +"description": "Represents a cell in a table row.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell", +"properties": { +"blocks": { +"description": "A table cell is a list of blocks. Repeated blocks support further hierarchies and nested blocks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +}, +"colSpan": { +"description": "How many columns this cell spans.", +"format": "int32", +"type": "integer" +}, +"rowSpan": { +"description": "How many rows this cell spans.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow": { +"description": "Represents a row in a table.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow", +"properties": { +"cells": { +"description": "A table row is a list of table cells.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock": { +"description": "Represents a text type block.", +"id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock", +"properties": { +"blocks": { +"description": "A text block could further have child blocks. Repeated blocks support further hierarchies and nested blocks.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" +}, +"type": "array" +}, +"text": { +"description": "Text content stored in the block.", +"type": "string" +}, +"type": { +"description": "Type of the text in the block. Available options are: `paragraph`, `subtitle`, `heading-1`, `heading-2`, `heading-3`, `heading-4`, `heading-5`, `header`, `footer`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentEntity": { +"description": "An entity that could be a phrase in the text or a property that belongs to the document. It is a known entity type, such as a person, an organization, or location.", +"id": "GoogleCloudDocumentaiV1beta3DocumentEntity", +"properties": { +"confidence": { +"description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"id": { +"description": "Optional. Canonical id. This will be a unique value in the entity list for this document.", +"type": "string" +}, +"mentionId": { +"description": "Optional. Deprecated. Use `id` field instead.", +"type": "string" +}, +"mentionText": { +"description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", +"type": "string" +}, +"normalizedValue": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentEntityNormalizedValue", +"description": "Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types." +}, +"pageAnchor": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageAnchor", +"description": "Optional. Represents the provenance of this entity wrt. the location on the page where it was found." +}, +"properties": { +"description": "Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentEntity" +}, +"type": "array" +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"description": "Optional. The history of this annotation." +}, +"redacted": { +"description": "Optional. Whether the entity will be redacted for de-identification purposes.", +"type": "boolean" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentTextAnchor", +"description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." +}, +"type": { +"description": "Required. Entity type from a schema e.g. `Address`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentEntityNormalizedValue": { +"description": "Parsed and normalized entity value.", +"id": "GoogleCloudDocumentaiV1beta3DocumentEntityNormalizedValue", +"properties": { +"addressValue": { +"$ref": "GoogleTypePostalAddress", +"description": "Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto" +}, +"booleanValue": { +"description": "Boolean value. Can be used for entities with binary values, or for checkboxes.", +"type": "boolean" +}, +"dateValue": { +"$ref": "GoogleTypeDate", +"description": "Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto" +}, +"datetimeValue": { +"$ref": "GoogleTypeDateTime", +"description": "DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto" +}, +"floatValue": { +"description": "Float value.", +"format": "float", +"type": "number" +}, +"integerValue": { +"description": "Integer value.", +"format": "int32", +"type": "integer" +}, +"moneyValue": { +"$ref": "GoogleTypeMoney", +"description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" +}, +"text": { +"description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentEntityRelation": { +"description": "Relationship between Entities.", +"id": "GoogleCloudDocumentaiV1beta3DocumentEntityRelation", +"properties": { +"objectId": { +"description": "Object entity id.", +"type": "string" +}, +"relation": { +"description": "Relationship description.", +"type": "string" +}, +"subjectId": { +"description": "Subject entity id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentId": { +"description": "Document Identifier.", +"id": "GoogleCloudDocumentaiV1beta3DocumentId", +"properties": { +"gcsManagedDocId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", +"description": "A document id within user-managed Cloud Storage." +}, +"revisionRef": { +"$ref": "GoogleCloudDocumentaiV1beta3RevisionRef", +"description": "Points to a specific revision of the document if set." +}, +"unmanagedDocId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", +"description": "A document id within unmanaged dataset." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", +"id": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", +"properties": { +"cwDocId": { +"deprecated": true, +"description": "Id of the document (indexed) managed by Content Warehouse.", +"type": "string" +}, +"gcsUri": { +"description": "Required. The Cloud Storage URI where the actual document is stored.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId": { +"description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", +"id": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", +"properties": { +"docId": { +"description": "Required. The id of the document.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentMetadata": { +"description": "Metadata about a document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentMetadata", +"properties": { +"datasetType": { +"description": "Type of the dataset split to which the document belongs.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +}, +"displayName": { +"description": "The display name of the document.", +"type": "string" +}, +"documentId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentId", +"description": "Document identifier." +}, +"labelingState": { +"description": "Labeling state of the document.", +"enum": [ +"DOCUMENT_LABELING_STATE_UNSPECIFIED", +"DOCUMENT_LABELED", +"DOCUMENT_UNLABELED", +"DOCUMENT_AUTO_LABELED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Document has been labeled.", +"Document has not been labeled.", +"Document has been auto-labeled." +], +"type": "string" +}, +"pageCount": { +"description": "Number of pages in the document.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentOutputConfig": { +"description": "Config that controls the output of documents. All documents will be written as a JSON file.", +"id": "GoogleCloudDocumentaiV1beta3DocumentOutputConfig", +"properties": { +"gcsOutputConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig", +"description": "Output config to write the results to Cloud Storage." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig": { +"description": "The configuration used when outputting documents.", +"id": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig", +"properties": { +"fieldMask": { +"description": "Specifies which fields to include in the output documents. Only supports top level document and pages field so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", +"format": "google-fieldmask", +"type": "string" +}, +"gcsUri": { +"description": "The Cloud Storage uri (a directory) of the output.", +"type": "string" +}, +"shardingConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfigShardingConfig", +"description": "Specifies the sharding config for the output document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfigShardingConfig": { +"description": "The sharding config for the output document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfigShardingConfig", +"properties": { +"pagesOverlap": { +"description": "The number of overlapping pages between consecutive shards.", +"format": "int32", +"type": "integer" +}, +"pagesPerShard": { +"description": "The number of pages per shard.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPage": { +"description": "A page in a Document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPage", +"properties": { +"blocks": { +"description": "A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageBlock" +}, +"type": "array" +}, +"detectedBarcodes": { +"description": "A list of detected barcodes.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedBarcode" +}, +"type": "array" +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"dimension": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDimension", +"description": "Physical dimension of the page." +}, +"formFields": { +"description": "A list of visually detected form fields on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageFormField" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImage", +"description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." +}, +"imageQualityScores": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores", +"description": "Image quality scores." +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for the page." +}, +"lines": { +"description": "A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLine" +}, +"type": "array" +}, +"pageNumber": { +"description": "1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.", +"format": "int32", +"type": "integer" +}, +"paragraphs": { +"description": "A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageParagraph" +}, +"type": "array" +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"deprecated": true, +"description": "The history of this page." +}, +"symbols": { +"description": "A list of visually detected symbols on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageSymbol" +}, +"type": "array" +}, +"tables": { +"description": "A list of visually detected tables on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTable" +}, +"type": "array" +}, +"tokens": { +"description": "A list of visually detected tokens on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageToken" +}, +"type": "array" +}, +"transforms": { +"description": "Transformation matrices that were applied to the original document image to produce Page.image.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageMatrix" +}, +"type": "array" +}, +"visualElements": { +"description": "A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageVisualElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageAnchor": { +"description": "Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageAnchor", +"properties": { +"pageRefs": { +"description": "One or more references to visual page elements", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageAnchorPageRef" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageAnchorPageRef": { +"description": "Represents a weak reference to a page element within a document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageAnchorPageRef", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudDocumentaiV1beta3BoundingPoly", +"description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." +}, +"confidence": { +"description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"layoutId": { +"deprecated": true, +"description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", +"type": "string" +}, +"layoutType": { +"description": "Optional. The type of the layout element that is being referenced if any.", +"enum": [ +"LAYOUT_TYPE_UNSPECIFIED", +"BLOCK", +"PARAGRAPH", +"LINE", +"TOKEN", +"VISUAL_ELEMENT", +"TABLE", +"FORM_FIELD" +], +"enumDescriptions": [ +"Layout Unspecified.", +"References a Page.blocks element.", +"References a Page.paragraphs element.", +"References a Page.lines element.", +"References a Page.tokens element.", +"References a Page.visual_elements element.", +"Refrrences a Page.tables element.", +"References a Page.form_fields element." +], +"type": "string" +}, +"page": { +"description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageBlock": { +"description": "A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageBlock", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for Block." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageDetectedBarcode": { +"description": "A detected barcode.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedBarcode", +"properties": { +"barcode": { +"$ref": "GoogleCloudDocumentaiV1beta3Barcode", +"description": "Detailed barcode information of the DetectedBarcode." +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for DetectedBarcode." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageDimension": { +"description": "Dimension for the page.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageDimension", +"properties": { +"height": { +"description": "Page height.", +"format": "float", +"type": "number" +}, +"unit": { +"description": "Dimension unit.", +"type": "string" +}, +"width": { +"description": "Page width.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageFormField": { +"description": "A form field detected on the page.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageFormField", +"properties": { +"correctedKeyText": { +"description": "Created for Labeling UI to export key text. If corrections were made to the text identified by the `field_name.text_anchor`, this field will contain the correction.", +"type": "string" +}, +"correctedValueText": { +"description": "Created for Labeling UI to export value text. If corrections were made to the text identified by the `field_value.text_anchor`, this field will contain the correction.", +"type": "string" +}, +"fieldName": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc." +}, +"fieldValue": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for the FormField value." +}, +"nameDetectedLanguages": { +"description": "A list of detected languages for name together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"description": "The history of this annotation." +}, +"valueDetectedLanguages": { +"description": "A list of detected languages for value together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"valueType": { +"description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageImage": { +"description": "Rendered image contents for this page.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageImage", +"properties": { +"content": { +"description": "Raw byte content of the image.", +"format": "byte", +"type": "string" +}, +"height": { +"description": "Height of the image in pixels.", +"format": "int32", +"type": "integer" +}, +"mimeType": { +"description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", +"type": "string" +}, +"width": { +"description": "Width of the image in pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores": { +"description": "Image quality scores for the page image.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores", +"properties": { +"detectedDefects": { +"description": "A list of detected defects.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect" +}, +"type": "array" +}, +"qualityScore": { +"description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect": { +"description": "Image Quality Defects", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect", +"properties": { +"confidence": { +"description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", +"format": "float", +"type": "number" +}, +"type": { +"description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageLayout": { +"description": "Visual element describing a layout unit on a page.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudDocumentaiV1beta3BoundingPoly", +"description": "The bounding polygon for the Layout." +}, +"confidence": { +"description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", +"format": "float", +"type": "number" +}, +"orientation": { +"description": "Detected orientation for the Layout.", +"enum": [ +"ORIENTATION_UNSPECIFIED", +"PAGE_UP", +"PAGE_RIGHT", +"PAGE_DOWN", +"PAGE_LEFT" +], +"enumDescriptions": [ +"Unspecified orientation.", +"Orientation is aligned with page up.", +"Orientation is aligned with page right. Turn the head 90 degrees clockwise from upright to read.", +"Orientation is aligned with page down. Turn the head 180 degrees from upright to read.", +"Orientation is aligned with page left. Turn the head 90 degrees counterclockwise from upright to read." +], +"type": "string" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentTextAnchor", +"description": "Text anchor indexing into the Document.text." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageLine": { +"description": "A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageLine", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for Line." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageMatrix": { +"description": "Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageMatrix", +"properties": { +"cols": { +"description": "Number of columns in the matrix.", +"format": "int32", +"type": "integer" +}, +"data": { +"description": "The matrix data.", +"format": "byte", +"type": "string" +}, +"rows": { +"description": "Number of rows in the matrix.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageParagraph": { +"description": "A collection of lines that a human would perceive as a paragraph.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageParagraph", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for Paragraph." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageSymbol": { +"description": "A detected symbol.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageSymbol", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for Symbol." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageTable": { +"description": "A table representation similar to HTML table structure.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageTable", +"properties": { +"bodyRows": { +"description": "Body rows of the table.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow" +}, +"type": "array" +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"headerRows": { +"description": "Header rows of the table.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for Table." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"deprecated": true, +"description": "The history of this table." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell": { +"description": "A cell representation inside the table.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell", +"properties": { +"colSpan": { +"description": "How many columns this cell spans.", +"format": "int32", +"type": "integer" +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for TableCell." +}, +"rowSpan": { +"description": "How many rows this cell spans.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow": { +"description": "A row of table cells.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow", +"properties": { +"cells": { +"description": "Cells that make up this row.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageToken": { +"description": "A detected token.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageToken", +"properties": { +"detectedBreak": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTokenDetectedBreak", +"description": "Detected break at the end of a Token." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for Token." +}, +"provenance": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"deprecated": true, +"description": "The history of this annotation." +}, +"styleInfo": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTokenStyleInfo", +"description": "Text style attributes." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageTokenDetectedBreak": { +"description": "Detected break at the end of a Token.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageTokenDetectedBreak", +"properties": { +"type": { +"description": "Detected break type.", +"enum": [ +"TYPE_UNSPECIFIED", +"SPACE", +"WIDE_SPACE", +"HYPHEN" +], +"enumDescriptions": [ +"Unspecified break type.", +"A single whitespace.", +"A wider whitespace.", +"A hyphen that indicates that a token has been split across lines." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageTokenStyleInfo": { +"description": "Font and other text style attributes.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageTokenStyleInfo", +"properties": { +"backgroundColor": { +"$ref": "GoogleTypeColor", +"description": "Color of the background." +}, +"bold": { +"description": "Whether the text is bold (equivalent to font_weight is at least `700`).", +"type": "boolean" +}, +"fontSize": { +"description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", +"format": "int32", +"type": "integer" +}, +"fontType": { +"description": "Name or style of the font.", +"type": "string" +}, +"fontWeight": { +"description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", +"format": "int32", +"type": "integer" +}, +"handwritten": { +"description": "Whether the text is handwritten.", +"type": "boolean" +}, +"italic": { +"description": "Whether the text is italic.", +"type": "boolean" +}, +"letterSpacing": { +"description": "Letter spacing in points.", +"format": "double", +"type": "number" +}, +"pixelFontSize": { +"description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", +"format": "double", +"type": "number" +}, +"smallcaps": { +"description": "Whether the text is in small caps. This feature is not supported yet.", +"type": "boolean" +}, +"strikeout": { +"description": "Whether the text is strikethrough. This feature is not supported yet.", +"type": "boolean" +}, +"subscript": { +"description": "Whether the text is a subscript. This feature is not supported yet.", +"type": "boolean" +}, +"superscript": { +"description": "Whether the text is a superscript. This feature is not supported yet.", +"type": "boolean" +}, +"textColor": { +"$ref": "GoogleTypeColor", +"description": "Color of the text." +}, +"underlined": { +"description": "Whether the text is underlined.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentPageVisualElement": { +"description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", +"id": "GoogleCloudDocumentaiV1beta3DocumentPageVisualElement", +"properties": { +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage" +}, +"type": "array" +}, +"layout": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", +"description": "Layout for VisualElement." +}, +"type": { +"description": "Type of the VisualElement.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentProvenance": { +"description": "Structure to identify provenance relationships between annotations in different revisions.", +"id": "GoogleCloudDocumentaiV1beta3DocumentProvenance", +"properties": { +"id": { +"deprecated": true, +"description": "The Id of this operation. Needs to be unique within the scope of the revision.", +"format": "int32", +"type": "integer" +}, +"parents": { +"description": "References to the original elements that are replaced.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenanceParent" +}, +"type": "array" +}, +"revision": { +"deprecated": true, +"description": "The index of the revision that produced this element.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "The type of provenance operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"ADD", +"REMOVE", +"UPDATE", +"REPLACE", +"EVAL_REQUESTED", +"EVAL_APPROVED", +"EVAL_SKIPPED" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", +"Add an element.", +"Remove an element identified by `parent`.", +"Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", +"Currently unused. Replace an element identified by `parent`.", +"Deprecated. Request human review for the element identified by `parent`.", +"Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", +"Deprecated. Element is skipped in the validation process." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentProvenanceParent": { +"description": "The parent element the current element is based on. Used for referencing/aligning, removal and replacement operations.", +"id": "GoogleCloudDocumentaiV1beta3DocumentProvenanceParent", +"properties": { +"id": { +"deprecated": true, +"description": "The id of the parent provenance.", +"format": "int32", +"type": "integer" +}, +"index": { +"description": "The index of the parent item in the corresponding item list (eg. list of entities, properties within entities, etc.) in the parent revision.", +"format": "int32", +"type": "integer" +}, +"revision": { +"description": "The index of the index into current revision's parent_ids list.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentRevision": { +"description": "Contains past or forward revisions of this document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentRevision", +"properties": { +"agent": { +"description": "If the change was made by a person specify the name or id of that person.", +"type": "string" +}, +"createTime": { +"description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", +"format": "google-datetime", +"type": "string" +}, +"humanReview": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentRevisionHumanReview", +"description": "Human Review information of this revision." +}, +"id": { +"description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", +"type": "string" +}, +"parent": { +"deprecated": true, +"description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"parentIds": { +"description": "The revisions that this revision is based on. Must include all the ids that have anything to do with this revision - eg. there are `provenance.parent.revision` fields that index into this field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"processor": { +"description": "If the annotation was made by processor identify the processor by its resource name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentRevisionHumanReview": { +"description": "Human Review information of the document.", +"id": "GoogleCloudDocumentaiV1beta3DocumentRevisionHumanReview", +"properties": { +"state": { +"description": "Human review state. e.g. `requested`, `succeeded`, `rejected`.", +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentSchema": { +"description": "The schema defines the output of the processed document by a processor.", +"id": "GoogleCloudDocumentaiV1beta3DocumentSchema", +"properties": { +"description": { +"description": "Description of the schema.", +"type": "string" +}, +"displayName": { +"description": "Display name to show to users.", +"type": "string" +}, +"entityTypes": { +"description": "Entity types of the schema.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityType" +}, +"type": "array" +}, +"metadata": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaMetadata", +"description": "Metadata of the schema." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentSchemaEntityType": { +"description": "EntityType is the wrapper of a label of the corresponding model with detailed attributes and limitations for entity-based processors. Multiple types can also compose a dependency tree to represent nested types.", +"id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityType", +"properties": { +"baseTypes": { +"description": "The entity type that this type is derived from. For now, one and only one should be set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "The description of the entity type. Could be used to provide more information about the entity type for model calls.", +"type": "string" +}, +"displayName": { +"description": "User defined name for the type.", +"type": "string" +}, +"entityTypeMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3EntityTypeMetadata", +"description": "Metadata for the entity type." +}, +"enumValues": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeEnumValues", +"description": "If specified, lists all the possible values for this entity. This should not be more than a handful of values. If the number of values is >10 or could change frequently use the `EntityType.value_ontology` field and specify a list of all possible values in a value ontology file." +}, +"name": { +"description": "Name of the type. It must be unique within the schema file and cannot be a \"Common Type\". The following naming conventions are used: - Use `snake_casing`. - Name matching is case-sensitive. - Maximum 64 characters. - Must start with a letter. - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward compatibility internal infrastructure and tooling can handle any ascii character.) - The `/` is sometimes used to denote a property of a type. For example `line_item/amount`. This convention is deprecated, but will still be honored for backward compatibility.", +"type": "string" +}, +"properties": { +"description": "Description the nested structure, or composition of an entity.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeEnumValues": { +"description": "Defines the a list of enum values.", +"id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeEnumValues", +"properties": { +"values": { +"description": "The individual values that this enum values type can include.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty": { +"description": "Defines properties that can be part of the entity type.", +"id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty", +"properties": { +"description": { +"description": "The description of the property. Could be used to provide more information about the property for model calls.", +"type": "string" +}, +"displayName": { +"description": "User defined name for the property.", +"type": "string" +}, +"name": { +"description": "The name of the property. Follows the same guidelines as the EntityType name.", +"type": "string" +}, +"occurrenceType": { +"description": "Occurrence type limits the number of instances an entity type appears in the document.", +"enum": [ +"OCCURRENCE_TYPE_UNSPECIFIED", +"OPTIONAL_ONCE", +"OPTIONAL_MULTIPLE", +"REQUIRED_ONCE", +"REQUIRED_MULTIPLE" +], +"enumDescriptions": [ +"Unspecified occurrence type.", +"There will be zero or one instance of this entity type. The same entity instance may be mentioned multiple times.", +"The entity type will appear zero or multiple times.", +"The entity type will only appear exactly once. The same entity instance may be mentioned multiple times.", +"The entity type will appear once or more times." +], +"type": "string" +}, +"propertyMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3PropertyMetadata", +"description": "Any additional metadata about the property can be added here." +}, +"valueType": { +"description": "A reference to the value type of the property. This type is subject to the same conventions as the `Entity.base_types` field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentSchemaMetadata": { +"description": "Metadata for global schema behavior.", +"id": "GoogleCloudDocumentaiV1beta3DocumentSchemaMetadata", +"properties": { +"documentAllowMultipleLabels": { +"description": "If true, on a given page, there can be multiple `document` annotations covering it.", +"type": "boolean" +}, +"documentSplitter": { +"description": "If true, a `document` entity type can be applied to subdocument (splitting). Otherwise, it can only be applied to the entire document (classification).", +"type": "boolean" +}, +"prefixedNamingOnProperties": { +"description": "If set, all the nested entities must be prefixed with the parents.", +"type": "boolean" +}, +"skipNamingValidation": { +"description": "If set, we will skip the naming format validation in the schema. So the string values in `DocumentSchema.EntityType.name` and `DocumentSchema.EntityType.Property.name` will not be checked.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentShardInfo": { +"description": "For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is.", +"id": "GoogleCloudDocumentaiV1beta3DocumentShardInfo", +"properties": { +"shardCount": { +"description": "Total number of shards.", +"format": "int64", +"type": "string" +}, +"shardIndex": { +"description": "The 0-based index of this shard.", +"format": "int64", +"type": "string" +}, +"textOffset": { +"description": "The index of the first character in Document.text in the overall document global text.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentStyle": { +"description": "Annotation for common text style attributes. This adheres to CSS conventions as much as possible.", +"id": "GoogleCloudDocumentaiV1beta3DocumentStyle", +"properties": { +"backgroundColor": { +"$ref": "GoogleTypeColor", +"description": "Text background color." +}, +"color": { +"$ref": "GoogleTypeColor", +"description": "Text color." +}, +"fontFamily": { +"description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", +"type": "string" +}, +"fontSize": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentStyleFontSize", +"description": "Font size." +}, +"fontWeight": { +"description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", +"type": "string" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentTextAnchor", +"description": "Text anchor indexing into the Document.text." +}, +"textDecoration": { +"description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", +"type": "string" +}, +"textStyle": { +"description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentStyleFontSize": { +"description": "Font size with unit.", +"id": "GoogleCloudDocumentaiV1beta3DocumentStyleFontSize", +"properties": { +"size": { +"description": "Font size for the text.", +"format": "float", +"type": "number" +}, +"unit": { +"description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentTextAnchor": { +"description": "Text reference indexing into the Document.text.", +"id": "GoogleCloudDocumentaiV1beta3DocumentTextAnchor", +"properties": { +"content": { +"description": "Contains the content of the text span so that users do not have to look it up in the text_segments. It is always populated for formFields.", +"type": "string" +}, +"textSegments": { +"description": "The text segments from the Document.text.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment": { +"description": "A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset", +"id": "GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment", +"properties": { +"endIndex": { +"description": "TextSegment half open end UTF-8 char index in the Document.text.", +"format": "int64", +"type": "string" +}, +"startIndex": { +"description": "TextSegment start UTF-8 char index in the Document.text.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3DocumentTextChange": { +"description": "This message is used for text changes aka. OCR corrections.", +"id": "GoogleCloudDocumentaiV1beta3DocumentTextChange", +"properties": { +"changedText": { +"description": "The text that replaces the text identified in the `text_anchor`.", +"type": "string" +}, +"provenance": { +"deprecated": true, +"description": "The history of this annotation.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance" +}, +"type": "array" +}, +"textAnchor": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentTextAnchor", +"description": "Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EnableProcessorMetadata": { +"description": "The long-running operation metadata for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EnableProcessorRequest": { +"description": "Request message for the EnableProcessor method.", +"id": "GoogleCloudDocumentaiV1beta3EnableProcessorRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EnableProcessorResponse": { +"description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", +"id": "GoogleCloudDocumentaiV1beta3EnableProcessorResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EntityTypeMetadata": { +"description": "Metadata about an entity type.", +"id": "GoogleCloudDocumentaiV1beta3EntityTypeMetadata", +"properties": { +"inactive": { +"description": "Whether the entity type should be considered inactive.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata": { +"description": "Metadata of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionRequest": { +"description": "Evaluates the given ProcessorVersion against the supplied documents.", +"id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionRequest", +"properties": { +"evaluationDocuments": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", +"description": "Optional. The documents used in the evaluation. If unspecified, use the processor's dataset as evaluation input." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { +"description": "Response of the EvaluateProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", +"properties": { +"evaluation": { +"description": "The resource name of the created evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Evaluation": { +"description": "An evaluation of a ProcessorVersion's performance.", +"id": "GoogleCloudDocumentaiV1beta3Evaluation", +"properties": { +"allEntitiesMetrics": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics", +"description": "Metrics for all the entities in aggregate." +}, +"createTime": { +"description": "The time that the evaluation was created.", +"format": "google-datetime", +"type": "string" +}, +"documentCounters": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationCounters", +"description": "Counters for the documents used in the evaluation." +}, +"entityMetrics": { +"additionalProperties": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics" +}, +"description": "Metrics across confidence levels, for different entities.", +"type": "object" +}, +"kmsKeyName": { +"description": "The KMS key name used for encryption.", +"type": "string" +}, +"kmsKeyVersionName": { +"description": "The KMS key version with which data is encrypted.", +"type": "string" +}, +"name": { +"description": "The resource name of the evaluation. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}/evaluations/{evaluation}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics": { +"description": "Evaluations metrics, at a specific confidence level.", +"id": "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics", +"properties": { +"confidenceLevel": { +"description": "The confidence level.", +"format": "float", +"type": "number" +}, +"metrics": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", +"description": "The metrics at the specific confidence level." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluationCounters": { +"description": "Evaluation counters for the documents that were used.", +"id": "GoogleCloudDocumentaiV1beta3EvaluationCounters", +"properties": { +"evaluatedDocumentsCount": { +"description": "How many documents were used in the evaluation.", +"format": "int32", +"type": "integer" +}, +"failedDocumentsCount": { +"description": "How many documents were not included in the evaluation as Document AI failed to process them.", +"format": "int32", +"type": "integer" +}, +"inputDocumentsCount": { +"description": "How many documents were sent for evaluation.", +"format": "int32", +"type": "integer" +}, +"invalidDocumentsCount": { +"description": "How many documents were not included in the evaluation as they didn't pass validation.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluationMetrics": { +"description": "Evaluation metrics, either in aggregate or about a specific entity.", +"id": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", +"properties": { +"f1Score": { +"description": "The calculated f1 score.", +"format": "float", +"type": "number" +}, +"falseNegativesCount": { +"description": "The amount of false negatives.", +"format": "int32", +"type": "integer" +}, +"falsePositivesCount": { +"description": "The amount of false positives.", +"format": "int32", +"type": "integer" +}, +"groundTruthDocumentCount": { +"description": "The amount of documents with a ground truth occurrence.", +"format": "int32", +"type": "integer" +}, +"groundTruthOccurrencesCount": { +"description": "The amount of occurrences in ground truth documents.", +"format": "int32", +"type": "integer" +}, +"precision": { +"description": "The calculated precision.", +"format": "float", +"type": "number" +}, +"predictedDocumentCount": { +"description": "The amount of documents with a predicted occurrence.", +"format": "int32", +"type": "integer" +}, +"predictedOccurrencesCount": { +"description": "The amount of occurrences in predicted documents.", +"format": "int32", +"type": "integer" +}, +"recall": { +"description": "The calculated recall.", +"format": "float", +"type": "number" +}, +"totalDocumentsCount": { +"description": "The amount of documents that had an occurrence of this label.", +"format": "int32", +"type": "integer" +}, +"truePositivesCount": { +"description": "The amount of true positives.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics": { +"description": "Metrics across multiple confidence levels.", +"id": "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics", +"properties": { +"auprc": { +"description": "The calculated area under the precision recall curve (AUPRC), computed by integrating over all confidence thresholds.", +"format": "float", +"type": "number" +}, +"auprcExact": { +"description": "The AUPRC for metrics with fuzzy matching disabled, i.e., exact matching only.", +"format": "float", +"type": "number" +}, +"confidenceLevelMetrics": { +"description": "Metrics across confidence levels with fuzzy matching enabled.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics" +}, +"type": "array" +}, +"confidenceLevelMetricsExact": { +"description": "Metrics across confidence levels with only exact matching.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics" +}, +"type": "array" +}, +"estimatedCalibrationError": { +"description": "The Estimated Calibration Error (ECE) of the confidence of the predicted entities.", +"format": "float", +"type": "number" +}, +"estimatedCalibrationErrorExact": { +"description": "The ECE for the predicted entities with fuzzy matching disabled, i.e., exact matching only.", +"format": "float", +"type": "number" +}, +"metricsType": { +"description": "The metrics type for the label.", +"enum": [ +"METRICS_TYPE_UNSPECIFIED", +"AGGREGATE" +], +"enumDescriptions": [ +"The metrics type is unspecified. By default, metrics without a particular specification are for leaf entity types (i.e., top-level entity types without child types, or child types which are not parent types themselves).", +"Indicates whether metrics for this particular label type represent an aggregate of metrics for other types instead of being based on actual TP/FP/FN values for the label type. Metrics for parent (i.e., non-leaf) entity types are an aggregate of metrics for their children." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3EvaluationReference": { +"description": "Gives a short summary of an evaluation, and links to the evaluation itself.", +"id": "GoogleCloudDocumentaiV1beta3EvaluationReference", +"properties": { +"aggregateMetrics": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", +"description": "An aggregate of the statistics for the evaluation with fuzzy matching on." +}, +"aggregateMetricsExact": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", +"description": "An aggregate of the statistics for the evaluation with fuzzy matching off." +}, +"evaluation": { +"description": "The resource name of the evaluation.", +"type": "string" +}, +"operation": { +"description": "The resource name of the Long Running Operation for the evaluation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse": { +"description": "Response message for the FetchProcessorTypes method.", +"id": "GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse", +"properties": { +"processorTypes": { +"description": "The list of processor types.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3FieldExtractionMetadata": { +"description": "Metadata for how this field value is extracted.", +"id": "GoogleCloudDocumentaiV1beta3FieldExtractionMetadata", +"properties": { +"summaryOptions": { +"$ref": "GoogleCloudDocumentaiV1beta3SummaryOptions", +"description": "Summary options config." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3GcsDocument": { +"description": "Specifies a document stored on Cloud Storage.", +"id": "GoogleCloudDocumentaiV1beta3GcsDocument", +"properties": { +"gcsUri": { +"description": "The Cloud Storage object uri.", +"type": "string" +}, +"mimeType": { +"description": "An IANA MIME type (RFC6838) of the content.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3GcsDocuments": { +"description": "Specifies a set of documents on Cloud Storage.", +"id": "GoogleCloudDocumentaiV1beta3GcsDocuments", +"properties": { +"documents": { +"description": "The list of documents.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3GcsDocument" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3GcsPrefix": { +"description": "Specifies all documents on Cloud Storage with a common prefix.", +"id": "GoogleCloudDocumentaiV1beta3GcsPrefix", +"properties": { +"gcsUriPrefix": { +"description": "The URI prefix.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3GetDocumentResponse": { +"id": "GoogleCloudDocumentaiV1beta3GetDocumentResponse", +"properties": { +"document": { +"$ref": "GoogleCloudDocumentaiV1beta3Document" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3HumanReviewStatus": { +"description": "The status of human review on a processed document.", +"id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", +"properties": { +"humanReviewOperation": { +"description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", +"type": "string" +}, +"state": { +"description": "The state of human review on the processing request.", +"enum": [ +"STATE_UNSPECIFIED", +"SKIPPED", +"VALIDATION_PASSED", +"IN_PROGRESS", +"ERROR" +], +"enumDescriptions": [ +"Human review state is unspecified. Most likely due to an internal error.", +"Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", +"Human review validation is triggered and passed, so no review is needed.", +"Human review validation is triggered and the document is under review.", +"Some error happened during triggering human review, see the state_message for details." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the human review state.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata": { +"description": "Metadata of the import document operation.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"importConfigValidationResults": { +"description": "Validation statuses of the batch documents import config.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult" +}, +"type": "array" +}, +"individualImportStatuses": { +"description": "The list of response details of each document.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus" +}, +"type": "array" +}, +"totalDocumentCount": { +"description": "Total number of the documents that are qualified for importing.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult": { +"description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI specified in the import config.", +"type": "string" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The validation status of import config." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus": { +"description": "The status of each individual document in the import process.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus", +"properties": { +"inputGcsSource": { +"description": "The source Cloud Storage URI of the document.", +"type": "string" +}, +"outputDocumentId": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentId", +"description": "The document id of imported document if it was successful, otherwise empty." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status of the importing of the document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsRequest": { +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequest", +"properties": { +"batchDocumentsImportConfigs": { +"description": "Required. The Cloud Storage uri containing raw documents that must be imported.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfig": { +"description": "Config for importing documents. Each batch can have its own dataset split type.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfig", +"properties": { +"autoSplitConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfigAutoSplitConfig", +"description": "If set, documents will be automatically split into training and test split category with the specified ratio." +}, +"batchInputConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", +"description": "The common config to specify a set of documents used as input." +}, +"datasetSplit": { +"description": "Target dataset split where the documents must be stored.", +"enum": [ +"DATASET_SPLIT_TYPE_UNSPECIFIED", +"DATASET_SPLIT_TRAIN", +"DATASET_SPLIT_TEST", +"DATASET_SPLIT_UNASSIGNED" +], +"enumDescriptions": [ +"Default value if the enum is not set.", +"Identifies the train documents.", +"Identifies the test documents.", +"Identifies the unassigned documents." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfigAutoSplitConfig": { +"description": "The config for auto-split.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfigAutoSplitConfig", +"properties": { +"trainingSplitRatio": { +"description": "Ratio of training dataset split.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportDocumentsResponse": { +"description": "Response of the import document operation.", +"id": "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata": { +"description": "The long-running operation metadata for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata for the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequest": { +"description": "The request message for the ImportProcessorVersion method. The Document AI [Service Agent](https://cloud.google.com/iam/docs/service-agents) of the destination project must have [Document AI Editor role](https://cloud.google.com/document-ai/docs/access-control/iam-roles) on the source project. The destination project is specified as part of the parent field. The source project is specified as part of the source or external_processor_version_source field.", +"id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequest", +"properties": { +"externalProcessorVersionSource": { +"$ref": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequestExternalProcessorVersionSource", +"description": "The source processor version to import from. It can be from a different environment and region than the destination processor." +}, +"processorVersionSource": { +"description": "The source processor version to import from. The source processor version and destination processor need to be in the same environment and region. Note that ProcessorVersions with `model_type` `MODEL_TYPE_LLM` are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequestExternalProcessorVersionSource": { +"description": "The external source processor version.", +"id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequestExternalProcessorVersionSource", +"properties": { +"processorVersion": { +"description": "Required. The processor version name. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"type": "string" +}, +"serviceEndpoint": { +"description": "Optional. The Document AI service endpoint. For example, 'https://us-documentai.googleapis.com'", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse": { +"description": "The response message for the ImportProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The destination processor version name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ListDocumentsRequest": { +"id": "GoogleCloudDocumentaiV1beta3ListDocumentsRequest", +"properties": { +"filter": { +"description": "Optional. Query to filter the documents based on https://google.aip.dev/160. ## Currently support query strings are: `SplitType=DATASET_SPLIT_TEST|DATASET_SPLIT_TRAIN|DATASET_SPLIT_UNASSIGNED` - `LabelingState=DOCUMENT_LABELED|DOCUMENT_UNLABELED|DOCUMENT_AUTO_LABELED` - `DisplayName=\\\"file_name.pdf\\\"` - `EntityType=abc/def` - `TagName=\\\"auto-labeling-running\\\"|\\\"sampled\\\"` Note: - Only `AND`, `=` and `!=` are supported. e.g. `DisplayName=file_name AND EntityType!=abc` IS supported. - Wildcard `*` is supported only in `DisplayName` filter - No duplicate filter keys are allowed, e.g. `EntityType=a AND EntityType=b` is NOT supported. - String match is case sensitive (for filter `DisplayName` & `EntityType`).", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of documents to return. The service may return fewer than this value. If unspecified, at most 20 documents will be returned. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDocuments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDocuments` must match the call that provided the page token.", +"type": "string" +}, +"returnTotalSize": { +"description": "Optional. Controls if the request requires a total size of matched documents. See ListDocumentsResponse.total_size. Enabling this flag may adversely impact performance. Defaults to false.", +"type": "boolean" +}, +"skip": { +"description": "Optional. Number of results to skip beginning from the `page_token` if provided. https://google.aip.dev/158#skipping-results. It must be a non-negative integer. Negative values will be rejected. Note that this is not the number of pages to skip. If this value causes the cursor to move past the end of results, ListDocumentsResponse.document_metadata and ListDocumentsResponse.next_page_token will be empty.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ListDocumentsResponse": { +"id": "GoogleCloudDocumentaiV1beta3ListDocumentsResponse", +"properties": { +"documentMetadata": { +"description": "Document metadata corresponding to the listed documents.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentMetadata" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as ListDocumentsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"totalSize": { +"description": "Total count of documents queried.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ListEvaluationsResponse": { +"description": "The response from `ListEvaluations`.", +"id": "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse", +"properties": { +"evaluations": { +"description": "The evaluations requested.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3Evaluation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse": { +"description": "Response message for the ListProcessorTypes method.", +"id": "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse", +"properties": { +"nextPageToken": { +"description": "Points to the next page, otherwise empty.", +"type": "string" +}, +"processorTypes": { +"description": "The processor types.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse": { +"description": "Response message for the ListProcessorVersions method.", +"id": "GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse", +"properties": { +"nextPageToken": { +"description": "Points to the next processor, otherwise empty.", +"type": "string" +}, +"processorVersions": { +"description": "The list of processors.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ListProcessorsResponse": { +"description": "Response message for the ListProcessors method.", +"id": "GoogleCloudDocumentaiV1beta3ListProcessorsResponse", +"properties": { +"nextPageToken": { +"description": "Points to the next processor, otherwise empty.", +"type": "string" +}, +"processors": { +"description": "The list of processors.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3Processor" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "GoogleCloudDocumentaiV1beta3NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate (starts from the top of the image).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3OcrConfig": { +"description": "Config for Document OCR.", +"id": "GoogleCloudDocumentaiV1beta3OcrConfig", +"properties": { +"advancedOcrOptions": { +"description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"computeStyleInfo": { +"deprecated": true, +"description": "Turn on font identification model and return font style information. Deprecated, use PremiumFeatures.compute_style_info instead.", +"type": "boolean" +}, +"disableCharacterBoxesDetection": { +"description": "Turn off character box detector in OCR engine. Character box detection is enabled by default in OCR 2.0 (and later) processors.", +"type": "boolean" +}, +"enableImageQualityScores": { +"description": "Enables intelligent document quality scores after OCR. Can help with diagnosing why OCR responses are of poor quality for a given input. Adds additional latency comparable to regular OCR to the process call.", +"type": "boolean" +}, +"enableNativePdfParsing": { +"description": "Enables special handling for PDFs with existing text information. Results in better text extraction quality in such PDF inputs.", +"type": "boolean" +}, +"enableSymbol": { +"description": "Includes symbol level OCR information if set to true.", +"type": "boolean" +}, +"hints": { +"$ref": "GoogleCloudDocumentaiV1beta3OcrConfigHints", +"description": "Hints for the OCR model." +}, +"premiumFeatures": { +"$ref": "GoogleCloudDocumentaiV1beta3OcrConfigPremiumFeatures", +"description": "Configurations for premium OCR features." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3OcrConfigHints": { +"description": "Hints for OCR Engine", +"id": "GoogleCloudDocumentaiV1beta3OcrConfigHints", +"properties": { +"languageHints": { +"description": "List of BCP-47 language codes to use for OCR. In most cases, not specifying it yields the best results since it enables automatic language detection. For languages based on the Latin alphabet, setting hints is not needed. In rare cases, when the language of the text in the image is known, setting a hint will help get better results (although it will be a significant hindrance if the hint is wrong).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3OcrConfigPremiumFeatures": { +"description": "Configurations for premium OCR features.", +"id": "GoogleCloudDocumentaiV1beta3OcrConfigPremiumFeatures", +"properties": { +"computeStyleInfo": { +"description": "Turn on font identification model and return font style information.", +"type": "boolean" +}, +"enableMathOcr": { +"description": "Turn on the model that can extract LaTeX math formulas.", +"type": "boolean" +}, +"enableSelectionMarkDetection": { +"description": "Turn on selection mark detector in OCR engine. Only available in OCR 2.0 (and later) processors.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessOptions": { +"description": "Options for Process API", +"id": "GoogleCloudDocumentaiV1beta3ProcessOptions", +"properties": { +"fromEnd": { +"description": "Only process certain pages from the end, same as above.", +"format": "int32", +"type": "integer" +}, +"fromStart": { +"description": "Only process certain pages from the start. Process all if the document has fewer pages.", +"format": "int32", +"type": "integer" +}, +"individualPageSelector": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector", +"description": "Which pages to process (1-indexed)." +}, +"layoutConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfig", +"description": "Optional. Only applicable to `LAYOUT_PARSER_PROCESSOR`. Returns error if set on other processor types." +}, +"ocrConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3OcrConfig", +"description": "Only applicable to `OCR_PROCESSOR` and `FORM_PARSER_PROCESSOR`. Returns error if set on other processor types." +}, +"schemaOverride": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", +"description": "Optional. Override the schema of the ProcessorVersion. Will return an Invalid Argument error if this field is set when the underlying ProcessorVersion doesn't support schema override." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector": { +"description": "A list of individual page numbers.", +"id": "GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector", +"properties": { +"pages": { +"description": "Optional. Indices of the pages (starting from 1).", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfig": { +"description": "Serving config for layout parser processor.", +"id": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfig", +"properties": { +"chunkingConfig": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfigChunkingConfig", +"description": "Optional. Config for chunking in layout parser processor." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfigChunkingConfig": { +"description": "Serving config for chunking.", +"id": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfigChunkingConfig", +"properties": { +"breakpointPercentileThreshold": { +"description": "Optional. The percentile of cosine dissimilarity that must be exceeded between a group of tokens and the next. The smaller this number is, the more chunks will be generated.", +"format": "int32", +"type": "integer" +}, +"chunkSize": { +"description": "Optional. The chunk sizes to use when splitting documents, in order of level.", +"format": "int32", +"type": "integer" +}, +"includeAncestorHeadings": { +"description": "Optional. Whether or not to include ancestor headings when splitting.", +"type": "boolean" +}, +"semanticChunkingGroupSize": { +"description": "Optional. The number of tokens to group together when evaluating semantic similarity.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessRequest": { +"description": "Request message for the ProcessDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ProcessRequest", +"properties": { +"document": { +"$ref": "GoogleCloudDocumentaiV1beta3Document", +"deprecated": true, +"description": "The document payload, the content and mime_type fields must be set." +}, +"fieldMask": { +"description": "Specifies which fields to include in the ProcessResponse.document output. Only supports top-level document and pages field, so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", +"format": "google-fieldmask", +"type": "string" +}, +"gcsDocument": { +"$ref": "GoogleCloudDocumentaiV1beta3GcsDocument", +"description": "A raw document on Google Cloud Storage." +}, +"imagelessMode": { +"description": "Optional. Option to remove images from the document.", +"type": "boolean" +}, +"inlineDocument": { +"$ref": "GoogleCloudDocumentaiV1beta3Document", +"description": "An inline document proto." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"processOptions": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessOptions", +"description": "Inference-time options for the process API" +}, +"rawDocument": { +"$ref": "GoogleCloudDocumentaiV1beta3RawDocument", +"description": "A raw document content (bytes)." +}, +"skipHumanReview": { +"description": "Whether human review should be skipped for this request. Default to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessResponse": { +"description": "Response message for the ProcessDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ProcessResponse", +"properties": { +"document": { +"$ref": "GoogleCloudDocumentaiV1beta3Document", +"description": "The document payload, will populate fields based on the processor's behavior." +}, +"humanReviewOperation": { +"deprecated": true, +"description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field is empty. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", +"type": "string" +}, +"humanReviewStatus": { +"$ref": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", +"description": "The status of human review on the processed document." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Processor": { +"description": "The first-class citizen for Document AI. Each processor defines how to extract structural information from a document.", +"id": "GoogleCloudDocumentaiV1beta3Processor", +"properties": { +"createTime": { +"description": "The time the processor was created.", +"format": "google-datetime", +"type": "string" +}, +"defaultProcessorVersion": { +"description": "The default processor version.", +"type": "string" +}, +"displayName": { +"description": "The display name of the processor.", +"type": "string" +}, +"kmsKeyName": { +"description": "The [KMS key](https://cloud.google.com/security-key-management) used for encryption and decryption in CMEK scenarios.", +"type": "string" +}, +"name": { +"description": "Output only. Immutable. The resource name of the processor. Format: `projects/{project}/locations/{location}/processors/{processor}`", +"readOnly": true, +"type": "string" +}, +"processEndpoint": { +"description": "Output only. Immutable. The http endpoint that can be called to invoke processing.", +"readOnly": true, +"type": "string" +}, +"processorVersionAliases": { +"description": "Output only. The processor version aliases.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionAlias" +}, +"readOnly": true, +"type": "array" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the processor.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"ENABLING", +"DISABLING", +"CREATING", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"The processor is in an unspecified state.", +"The processor is enabled, i.e., has an enabled version which can currently serve processing requests and all the feature dependencies have been successfully initialized.", +"The processor is disabled.", +"The processor is being enabled, will become `ENABLED` if successful.", +"The processor is being disabled, will become `DISABLED` if successful.", +"The processor is being created, will become either `ENABLED` (for successful creation) or `FAILED` (for failed ones). Once a processor is in this state, it can then be used for document processing, but the feature dependencies of the processor might not be fully created yet.", +"The processor failed during creation or initialization of feature dependencies. The user should delete the processor and recreate one as all the functionalities of the processor are disabled.", +"The processor is being deleted, will be removed if successful." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`. To get a list of processor types, see FetchProcessorTypes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorType": { +"description": "A processor type is responsible for performing a certain document understanding task on a certain type of document.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorType", +"properties": { +"allowCreation": { +"description": "Whether the processor type allows creation. If true, users can create a processor of this processor type. Otherwise, users need to request access.", +"type": "boolean" +}, +"availableLocations": { +"description": "The locations in which this processor is available.", +"items": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorTypeLocationInfo" +}, +"type": "array" +}, +"category": { +"description": "The processor category, used by UI to group processor types.", +"type": "string" +}, +"launchStage": { +"description": "Launch stage of the processor type", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"name": { +"description": "The resource name of the processor type. Format: `projects/{project}/processorTypes/{processor_type}`", +"type": "string" +}, +"sampleDocumentUris": { +"description": "A set of Cloud Storage URIs of sample documents for this processor.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorTypeLocationInfo": { +"description": "The location information about where the processor is available.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorTypeLocationInfo", +"properties": { +"locationId": { +"description": "The location ID. For supported locations, refer to [regional and multi-regional support](/document-ai/docs/regions).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorVersion": { +"description": "A processor version is an implementation of a processor. Each processor can have multiple versions, pretrained by Google internally or uptrained by the customer. A processor can only have one default version at a time. Its document-processing behavior is defined by that version.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorVersion", +"properties": { +"createTime": { +"description": "The time the processor version was created.", +"format": "google-datetime", +"type": "string" +}, +"deprecationInfo": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo", +"description": "If set, information about the eventual deprecation of this version." +}, +"displayName": { +"description": "The display name of the processor version.", +"type": "string" +}, +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", +"description": "The schema of the processor version. Describes the output." +}, +"genAiModelInfo": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfo", +"description": "Output only. Information about Generative AI model-based processor versions.", +"readOnly": true +}, +"googleManaged": { +"description": "Output only. Denotes that this `ProcessorVersion` is managed by Google.", +"readOnly": true, +"type": "boolean" +}, +"kmsKeyName": { +"description": "The KMS key name used for encryption.", +"type": "string" +}, +"kmsKeyVersionName": { +"description": "The KMS key version with which data is encrypted.", +"type": "string" +}, +"latestEvaluation": { +"$ref": "GoogleCloudDocumentaiV1beta3EvaluationReference", +"description": "The most recently invoked evaluation for the processor version." +}, +"modelType": { +"description": "Output only. The model type of this processor version.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"MODEL_TYPE_GENERATIVE", +"MODEL_TYPE_CUSTOM" +], +"enumDescriptions": [ +"The processor version has unspecified model type.", +"The processor version has generative model type.", +"The processor version has custom model type." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the processor version.", +"enum": [ +"STATE_UNSPECIFIED", +"DEPLOYED", +"DEPLOYING", +"UNDEPLOYED", +"UNDEPLOYING", +"CREATING", +"DELETING", +"FAILED", +"IMPORTING" +], +"enumDescriptions": [ +"The processor version is in an unspecified state.", +"The processor version is deployed and can be used for processing.", +"The processor version is being deployed.", +"The processor version is not deployed and cannot be used for processing.", +"The processor version is being undeployed.", +"The processor version is being created.", +"The processor version is being deleted.", +"The processor version failed and is in an indeterminate state.", +"The processor version is being imported." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorVersionAlias": { +"description": "Contains the alias and the aliased resource name of processor version.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorVersionAlias", +"properties": { +"alias": { +"description": "The alias in the form of `processor_version` resource name.", +"type": "string" +}, +"processorVersion": { +"description": "The resource name of aliased processor version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo": { +"description": "Information about the upcoming deprecation of this processor version.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo", +"properties": { +"deprecationTime": { +"description": "The time at which this processor version will be deprecated.", +"format": "google-datetime", +"type": "string" +}, +"replacementProcessorVersion": { +"description": "If set, the processor version that will be used as a replacement.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfo": { +"description": "Information about Generative AI model-based processor versions.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfo", +"properties": { +"customGenAiModelInfo": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfoCustomGenAiModelInfo", +"description": "Information for a custom Generative AI model created by the user." +}, +"foundationGenAiModelInfo": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfoFoundationGenAiModelInfo", +"description": "Information for a pretrained Google-managed foundation model." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfoCustomGenAiModelInfo": { +"description": "Information for a custom Generative AI model created by the user. These are created with `Create New Version` in either the `Call foundation model` or `Fine tuning` tabs.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfoCustomGenAiModelInfo", +"properties": { +"baseProcessorVersionId": { +"description": "The base processor version ID for the custom model.", +"type": "string" +}, +"customModelType": { +"description": "The type of custom model created by the user.", +"enum": [ +"CUSTOM_MODEL_TYPE_UNSPECIFIED", +"VERSIONED_FOUNDATION", +"FINE_TUNED" +], +"enumDescriptions": [ +"The model type is unspecified.", +"The model is a versioned foundation model.", +"The model is a finetuned foundation model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfoFoundationGenAiModelInfo": { +"description": "Information for a pretrained Google-managed foundation model.", +"id": "GoogleCloudDocumentaiV1beta3ProcessorVersionGenAiModelInfoFoundationGenAiModelInfo", +"properties": { +"finetuningAllowed": { +"description": "Whether finetuning is allowed for this base processor version.", +"type": "boolean" +}, +"minTrainLabeledDocuments": { +"description": "The minimum number of labeled documents in the training dataset required for finetuning.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3PropertyMetadata": { +"description": "Metadata about a property.", +"id": "GoogleCloudDocumentaiV1beta3PropertyMetadata", +"properties": { +"fieldExtractionMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3FieldExtractionMetadata", +"description": "Field extraction metadata on the property." +}, +"inactive": { +"description": "Whether the property should be considered as \"inactive\".", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3RawDocument": { +"description": "Payload message of raw document content (bytes).", +"id": "GoogleCloudDocumentaiV1beta3RawDocument", +"properties": { +"content": { +"description": "Inline document content.", +"format": "byte", +"type": "string" +}, +"displayName": { +"description": "The display name of the document, it supports all Unicode characters except the following: `*`, `?`, `[`, `]`, `%`, `{`, `}`,`'`, `\\\"`, `,` `~`, `=` and `:` are reserved. If not specified, a default ID is generated.", +"type": "string" +}, +"mimeType": { +"description": "An IANA MIME type (RFC6838) indicating the nature and format of the content.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata": { +"description": "The long-running operation metadata for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"createTime": { +"description": "The creation time of the operation.", +"format": "google-datetime", +"type": "string" +}, +"questionId": { +"description": "The Crowd Compute question ID.", +"type": "string" +}, +"state": { +"description": "Used only when Operation.done is false.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified state.", +"Operation is still running.", +"Operation is being cancelled.", +"Operation succeeded.", +"Operation failed.", +"Operation is cancelled." +], +"type": "string" +}, +"stateMessage": { +"description": "A message providing more details about the current state of processing. For example, the error message if the operation is failed.", +"type": "string" +}, +"updateTime": { +"description": "The last update time of the operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ReviewDocumentRequest": { +"description": "Request message for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ReviewDocumentRequest", +"properties": { +"document": { +"$ref": "GoogleCloudDocumentaiV1beta3Document", +"deprecated": true, +"description": "The document that needs human review." +}, +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", +"description": "The document schema of the human review task." +}, +"enableSchemaValidation": { +"description": "Whether the validation should be performed on the ad-hoc review request.", +"type": "boolean" +}, +"inlineDocument": { +"$ref": "GoogleCloudDocumentaiV1beta3Document", +"description": "An inline document proto." +}, +"priority": { +"description": "The priority of the human review task.", +"enum": [ +"DEFAULT", +"URGENT" +], +"enumDescriptions": [ +"The default priority level.", +"The urgent priority level. The labeling manager should allocate labeler resource to the urgent task queue to respect this priority level." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3ReviewDocumentResponse": { +"description": "Response message for the ReviewDocument method.", +"id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", +"properties": { +"gcsDestination": { +"description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", +"type": "string" +}, +"rejectionReason": { +"description": "The reason why the review is rejected by reviewer.", +"type": "string" +}, +"state": { +"description": "The state of the review operation.", +"enum": [ +"STATE_UNSPECIFIED", +"REJECTED", +"SUCCEEDED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The review operation is rejected by the reviewer.", +"The review operation is succeeded." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3RevisionRef": { +"description": "The revision reference specifies which revision on the document to read.", +"id": "GoogleCloudDocumentaiV1beta3RevisionRef", +"properties": { +"latestProcessorVersion": { +"description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", +"type": "string" +}, +"revisionCase": { +"description": "Reads the revision by the predefined case.", +"enum": [ +"REVISION_CASE_UNSPECIFIED", +"LATEST_HUMAN_REVIEW", +"LATEST_TIMESTAMP", +"BASE_OCR_REVISION" +], +"enumDescriptions": [ +"Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", +"The latest revision made by a human.", +"The latest revision based on timestamp.", +"The first (OCR) revision." +], +"type": "string" +}, +"revisionId": { +"description": "Reads the revision given by the id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata": { +"description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionRequest": { +"description": "Request message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionRequest", +"properties": { +"defaultProcessorVersion": { +"description": "Required. The resource name of child ProcessorVersion to use as default. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{version}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse": { +"description": "Response message for the SetDefaultProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3SummaryOptions": { +"description": "Metadata for document summarization.", +"id": "GoogleCloudDocumentaiV1beta3SummaryOptions", +"properties": { +"format": { +"description": "The format the summary should be in.", +"enum": [ +"FORMAT_UNSPECIFIED", +"PARAGRAPH", +"BULLETS" +], +"enumDescriptions": [ +"Default.", +"Format the output in paragraphs.", +"Format the output in bullets." +], +"type": "string" +}, +"length": { +"description": "How long the summary should be.", +"enum": [ +"LENGTH_UNSPECIFIED", +"BRIEF", +"MODERATE", +"COMPREHENSIVE" +], +"enumDescriptions": [ +"Default.", +"A brief summary of one or two sentences.", +"A paragraph-length summary.", +"The longest option available." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadata": { +"description": "The metadata that represents a processor version being created.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +}, +"testDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The test dataset validation information." +}, +"trainingDatasetValidation": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", +"description": "The training dataset validation information." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation": { +"description": "The dataset validation information. This includes any and all errors with documents and the dataset.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", +"properties": { +"datasetErrorCount": { +"description": "The total number of dataset errors.", +"format": "int32", +"type": "integer" +}, +"datasetErrors": { +"description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"documentErrorCount": { +"description": "The total number of document errors.", +"format": "int32", +"type": "integer" +}, +"documentErrors": { +"description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest": { +"description": "Request message for the TrainProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest", +"properties": { +"baseProcessorVersion": { +"description": "Optional. The processor version to use as a base for training. This processor version must be a child of `parent`. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`.", +"type": "string" +}, +"customDocumentExtractionOptions": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestCustomDocumentExtractionOptions", +"description": "Options to control Custom Document Extraction (CDE) Processor." +}, +"documentSchema": { +"$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", +"description": "Optional. The schema the processor version will be trained with." +}, +"foundationModelTuningOptions": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestFoundationModelTuningOptions", +"description": "Options to control foundation model tuning of a processor." +}, +"inputData": { +"$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData", +"description": "Optional. The input data used to train the ProcessorVersion." +}, +"processorVersion": { +"$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersion", +"description": "Required. The processor version to be created." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestCustomDocumentExtractionOptions": { +"description": "Options to control the training of the Custom Document Extraction (CDE) Processor.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestCustomDocumentExtractionOptions", +"properties": { +"trainingMethod": { +"description": "Training method to use for CDE training.", +"enum": [ +"TRAINING_METHOD_UNSPECIFIED", +"MODEL_BASED", +"TEMPLATE_BASED" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestFoundationModelTuningOptions": { +"description": "Options to control foundation model tuning of the processor.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestFoundationModelTuningOptions", +"properties": { +"learningRateMultiplier": { +"description": "Optional. The multiplier to apply to the recommended learning rate. Valid values are between 0.1 and 10. If not provided, recommended learning rate will be used.", +"format": "float", +"type": "number" +}, +"trainSteps": { +"description": "Optional. The number of steps to run for model tuning. Valid values are between 1 and 400. If not provided, recommended steps will be used.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData": { +"description": "The input data used to train a new ProcessorVersion.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData", +"properties": { +"testDocuments": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", +"description": "The documents used for testing the trained version." +}, +"trainingDocuments": { +"$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", +"description": "The documents used for training the new version." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { +"description": "The response for TrainProcessorVersion.", +"id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", +"properties": { +"processorVersion": { +"description": "The resource name of the processor version produced by training.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { +"description": "The long-running operation metadata for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UndeployProcessorVersionRequest": { +"description": "Request message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse": { +"description": "Response message for the UndeployProcessorVersion method.", +"id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata": { +"id": "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata", +"properties": { +"commonMetadata": { +"$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", +"description": "The basic metadata of the long-running operation." +} +}, +"type": "object" +}, +"GoogleCloudDocumentaiV1beta3Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "GoogleCloudDocumentaiV1beta3Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate (starts from the top of the image).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeColor": { +"description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value\u2014for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", +"id": "GoogleTypeColor", +"properties": { +"alpha": { +"description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", +"format": "float", +"type": "number" +}, +"blue": { +"description": "The amount of blue in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"green": { +"description": "The amount of green in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"red": { +"description": "The amount of red in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleTypeDate": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "GoogleTypeDate", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleTypeDateTime": { +"description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", +"id": "GoogleTypeDateTime", +"properties": { +"day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"type": "integer" +}, +"hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +}, +"timeZone": { +"$ref": "GoogleTypeTimeZone", +"description": "Time zone." +}, +"utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"type": "string" +}, +"year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleTypeMoney": { +"description": "Represents an amount of money with its currency type.", +"id": "GoogleTypeMoney", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypePostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "GoogleTypePostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeTimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "GoogleTypeTimeZone", +"properties": { +"id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"type": "string" +}, +"version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Document AI API", +"version": "v1beta3", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..5280d5df30086752a0bf72ed0cc83276b7e07861 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json @@ -0,0 +1,1230 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/doubleclicksearch": { +"description": "View and manage your advertising data in DoubleClick Search" +} +} +} +}, +"basePath": "", +"baseUrl": "https://doubleclicksearch.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Doubleclicksearch", +"description": "The Search Ads 360 API allows developers to automate uploading conversions and downloading reports from Search Ads 360.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/search-ads", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "doubleclicksearch:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://doubleclicksearch.mtls.googleapis.com/", +"name": "doubleclicksearch", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"conversion": { +"methods": { +"get": { +"description": "Retrieves a list of conversions from a DoubleClick Search engine account.", +"flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion", +"httpMethod": "GET", +"id": "doubleclicksearch.conversion.get", +"parameterOrder": [ +"agencyId", +"advertiserId", +"engineAccountId", +"endDate", +"rowCount", +"startDate", +"startRow" +], +"parameters": { +"adGroupId": { +"description": "Numeric ID of the ad group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"adId": { +"description": "Numeric ID of the ad.", +"format": "int64", +"location": "query", +"type": "string" +}, +"advertiserId": { +"description": "Numeric ID of the advertiser.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"agencyId": { +"description": "Numeric ID of the agency.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Numeric ID of the campaign.", +"format": "int64", +"location": "query", +"type": "string" +}, +"criterionId": { +"description": "Numeric ID of the criterion.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customerId": { +"description": "Customer ID of a client account in the new Search Ads 360 experience.", +"location": "query", +"type": "string" +}, +"endDate": { +"description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", +"format": "int32", +"location": "query", +"maximum": "99991231", +"minimum": "20091101", +"required": true, +"type": "integer" +}, +"engineAccountId": { +"description": "Numeric ID of the engine account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"rowCount": { +"description": "The number of conversions to return per call.", +"format": "int32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"required": true, +"type": "integer" +}, +"startDate": { +"description": "First date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", +"format": "int32", +"location": "query", +"maximum": "99991231", +"minimum": "20091101", +"required": true, +"type": "integer" +}, +"startRow": { +"description": "The 0-based starting index for retrieving conversions results.", +"format": "uint32", +"location": "query", +"required": true, +"type": "integer" +} +}, +"path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion", +"response": { +"$ref": "ConversionList" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"getByCustomerId": { +"description": "Retrieves a list of conversions from a DoubleClick Search engine account.", +"flatPath": "doubleclicksearch/v2/customer/{customerId}/conversion", +"httpMethod": "GET", +"id": "doubleclicksearch.conversion.getByCustomerId", +"parameterOrder": [ +"customerId", +"endDate", +"rowCount", +"startDate", +"startRow" +], +"parameters": { +"adGroupId": { +"description": "Numeric ID of the ad group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"adId": { +"description": "Numeric ID of the ad.", +"format": "int64", +"location": "query", +"type": "string" +}, +"advertiserId": { +"description": "Numeric ID of the advertiser.", +"format": "int64", +"location": "query", +"type": "string" +}, +"agencyId": { +"description": "Numeric ID of the agency.", +"format": "int64", +"location": "query", +"type": "string" +}, +"campaignId": { +"description": "Numeric ID of the campaign.", +"format": "int64", +"location": "query", +"type": "string" +}, +"criterionId": { +"description": "Numeric ID of the criterion.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customerId": { +"description": "Customer ID of a client account in the new Search Ads 360 experience.", +"location": "path", +"required": true, +"type": "string" +}, +"endDate": { +"description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", +"format": "int32", +"location": "query", +"maximum": "99991231", +"minimum": "20091101", +"required": true, +"type": "integer" +}, +"engineAccountId": { +"description": "Numeric ID of the engine account.", +"format": "int64", +"location": "query", +"type": "string" +}, +"rowCount": { +"description": "The number of conversions to return per call.", +"format": "int32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"required": true, +"type": "integer" +}, +"startDate": { +"description": "First date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", +"format": "int32", +"location": "query", +"maximum": "99991231", +"minimum": "20091101", +"required": true, +"type": "integer" +}, +"startRow": { +"description": "The 0-based starting index for retrieving conversions results.", +"format": "uint32", +"location": "query", +"required": true, +"type": "integer" +} +}, +"path": "doubleclicksearch/v2/customer/{customerId}/conversion", +"response": { +"$ref": "ConversionList" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"insert": { +"description": "Inserts a batch of new conversions into DoubleClick Search.", +"flatPath": "doubleclicksearch/v2/conversion", +"httpMethod": "POST", +"id": "doubleclicksearch.conversion.insert", +"parameterOrder": [], +"parameters": {}, +"path": "doubleclicksearch/v2/conversion", +"request": { +"$ref": "ConversionList" +}, +"response": { +"$ref": "ConversionList" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"update": { +"description": "Updates a batch of conversions in DoubleClick Search.", +"flatPath": "doubleclicksearch/v2/conversion", +"httpMethod": "PUT", +"id": "doubleclicksearch.conversion.update", +"parameterOrder": [], +"parameters": {}, +"path": "doubleclicksearch/v2/conversion", +"request": { +"$ref": "ConversionList" +}, +"response": { +"$ref": "ConversionList" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"updateAvailability": { +"description": "Updates the availabilities of a batch of floodlight activities in DoubleClick Search.", +"flatPath": "doubleclicksearch/v2/conversion/updateAvailability", +"httpMethod": "POST", +"id": "doubleclicksearch.conversion.updateAvailability", +"parameterOrder": [], +"parameters": {}, +"path": "doubleclicksearch/v2/conversion/updateAvailability", +"request": { +"$ref": "UpdateAvailabilityRequest" +}, +"response": { +"$ref": "UpdateAvailabilityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +} +}, +"reports": { +"methods": { +"generate": { +"description": "Generates and returns a report immediately.", +"flatPath": "doubleclicksearch/v2/reports/generate", +"httpMethod": "POST", +"id": "doubleclicksearch.reports.generate", +"parameterOrder": [], +"parameters": {}, +"path": "doubleclicksearch/v2/reports/generate", +"request": { +"$ref": "ReportRequest" +}, +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"get": { +"description": "Polls for the status of a report request.", +"flatPath": "doubleclicksearch/v2/reports/{reportId}", +"httpMethod": "GET", +"id": "doubleclicksearch.reports.get", +"parameterOrder": [ +"reportId" +], +"parameters": { +"reportId": { +"description": "ID of the report request being polled.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "doubleclicksearch/v2/reports/{reportId}", +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"getFile": { +"description": "Downloads a report file encoded in UTF-8.", +"flatPath": "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}", +"httpMethod": "GET", +"id": "doubleclicksearch.reports.getFile", +"parameterOrder": [ +"reportId", +"reportFragment" +], +"parameters": { +"reportFragment": { +"description": "The index of the report fragment to download.", +"format": "int32", +"location": "path", +"minimum": "0", +"required": true, +"type": "integer" +}, +"reportId": { +"description": "ID of the report.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}", +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"getIdMappingFile": { +"description": "Downloads a csv file(encoded in UTF-8) that contains ID mappings between legacy SA360 and new SA360. The file includes all children entities of the given advertiser(e.g. engine accounts, campaigns, ad groups, etc.) that exist in both legacy SA360 and new SA360.", +"flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/idmapping", +"httpMethod": "GET", +"id": "doubleclicksearch.reports.getIdMappingFile", +"parameterOrder": [ +"agencyId", +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Legacy SA360 advertiser ID.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"agencyId": { +"description": "Legacy SA360 agency ID.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/idmapping", +"response": { +"$ref": "IdMappingFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"request": { +"description": "Inserts a report request into the reporting system.", +"flatPath": "doubleclicksearch/v2/reports", +"httpMethod": "POST", +"id": "doubleclicksearch.reports.request", +"parameterOrder": [], +"parameters": {}, +"path": "doubleclicksearch/v2/reports", +"request": { +"$ref": "ReportRequest" +}, +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +} +}, +"savedColumns": { +"methods": { +"list": { +"description": "Retrieve the list of saved columns for a specified advertiser.", +"flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns", +"httpMethod": "GET", +"id": "doubleclicksearch.savedColumns.list", +"parameterOrder": [ +"agencyId", +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "DS ID of the advertiser.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"agencyId": { +"description": "DS ID of the agency.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns", +"response": { +"$ref": "SavedColumnList" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +} +} +}, +"revision": "20240625", +"rootUrl": "https://doubleclicksearch.googleapis.com/", +"schemas": { +"Availability": { +"description": "A message containing availability data relevant to DoubleClick Search.", +"id": "Availability", +"properties": { +"advertiserId": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.updateAvailability" +] +}, +"description": "DS advertiser ID.", +"format": "int64", +"type": "string" +}, +"agencyId": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.updateAvailability" +] +}, +"description": "DS agency ID.", +"format": "int64", +"type": "string" +}, +"availabilityTimestamp": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.updateAvailability" +] +}, +"description": "The time by which all conversions have been uploaded, in epoch millis UTC.", +"format": "int64", +"type": "string" +}, +"customerId": { +"description": "Customer ID of a client account in the new Search Ads 360 experience.", +"type": "string" +}, +"segmentationId": { +"description": "The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).", +"format": "int64", +"type": "string" +}, +"segmentationName": { +"description": "The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).", +"type": "string" +}, +"segmentationType": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.updateAvailability" +] +}, +"description": "The segmentation type that this availability is for (its default value is `FLOODLIGHT`).", +"type": "string" +} +}, +"type": "object" +}, +"Conversion": { +"description": "A conversion containing data relevant to DoubleClick Search.", +"id": "Conversion", +"properties": { +"adGroupId": { +"description": "DS ad group ID.", +"format": "int64", +"type": "string" +}, +"adId": { +"description": "DS ad ID.", +"format": "int64", +"type": "string" +}, +"adUserDataConsent": { +"description": "Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.", +"enum": [ +"UNKNOWN", +"GRANTED", +"DENIED" +], +"enumDescriptions": [ +"Not specified.", +"Granted.", +"Denied." +], +"type": "string" +}, +"advertiserId": { +"description": "DS advertiser ID.", +"format": "int64", +"type": "string" +}, +"agencyId": { +"description": "DS agency ID.", +"format": "int64", +"type": "string" +}, +"attributionModel": { +"description": "Available to advertisers only after contacting DoubleClick Search customer support.", +"type": "string" +}, +"campaignId": { +"description": "DS campaign ID.", +"format": "int64", +"type": "string" +}, +"channel": { +"description": "Sales channel for the product. Acceptable values are: - \"`local`\": a physical store - \"`online`\": an online store ", +"type": "string" +}, +"clickId": { +"description": "DS click ID for the conversion.", +"type": "string" +}, +"conversionId": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.insert" +] +}, +"description": "For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser. For online conversions, DS copies the `dsConversionId` or `floodlightOrderId` into this property depending on the advertiser's Floodlight instructions.", +"type": "string" +}, +"conversionModifiedTimestamp": { +"description": "The time at which the conversion was last modified, in epoch millis UTC.", +"format": "int64", +"type": "string" +}, +"conversionTimestamp": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.insert" +] +}, +"description": "The time at which the conversion took place, in epoch millis UTC.", +"type": "string" +}, +"countMillis": { +"description": "Available to advertisers only after contacting DoubleClick Search customer support.", +"format": "int64", +"type": "string" +}, +"criterionId": { +"description": "DS criterion (keyword) ID.", +"format": "int64", +"type": "string" +}, +"currencyCode": { +"description": "The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.", +"type": "string" +}, +"customDimension": { +"description": "Custom dimensions for the conversion, which can be used to filter data in a report.", +"items": { +"$ref": "CustomDimension" +}, +"type": "array" +}, +"customMetric": { +"description": "Custom metrics for the conversion.", +"items": { +"$ref": "CustomMetric" +}, +"type": "array" +}, +"customerId": { +"description": "Customer ID of a client account in the new Search Ads 360 experience.", +"type": "string" +}, +"deviceType": { +"description": "The type of device on which the conversion occurred.", +"type": "string" +}, +"dsConversionId": { +"description": "ID that DoubleClick Search generates for each conversion.", +"format": "int64", +"type": "string" +}, +"engineAccountId": { +"description": "DS engine account ID.", +"format": "int64", +"type": "string" +}, +"floodlightOrderId": { +"description": "The Floodlight order ID provided by the advertiser for the conversion.", +"type": "string" +}, +"inventoryAccountId": { +"description": "ID that DS generates and uses to uniquely identify the inventory account that contains the product.", +"format": "int64", +"type": "string" +}, +"productCountry": { +"description": "The country registered for the Merchant Center feed that contains the product. Use an ISO 3166 code to specify a country.", +"type": "string" +}, +"productGroupId": { +"description": "DS product group ID.", +"format": "int64", +"type": "string" +}, +"productId": { +"description": "The product ID (SKU).", +"type": "string" +}, +"productLanguage": { +"description": "The language registered for the Merchant Center feed that contains the product. Use an ISO 639 code to specify a language.", +"type": "string" +}, +"quantityMillis": { +"description": "The quantity of this conversion, in millis.", +"format": "int64", +"type": "string" +}, +"revenueMicros": { +"description": "The revenue amount of this `TRANSACTION` conversion, in micros (value multiplied by 1000000, no decimal). For example, to specify a revenue value of \"10\" enter \"10000000\" (10 million) in your request.", +"type": "string" +}, +"segmentationId": { +"description": "The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).", +"format": "int64", +"type": "string" +}, +"segmentationName": { +"description": "The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).", +"type": "string" +}, +"segmentationType": { +"annotations": { +"required": [ +"doubleclicksearch.conversion.insert" +] +}, +"description": "The segmentation type of this conversion (for example, `FLOODLIGHT`).", +"type": "string" +}, +"state": { +"description": "The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note: state DELETED is deprecated.", +"type": "string" +}, +"storeId": { +"description": "The ID of the local store for which the product was advertised. Applicable only when the channel is \"`local`\".", +"type": "string" +}, +"type": { +"description": "The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `ACTION` conversion is an action by the user that has no monetarily quantifiable value, while a `TRANSACTION` conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (`ACTION`) versus ecommerce purchases (`TRANSACTION`).", +"type": "string" +} +}, +"type": "object" +}, +"ConversionList": { +"description": "A list of conversions.", +"id": "ConversionList", +"properties": { +"conversion": { +"description": "The conversions being requested.", +"items": { +"$ref": "Conversion" +}, +"type": "array" +}, +"kind": { +"description": "Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.", +"type": "string" +} +}, +"type": "object" +}, +"CustomDimension": { +"description": "A message containing the custom dimension.", +"id": "CustomDimension", +"properties": { +"name": { +"description": "Custom dimension name.", +"type": "string" +}, +"value": { +"description": "Custom dimension value.", +"type": "string" +} +}, +"type": "object" +}, +"CustomMetric": { +"description": "A message containing the custom metric.", +"id": "CustomMetric", +"properties": { +"name": { +"description": "Custom metric name.", +"type": "string" +}, +"value": { +"description": "Custom metric numeric value.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"IdMappingFile": { +"description": "File returned to https://developers.google.com/search-ads/v2/reference/reports/getIdMappingFile.", +"id": "IdMappingFile", +"properties": {}, +"type": "object" +}, +"Report": { +"description": "A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.", +"id": "Report", +"properties": { +"files": { +"description": "Asynchronous report only. Contains a list of generated report files once the report has successfully completed.", +"items": { +"properties": { +"byteCount": { +"description": "The size of this report file in bytes.", +"format": "int64", +"type": "string" +}, +"url": { +"description": "Use this url to download the report file.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"id": { +"description": "Asynchronous report only. Id of the report.", +"type": "string" +}, +"isReportReady": { +"description": "Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.", +"type": "boolean" +}, +"kind": { +"description": "Identifies this as a Report resource. Value: the fixed string `doubleclicksearch#report`.", +"type": "string" +}, +"request": { +"$ref": "ReportRequest", +"description": "The request that created the report. Optional fields not specified in the original request are filled with default values." +}, +"rowCount": { +"description": "The number of report rows generated by the report, not including headers.", +"format": "int32", +"type": "integer" +}, +"rows": { +"description": "Synchronous report only. Generated report rows.", +"items": { +"$ref": "ReportRow" +}, +"type": "array" +}, +"statisticsCurrencyCode": { +"description": "The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the `statisticsCurrency` field of the report request.", +"type": "string" +}, +"statisticsTimeZone": { +"description": "If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.", +"type": "string" +} +}, +"type": "object" +}, +"ReportApiColumnSpec": { +"description": "A request object used to create a DoubleClick Search report.", +"id": "ReportApiColumnSpec", +"properties": { +"columnName": { +"description": "Name of a DoubleClick Search column to include in the report.", +"type": "string" +}, +"customDimensionName": { +"description": "Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.\\ If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.", +"type": "string" +}, +"customMetricName": { +"description": "Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.", +"type": "string" +}, +"endDate": { +"description": "Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with `startDate`.", +"type": "string" +}, +"groupByColumn": { +"description": "Synchronous report only. Set to `true` to group by this column. Defaults to `false`.", +"type": "boolean" +}, +"headerText": { +"description": "Text used to identify this column in the report output; defaults to `columnName` or `savedColumnName` when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.", +"type": "string" +}, +"platformSource": { +"description": "The platform that is used to provide data for the custom dimension. Acceptable values are \"floodlight\".", +"type": "string" +}, +"productReportPerspective": { +"description": "Returns metrics only for a specific type of product activity. Accepted values are: - \"`sold`\": returns metrics only for products that were sold - \"`advertised`\": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold ", +"type": "string" +}, +"savedColumnName": { +"description": "Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.", +"type": "string" +}, +"startDate": { +"description": "Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with `endDate`.", +"type": "string" +} +}, +"type": "object" +}, +"ReportRequest": { +"description": "A request object used to create a DoubleClick Search report.", +"id": "ReportRequest", +"properties": { +"columns": { +"description": "The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the `columnName` parameter is required. For saved columns only the `savedColumnName` parameter is required. Both `columnName` and `savedColumnName` cannot be set in the same stanza.\\ The maximum number of columns per request is 300.", +"items": { +"$ref": "ReportApiColumnSpec" +}, +"type": "array" +}, +"downloadFormat": { +"annotations": { +"required": [ +"doubleclicksearch.reports.request" +] +}, +"description": "Format that the report should be returned in. Currently `csv` or `tsv` is supported.", +"type": "string" +}, +"filters": { +"description": "A list of filters to be applied to the report.\\ The maximum number of filters per request is 300.", +"items": { +"properties": { +"column": { +"$ref": "ReportApiColumnSpec", +"description": "Column to perform the filter on. This can be a DoubleClick Search column or a saved column." +}, +"operator": { +"description": "Operator to use in the filter. See the filter reference for a list of available operators.", +"type": "string" +}, +"values": { +"description": "A list of values to filter the column value against.\\ The maximum number of filter values per request is 300.", +"items": { +"type": "any" +}, +"type": "array" +} +}, +"type": "object" +}, +"type": "array" +}, +"includeDeletedEntities": { +"description": "Determines if removed entities should be included in the report. Defaults to `false`. Deprecated, please use `includeRemovedEntities` instead.", +"type": "boolean" +}, +"includeRemovedEntities": { +"description": "Determines if removed entities should be included in the report. Defaults to `false`.", +"type": "boolean" +}, +"maxRowsPerFile": { +"annotations": { +"required": [ +"doubleclicksearch.reports.request" +] +}, +"description": "Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are `1000000` to `100000000`, inclusive.", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.\\ The maximum number of orderings per request is 300.", +"items": { +"properties": { +"column": { +"$ref": "ReportApiColumnSpec", +"description": "Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column." +}, +"sortOrder": { +"description": "The sort direction, which is either `ascending` or `descending`.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"reportScope": { +"description": "The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.", +"properties": { +"adGroupId": { +"description": "DS ad group ID.", +"format": "int64", +"type": "string" +}, +"adId": { +"description": "DS ad ID.", +"format": "int64", +"type": "string" +}, +"advertiserId": { +"description": "DS advertiser ID.", +"format": "int64", +"type": "string" +}, +"agencyId": { +"description": "DS agency ID.", +"format": "int64", +"type": "string" +}, +"campaignId": { +"description": "DS campaign ID.", +"format": "int64", +"type": "string" +}, +"engineAccountId": { +"description": "DS engine account ID.", +"format": "int64", +"type": "string" +}, +"keywordId": { +"description": "DS keyword ID.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"reportType": { +"annotations": { +"required": [ +"doubleclicksearch.reports.generate", +"doubleclicksearch.reports.request" +] +}, +"description": "Determines the type of rows that are returned in the report. For example, if you specify `reportType: keyword`, each row in the report will contain data about a keyword. See the [Types of Reports](/search-ads/v2/report-types/) reference for the columns that are available for each type.", +"type": "string" +}, +"rowCount": { +"annotations": { +"required": [ +"doubleclicksearch.reports.generate" +] +}, +"description": "Synchronous report only. The maximum number of rows to return; additional rows are dropped. Acceptable values are `0` to `10000`, inclusive. Defaults to `10000`.", +"format": "int32", +"type": "integer" +}, +"startRow": { +"annotations": { +"required": [ +"doubleclicksearch.reports.generate" +] +}, +"description": "Synchronous report only. Zero-based index of the first row to return. Acceptable values are `0` to `50000`, inclusive. Defaults to `0`.", +"format": "int32", +"type": "integer" +}, +"statisticsCurrency": { +"annotations": { +"required": [ +"doubleclicksearch.reports.generate", +"doubleclicksearch.reports.request" +] +}, +"description": "Specifies the currency in which monetary will be returned. Possible values are: `usd`, `agency` (valid if the report is scoped to agency or lower), `advertiser` (valid if the report is scoped to * advertiser or lower), or `account` (valid if the report is scoped to engine account or lower).", +"type": "string" +}, +"timeRange": { +"description": "If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.", +"properties": { +"changedAttributesSinceTimestamp": { +"description": "Inclusive UTC timestamp in RFC format, e.g., `2013-07-16T10:16:23.555Z`. See additional references on how changed attribute reports work.", +"type": "string" +}, +"changedMetricsSinceTimestamp": { +"description": "Inclusive UTC timestamp in RFC format, e.g., `2013-07-16T10:16:23.555Z`. See additional references on how changed metrics reports work.", +"type": "string" +}, +"endDate": { +"description": "Inclusive date in YYYY-MM-DD format.", +"type": "string" +}, +"startDate": { +"description": "Inclusive date in YYYY-MM-DD format.", +"type": "string" +} +}, +"type": "object" +}, +"verifySingleTimeZone": { +"description": "If `true`, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to `false`.", +"type": "boolean" +} +}, +"type": "object" +}, +"ReportRow": { +"additionalProperties": { +"description": "Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.", +"type": "any" +}, +"description": "A row in a DoubleClick Search report.", +"id": "ReportRow", +"type": "object" +}, +"SavedColumn": { +"description": "A saved column", +"id": "SavedColumn", +"properties": { +"kind": { +"description": "Identifies this as a SavedColumn resource. Value: the fixed string doubleclicksearch#savedColumn.", +"type": "string" +}, +"savedColumnName": { +"description": "The name of the saved column.", +"type": "string" +}, +"type": { +"description": "The type of data this saved column will produce.", +"type": "string" +} +}, +"type": "object" +}, +"SavedColumnList": { +"description": "A list of saved columns. Advertisers create saved columns to report on Floodlight activities, Google Analytics goals, or custom KPIs. To request reports with saved columns, you'll need the saved column names that are available from this list.", +"id": "SavedColumnList", +"properties": { +"items": { +"description": "The saved columns being requested.", +"items": { +"$ref": "SavedColumn" +}, +"type": "array" +}, +"kind": { +"description": "Identifies this as a SavedColumnList resource. Value: the fixed string doubleclicksearch#savedColumnList.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateAvailabilityRequest": { +"description": "The request to update availability.", +"id": "UpdateAvailabilityRequest", +"properties": { +"availabilities": { +"description": "The availabilities being requested.", +"items": { +"$ref": "Availability" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateAvailabilityResponse": { +"description": "The response to a update availability request.", +"id": "UpdateAvailabilityResponse", +"properties": { +"availabilities": { +"description": "The availabilities being returned.", +"items": { +"$ref": "Availability" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Search Ads 360 API", +"version": "v2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..04276aa1c0fb616af58e80a724378f3280225974 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json @@ -0,0 +1,648 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/factchecktools": { +"description": "Read, create, update, and delete your ClaimReview data." +} +} +} +}, +"basePath": "", +"baseUrl": "https://factchecktools.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Fact Check Tools", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/fact-check/tools/api/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "factchecktools:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://factchecktools.mtls.googleapis.com/", +"name": "factchecktools", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"claims": { +"methods": { +"imageSearch": { +"description": "Search through fact-checked claims using an image as the query.", +"flatPath": "v1alpha1/claims:imageSearch", +"httpMethod": "GET", +"id": "factchecktools.claims.imageSearch", +"parameterOrder": [], +"parameters": { +"imageUri": { +"description": "Required. The URI of the source image. This must be a publicly-accessible image HTTP/HTTPS URL. When fetching images from HTTP/HTTPS URLs, Google cannot guarantee that the request will be completed. Your request may fail if the specified host denies the request (e.g. due to request throttling or DOS prevention), or if Google throttles requests to the site for abuse prevention. You should not depend on externally-hosted images for production applications.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". Can be used to restrict results by language, though we do not currently consider the region.", +"location": "query", +"type": "string" +}, +"offset": { +"description": "Optional. An integer that specifies the current offset (that is, starting result location) in search results. This field is only considered if `page_token` is unset. For example, 0 means to return results starting from the first matching result, and 10 means to return from the 11th result.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageSize": { +"description": "Optional. The pagination size. We will return up to that many results. Defaults to 10 if not set.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The pagination token. You may provide the `next_page_token` returned from a previous List request, if any, in order to get the next page. All other fields must have the same values as in the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/claims:imageSearch", +"response": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponse" +} +}, +"search": { +"description": "Search through fact-checked claims.", +"flatPath": "v1alpha1/claims:search", +"httpMethod": "GET", +"id": "factchecktools.claims.search", +"parameterOrder": [], +"parameters": { +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". Can be used to restrict results by language, though we do not currently consider the region.", +"location": "query", +"type": "string" +}, +"maxAgeDays": { +"description": "The maximum age of the returned search results, in days. Age is determined by either claim date or review date, whichever is newer.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"offset": { +"description": "An integer that specifies the current offset (that is, starting result location) in search results. This field is only considered if `page_token` is unset. For example, 0 means to return results starting from the first matching result, and 10 means to return from the 11th result.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageSize": { +"description": "The pagination size. We will return up to that many results. Defaults to 10 if not set.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The pagination token. You may provide the `next_page_token` returned from a previous List request, if any, in order to get the next page. All other fields must have the same values as in the previous request.", +"location": "query", +"type": "string" +}, +"query": { +"description": "Textual query string. Required unless `review_publisher_site_filter` is specified.", +"location": "query", +"type": "string" +}, +"reviewPublisherSiteFilter": { +"description": "The review publisher site to filter results by, e.g. nytimes.com.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/claims:search", +"response": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse" +} +} +} +}, +"pages": { +"methods": { +"create": { +"description": "Create `ClaimReview` markup on a page.", +"flatPath": "v1alpha1/pages", +"httpMethod": "POST", +"id": "factchecktools.pages.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/pages", +"request": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage" +}, +"response": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage" +}, +"scopes": [ +"https://www.googleapis.com/auth/factchecktools" +] +}, +"delete": { +"description": "Delete all `ClaimReview` markup on a page.", +"flatPath": "v1alpha1/pages/{pagesId}", +"httpMethod": "DELETE", +"id": "factchecktools.pages.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the resource to delete, in the form of `pages/{page_id}`.", +"location": "path", +"pattern": "^pages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/factchecktools" +] +}, +"get": { +"description": "Get all `ClaimReview` markup on a page.", +"flatPath": "v1alpha1/pages/{pagesId}", +"httpMethod": "GET", +"id": "factchecktools.pages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the resource to get, in the form of `pages/{page_id}`.", +"location": "path", +"pattern": "^pages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage" +}, +"scopes": [ +"https://www.googleapis.com/auth/factchecktools" +] +}, +"list": { +"description": "List the `ClaimReview` markup pages for a specific URL or for an organization.", +"flatPath": "v1alpha1/pages", +"httpMethod": "GET", +"id": "factchecktools.pages.list", +"parameterOrder": [], +"parameters": { +"offset": { +"description": "An integer that specifies the current offset (that is, starting result location) in search results. This field is only considered if `page_token` is unset, and if the request is not for a specific URL. For example, 0 means to return results starting from the first matching result, and 10 means to return from the 11th result.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"organization": { +"description": "The organization for which we want to fetch markups for. For instance, \"site.com\". Cannot be specified along with an URL.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The pagination size. We will return up to that many results. Defaults to 10 if not set. Has no effect if a URL is requested.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The pagination token. You may provide the `next_page_token` returned from a previous List request, if any, in order to get the next page. All other fields must have the same values as in the previous request.", +"location": "query", +"type": "string" +}, +"url": { +"description": "The URL from which to get `ClaimReview` markup. There will be at most one result. If markup is associated with a more canonical version of the URL provided, we will return that URL instead. Cannot be specified along with an organization.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/pages", +"response": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ListClaimReviewMarkupPagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/factchecktools" +] +}, +"update": { +"description": "Update for all `ClaimReview` markup on a page Note that this is a full update. To retain the existing `ClaimReview` markup on a page, first perform a Get operation, then modify the returned markup, and finally call Update with the entire `ClaimReview` markup as the body.", +"flatPath": "v1alpha1/pages/{pagesId}", +"httpMethod": "PUT", +"id": "factchecktools.pages.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of this `ClaimReview` markup page resource, in the form of `pages/{page_id}`. Except for update requests, this field is output-only and should not be set by the user.", +"location": "path", +"pattern": "^pages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage" +}, +"response": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage" +}, +"scopes": [ +"https://www.googleapis.com/auth/factchecktools" +] +} +} +} +}, +"revision": "20240929", +"rootUrl": "https://factchecktools.googleapis.com/", +"schemas": { +"GoogleFactcheckingFactchecktoolsV1alpha1Claim": { +"description": "Information about the claim.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1Claim", +"properties": { +"claimDate": { +"description": "The date that the claim was made.", +"format": "google-datetime", +"type": "string" +}, +"claimReview": { +"description": "One or more reviews of this claim (namely, a fact-checking article).", +"items": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReview" +}, +"type": "array" +}, +"claimant": { +"description": "A person or organization stating the claim. For instance, \"John Doe\".", +"type": "string" +}, +"text": { +"description": "The claim text. For instance, \"Crime has doubled in the last 2 years.\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor": { +"description": "Information about the claim author.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor", +"properties": { +"imageUrl": { +"description": "Corresponds to `ClaimReview.itemReviewed.author.image`.", +"type": "string" +}, +"jobTitle": { +"description": "Corresponds to `ClaimReview.itemReviewed.author.jobTitle`.", +"type": "string" +}, +"name": { +"description": "A person or organization stating the claim. For instance, \"John Doe\". Corresponds to `ClaimReview.itemReviewed.author.name`.", +"type": "string" +}, +"sameAs": { +"description": "Corresponds to `ClaimReview.itemReviewed.author.sameAs`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ClaimRating": { +"description": "Information about the claim rating.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimRating", +"properties": { +"bestRating": { +"description": "For numeric ratings, the best value possible in the scale from worst to best. Corresponds to `ClaimReview.reviewRating.bestRating`.", +"format": "int32", +"type": "integer" +}, +"imageUrl": { +"description": "Corresponds to `ClaimReview.reviewRating.image`.", +"type": "string" +}, +"ratingExplanation": { +"description": "Corresponds to `ClaimReview.reviewRating.ratingExplanation`.", +"type": "string" +}, +"ratingValue": { +"description": "A numeric rating of this claim, in the range worstRating \u2014 bestRating inclusive. Corresponds to `ClaimReview.reviewRating.ratingValue`.", +"format": "int32", +"type": "integer" +}, +"textualRating": { +"description": "The truthfulness rating as a human-readible short word or phrase. Corresponds to `ClaimReview.reviewRating.alternateName`.", +"type": "string" +}, +"worstRating": { +"description": "For numeric ratings, the worst value possible in the scale from worst to best. Corresponds to `ClaimReview.reviewRating.worstRating`.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ClaimReview": { +"description": "Information about a claim review.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReview", +"properties": { +"languageCode": { +"description": "The language this review was written in. For instance, \"en\" or \"de\".", +"type": "string" +}, +"publisher": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1Publisher", +"description": "The publisher of this claim review." +}, +"reviewDate": { +"description": "The date the claim was reviewed.", +"format": "google-datetime", +"type": "string" +}, +"textualRating": { +"description": "Textual rating. For instance, \"Mostly false\".", +"type": "string" +}, +"title": { +"description": "The title of this claim review, if it can be determined.", +"type": "string" +}, +"url": { +"description": "The URL of this claim review.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor": { +"description": "Information about the claim review author.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor", +"properties": { +"imageUrl": { +"description": "Corresponds to `ClaimReview.author.image`.", +"type": "string" +}, +"name": { +"description": "Name of the organization that is publishing the fact check. Corresponds to `ClaimReview.author.name`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkup": { +"description": "Fields for an individual `ClaimReview` element. Except for sub-messages that group fields together, each of these fields correspond those in https://schema.org/ClaimReview. We list the precise mapping for each field.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkup", +"properties": { +"claimAppearances": { +"description": "A list of links to works in which this claim appears, aside from the one specified in `claim_first_appearance`. Corresponds to `ClaimReview.itemReviewed[@type=Claim].appearance.url`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"claimAuthor": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor", +"description": "Info about the author of this claim." +}, +"claimDate": { +"description": "The date when the claim was made or entered public discourse. Corresponds to `ClaimReview.itemReviewed.datePublished`.", +"type": "string" +}, +"claimFirstAppearance": { +"description": "A link to a work in which this claim first appears. Corresponds to `ClaimReview.itemReviewed[@type=Claim].firstAppearance.url`.", +"type": "string" +}, +"claimLocation": { +"description": "The location where this claim was made. Corresponds to `ClaimReview.itemReviewed.name`.", +"type": "string" +}, +"claimReviewed": { +"description": "A short summary of the claim being evaluated. Corresponds to `ClaimReview.claimReviewed`.", +"type": "string" +}, +"rating": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimRating", +"description": "Info about the rating of this claim review." +}, +"url": { +"description": "This field is optional, and will default to the page URL. We provide this field to allow you the override the default value, but the only permitted override is the page URL plus an optional anchor link (\"page jump\"). Corresponds to `ClaimReview.url`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage": { +"description": "Holds one or more instances of `ClaimReview` markup for a webpage.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage", +"properties": { +"claimReviewAuthor": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor", +"description": "Info about the author of this claim review. Similar to the above, semantically these are page-level fields, and each `ClaimReview` on this page will contain the same values." +}, +"claimReviewMarkups": { +"description": "A list of individual claim reviews for this page. Each item in the list corresponds to one `ClaimReview` element.", +"items": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkup" +}, +"type": "array" +}, +"name": { +"description": "The name of this `ClaimReview` markup page resource, in the form of `pages/{page_id}`. Except for update requests, this field is output-only and should not be set by the user.", +"type": "string" +}, +"pageUrl": { +"description": "The URL of the page associated with this `ClaimReview` markup. While every individual `ClaimReview` has its own URL field, semantically this is a page-level field, and each `ClaimReview` on this page will use this value unless individually overridden. Corresponds to `ClaimReview.url`", +"type": "string" +}, +"publishDate": { +"description": "The date when the fact check was published. Similar to the URL, semantically this is a page-level field, and each `ClaimReview` on this page will contain the same value. Corresponds to `ClaimReview.datePublished`", +"type": "string" +}, +"versionId": { +"description": "The version ID for this markup. Except for update requests, this field is output-only and should not be set by the user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponse": { +"description": "Response from searching fact-checked claims by image.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponse", +"properties": { +"nextPageToken": { +"description": "The next pagination token in the Search response. It should be used as the `page_token` for the following request. An empty value means no more results.", +"type": "string" +}, +"results": { +"description": "The list of claims and all of their associated information.", +"items": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponseResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponseResult": { +"description": "A claim and its associated information.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponseResult", +"properties": { +"claim": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1Claim", +"description": "A claim which matched the query." +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse": { +"description": "Response from searching fact-checked claims.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse", +"properties": { +"claims": { +"description": "The list of claims and all of their associated information.", +"items": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1Claim" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next pagination token in the Search response. It should be used as the `page_token` for the following request. An empty value means no more results.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1ListClaimReviewMarkupPagesResponse": { +"description": "Response from listing `ClaimReview` markup.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1ListClaimReviewMarkupPagesResponse", +"properties": { +"claimReviewMarkupPages": { +"description": "The result list of pages of `ClaimReview` markup.", +"items": { +"$ref": "GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next pagination token in the Search response. It should be used as the `page_token` for the following request. An empty value means no more results.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFactcheckingFactchecktoolsV1alpha1Publisher": { +"description": "Information about the publisher.", +"id": "GoogleFactcheckingFactchecktoolsV1alpha1Publisher", +"properties": { +"name": { +"description": "The name of this publisher. For instance, \"Awesome Fact Checks\".", +"type": "string" +}, +"site": { +"description": "Host-level site name, without the protocol or \"www\" prefix. For instance, \"awesomefactchecks.com\". This value of this field is based purely on the claim review URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Fact Check Tools API", +"version": "v1alpha1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/games.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/games.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..6523882599bafff12fca4d783aa4ec20c522adf0 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/games.v1.json @@ -0,0 +1,3627 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/androidpublisher": { +"description": "View and manage your Google Play Developer account" +}, +"https://www.googleapis.com/auth/drive.appdata": { +"description": "See, create, and delete its own configuration data in your Google Drive" +}, +"https://www.googleapis.com/auth/games": { +"description": "Create, edit, and delete your Google Play Games activity" +} +} +} +}, +"basePath": "", +"baseUrl": "https://games.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Games", +"description": "The Google Play Games Service allows developers to enhance games with social leaderboards, achievements, game state, sign-in with Google, and more.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/games/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "games:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://games.mtls.googleapis.com/", +"name": "games", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accesstokens": { +"methods": { +"generatePlayGroupingApiToken": { +"description": "Generates a Play Grouping API token for the PGS user identified by the attached credential.", +"flatPath": "games/v1/accesstokens/generatePlayGroupingApiToken", +"httpMethod": "POST", +"id": "games.accesstokens.generatePlayGroupingApiToken", +"parameterOrder": [], +"parameters": { +"packageName": { +"description": "Required. App package name to generate the token for (e.g. com.example.mygame).", +"location": "query", +"type": "string" +}, +"persona": { +"description": "Required. Persona to associate with the token. Persona is a developer-provided stable identifier of the user. Must be deterministically generated (e.g. as a one-way hash) from the user account ID and user profile ID (if the app has the concept), according to the developer's own user identity system.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/accesstokens/generatePlayGroupingApiToken", +"response": { +"$ref": "GeneratePlayGroupingApiTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"generateRecallPlayGroupingApiToken": { +"description": "Generates a Play Grouping API token for the PGS user identified by the Recall session ID provided in the request.", +"flatPath": "games/v1/accesstokens/generateRecallPlayGroupingApiToken", +"httpMethod": "POST", +"id": "games.accesstokens.generateRecallPlayGroupingApiToken", +"parameterOrder": [], +"parameters": { +"packageName": { +"description": "Required. App package name to generate the token for (e.g. com.example.mygame).", +"location": "query", +"type": "string" +}, +"persona": { +"description": "Required. Persona to associate with the token. Persona is a developer-provided stable identifier of the user. Must be deterministically generated (e.g. as a one-way hash) from the user account ID and user profile ID (if the app has the concept), according to the developer's own user identity system.", +"location": "query", +"type": "string" +}, +"recallSessionId": { +"description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application. See https://developer.android.com/games/pgs/recall/recall-setup on how to integrate with Recall and get session ID.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/accesstokens/generateRecallPlayGroupingApiToken", +"response": { +"$ref": "GenerateRecallPlayGroupingApiTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"achievementDefinitions": { +"methods": { +"list": { +"description": "Lists all the achievement definitions for your application.", +"flatPath": "games/v1/achievements", +"httpMethod": "GET", +"id": "games.achievementDefinitions.list", +"parameterOrder": [], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/achievements", +"response": { +"$ref": "AchievementDefinitionsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"achievements": { +"methods": { +"increment": { +"description": "Increments the steps of the achievement with the given ID for the currently authenticated player.", +"flatPath": "games/v1/achievements/{achievementId}/increment", +"httpMethod": "POST", +"id": "games.achievements.increment", +"parameterOrder": [ +"achievementId", +"stepsToIncrement" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.", +"format": "int64", +"location": "query", +"type": "string" +}, +"stepsToIncrement": { +"description": "Required. The number of steps to increment.", +"format": "int32", +"location": "query", +"required": true, +"type": "integer" +} +}, +"path": "games/v1/achievements/{achievementId}/increment", +"response": { +"$ref": "AchievementIncrementResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"list": { +"description": "Lists the progress for all your application's achievements for the currently authenticated player.", +"flatPath": "games/v1/players/{playerId}/achievements", +"httpMethod": "GET", +"id": "games.achievements.list", +"parameterOrder": [ +"playerId" +], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"playerId": { +"description": "A player ID. A value of `me` may be used in place of the authenticated player's ID.", +"location": "path", +"required": true, +"type": "string" +}, +"state": { +"description": "Tells the server to return only achievements with the specified state. If this parameter isn't specified, all achievements are returned.", +"enum": [ +"ALL", +"HIDDEN", +"REVEALED", +"UNLOCKED" +], +"enumDescriptions": [ +"List all achievements. This is the default.", +"List only hidden achievements.", +"List only revealed achievements.", +"List only unlocked achievements." +], +"location": "query", +"type": "string" +} +}, +"path": "games/v1/players/{playerId}/achievements", +"response": { +"$ref": "PlayerAchievementListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"reveal": { +"description": "Sets the state of the achievement with the given ID to `REVEALED` for the currently authenticated player.", +"flatPath": "games/v1/achievements/{achievementId}/reveal", +"httpMethod": "POST", +"id": "games.achievements.reveal", +"parameterOrder": [ +"achievementId" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/achievements/{achievementId}/reveal", +"response": { +"$ref": "AchievementRevealResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"setStepsAtLeast": { +"description": "Sets the steps for the currently authenticated player towards unlocking an achievement. If the steps parameter is less than the current number of steps that the player already gained for the achievement, the achievement is not modified.", +"flatPath": "games/v1/achievements/{achievementId}/setStepsAtLeast", +"httpMethod": "POST", +"id": "games.achievements.setStepsAtLeast", +"parameterOrder": [ +"achievementId", +"steps" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +}, +"steps": { +"description": "Required. The minimum value to set the steps to.", +"format": "int32", +"location": "query", +"required": true, +"type": "integer" +} +}, +"path": "games/v1/achievements/{achievementId}/setStepsAtLeast", +"response": { +"$ref": "AchievementSetStepsAtLeastResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"unlock": { +"description": "Unlocks this achievement for the currently authenticated player.", +"flatPath": "games/v1/achievements/{achievementId}/unlock", +"httpMethod": "POST", +"id": "games.achievements.unlock", +"parameterOrder": [ +"achievementId" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/achievements/{achievementId}/unlock", +"response": { +"$ref": "AchievementUnlockResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"updateMultiple": { +"description": "Updates multiple achievements for the currently authenticated player.", +"flatPath": "games/v1/achievements/updateMultiple", +"httpMethod": "POST", +"id": "games.achievements.updateMultiple", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/achievements/updateMultiple", +"request": { +"$ref": "AchievementUpdateMultipleRequest" +}, +"response": { +"$ref": "AchievementUpdateMultipleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"applications": { +"methods": { +"get": { +"description": "Retrieves the metadata of the application with the given ID. If the requested application is not available for the specified `platformType`, the returned response will not include any instance data.", +"flatPath": "games/v1/applications/{applicationId}", +"httpMethod": "GET", +"id": "games.applications.get", +"parameterOrder": [ +"applicationId" +], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"platformType": { +"description": "Restrict application details returned to the specific platform.", +"enum": [ +"ANDROID", +"IOS", +"WEB_APP" +], +"enumDescriptions": [ +"Retrieve applications that can be played on Android.", +"Retrieve applications that can be played on iOS.", +"Retrieve applications that can be played on desktop web." +], +"location": "query", +"type": "string" +} +}, +"path": "games/v1/applications/{applicationId}", +"response": { +"$ref": "Application" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"getEndPoint": { +"description": "Returns a URL for the requested end point type.", +"flatPath": "games/v1/applications/getEndPoint", +"httpMethod": "POST", +"id": "games.applications.getEndPoint", +"parameterOrder": [], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "query", +"type": "string" +}, +"endPointType": { +"description": "Type of endpoint being requested.", +"enum": [ +"PROFILE_CREATION", +"PROFILE_SETTINGS" +], +"enumDescriptions": [ +"Request a URL to create a new profile.", +"Request a URL for the Settings view." +], +"location": "query", +"type": "string" +} +}, +"path": "games/v1/applications/getEndPoint", +"response": { +"$ref": "EndPoint" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"played": { +"description": "Indicate that the currently authenticated user is playing your application.", +"flatPath": "games/v1/applications/played", +"httpMethod": "POST", +"id": "games.applications.played", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/applications/played", +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"verify": { +"description": "Verifies the auth token provided with this request is for the application with the specified ID, and returns the ID of the player it was granted for.", +"flatPath": "games/v1/applications/{applicationId}/verify", +"httpMethod": "GET", +"id": "games.applications.verify", +"parameterOrder": [ +"applicationId" +], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/applications/{applicationId}/verify", +"response": { +"$ref": "ApplicationVerifyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"events": { +"methods": { +"listByPlayer": { +"description": "Returns a list showing the current progress on events in this application for the currently authenticated user.", +"flatPath": "games/v1/events", +"httpMethod": "GET", +"id": "games.events.listByPlayer", +"parameterOrder": [], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of events to return in the response, used for paging. For any response, the actual number of events to return may be less than the specified maxResults.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/events", +"response": { +"$ref": "PlayerEventListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"listDefinitions": { +"description": "Returns a list of the event definitions in this application.", +"flatPath": "games/v1/eventDefinitions", +"httpMethod": "GET", +"id": "games.events.listDefinitions", +"parameterOrder": [], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of event definitions to return in the response, used for paging. For any response, the actual number of event definitions to return may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/eventDefinitions", +"response": { +"$ref": "EventDefinitionListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"record": { +"description": "Records a batch of changes to the number of times events have occurred for the currently authenticated user of this application.", +"flatPath": "games/v1/events", +"httpMethod": "POST", +"id": "games.events.record", +"parameterOrder": [], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/events", +"request": { +"$ref": "EventRecordRequest" +}, +"response": { +"$ref": "EventUpdateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"leaderboards": { +"methods": { +"get": { +"description": "Retrieves the metadata of the leaderboard with the given ID.", +"flatPath": "games/v1/leaderboards/{leaderboardId}", +"httpMethod": "GET", +"id": "games.leaderboards.get", +"parameterOrder": [ +"leaderboardId" +], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/leaderboards/{leaderboardId}", +"response": { +"$ref": "Leaderboard" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"list": { +"description": "Lists all the leaderboard metadata for your application.", +"flatPath": "games/v1/leaderboards", +"httpMethod": "GET", +"id": "games.leaderboards.list", +"parameterOrder": [], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of leaderboards to return in the response. For any response, the actual number of leaderboards returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/leaderboards", +"response": { +"$ref": "LeaderboardListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"metagame": { +"methods": { +"getMetagameConfig": { +"description": "Return the metagame configuration data for the calling application.", +"flatPath": "games/v1/metagameConfig", +"httpMethod": "GET", +"id": "games.metagame.getMetagameConfig", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/metagameConfig", +"response": { +"$ref": "MetagameConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"listCategoriesByPlayer": { +"description": "List play data aggregated per category for the player corresponding to `playerId`.", +"flatPath": "games/v1/players/{playerId}/categories/{collection}", +"httpMethod": "GET", +"id": "games.metagame.listCategoriesByPlayer", +"parameterOrder": [ +"playerId", +"collection" +], +"parameters": { +"collection": { +"description": "The collection of categories for which data will be returned.", +"enum": [ +"ALL" +], +"enumDescriptions": [ +"Retrieve data for all categories. This is the default." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of category resources to return in the response, used for paging. For any response, the actual number of category resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"playerId": { +"description": "A player ID. A value of `me` may be used in place of the authenticated player's ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/players/{playerId}/categories/{collection}", +"response": { +"$ref": "CategoryListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"players": { +"methods": { +"get": { +"description": "Retrieves the Player resource with the given ID. To retrieve the player for the currently authenticated user, set `playerId` to `me`.", +"flatPath": "games/v1/players/{playerId}", +"httpMethod": "GET", +"id": "games.players.get", +"parameterOrder": [ +"playerId" +], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"playerId": { +"description": "A player ID. A value of `me` may be used in place of the authenticated player's ID.", +"location": "path", +"required": true, +"type": "string" +}, +"playerIdConsistencyToken": { +"description": "Consistency token of the player id. The call returns a 'not found' result when the token is present and invalid. Empty value is ignored. See also GlobalPlayerIdConsistencyTokenProto", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/players/{playerId}", +"response": { +"$ref": "Player" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"getMultipleApplicationPlayerIds": { +"description": "Get the application player ids for the currently authenticated player across all requested games by the same developer as the calling application. This will only return ids for players that actually have an id (scoped or otherwise) with that game.", +"flatPath": "games/v1/players/me/multipleApplicationPlayerIds", +"httpMethod": "GET", +"id": "games.players.getMultipleApplicationPlayerIds", +"parameterOrder": [], +"parameters": { +"applicationIds": { +"description": "Required. The application IDs from the Google Play developer console for the games to return scoped ids for.", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "games/v1/players/me/multipleApplicationPlayerIds", +"response": { +"$ref": "GetMultipleApplicationPlayerIdsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"getScopedPlayerIds": { +"description": "Retrieves scoped player identifiers for currently authenticated user.", +"flatPath": "games/v1/players/me/scopedIds", +"httpMethod": "GET", +"id": "games.players.getScopedPlayerIds", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/players/me/scopedIds", +"response": { +"$ref": "ScopedPlayerIds" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"list": { +"description": "Get the collection of players for the currently authenticated user.", +"flatPath": "games/v1/players/me/players/{collection}", +"httpMethod": "GET", +"id": "games.players.list", +"parameterOrder": [ +"collection" +], +"parameters": { +"collection": { +"description": "Collection of players being retrieved", +"enum": [ +"CONNECTED", +"VISIBLE", +"FRIENDS_ALL" +], +"enumDeprecated": [ +true, +true, +false +], +"enumDescriptions": [ +"Retrieve a list of players that are also playing this game in reverse chronological order.", +"Retrieve a list of players in the user's social graph that are visible to this game.", +"Retrieve a list of players who are friends of the user in alphabetical order." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of player resources to return in the response, used for paging. For any response, the actual number of player resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/players/me/players/{collection}", +"response": { +"$ref": "PlayerListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"recall": { +"methods": { +"gamesPlayerTokens": { +"description": "Retrieve the Recall tokens from all requested games that is associated with the PGS Player encoded in the provided recall session id. The API is only available for users that have an active PGS Player profile.", +"flatPath": "games/v1/recall/gamesPlayerTokens/{sessionId}", +"httpMethod": "GET", +"id": "games.recall.gamesPlayerTokens", +"parameterOrder": [ +"sessionId" +], +"parameters": { +"applicationIds": { +"description": "Required. The application IDs from the Google Play developer console for the games to return scoped ids for.", +"location": "query", +"repeated": true, +"type": "string" +}, +"sessionId": { +"description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/recall/gamesPlayerTokens/{sessionId}", +"response": { +"$ref": "RetrieveGamesPlayerTokensResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"lastTokenFromAllDeveloperGames": { +"description": "Retrieve the last Recall token from all developer games that is associated with the PGS Player encoded in the provided recall session id. The API is only available for users that have active PGS Player profile.", +"flatPath": "games/v1/recall/developerGamesLastPlayerToken/{sessionId}", +"httpMethod": "GET", +"id": "games.recall.lastTokenFromAllDeveloperGames", +"parameterOrder": [ +"sessionId" +], +"parameters": { +"sessionId": { +"description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/recall/developerGamesLastPlayerToken/{sessionId}", +"response": { +"$ref": "RetrieveDeveloperGamesLastPlayerTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"linkPersona": { +"description": "Associate the PGS Player principal encoded in the provided recall session id with an in-game account", +"flatPath": "games/v1/recall:linkPersona", +"httpMethod": "POST", +"id": "games.recall.linkPersona", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/recall:linkPersona", +"request": { +"$ref": "LinkPersonaRequest" +}, +"response": { +"$ref": "LinkPersonaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"resetPersona": { +"description": "Delete all Recall tokens linking the given persona to any player (with or without a profile).", +"flatPath": "games/v1/recall:resetPersona", +"httpMethod": "POST", +"id": "games.recall.resetPersona", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/recall:resetPersona", +"request": { +"$ref": "ResetPersonaRequest" +}, +"response": { +"$ref": "ResetPersonaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"retrieveTokens": { +"description": "Retrieve all Recall tokens associated with the PGS Player encoded in the provided recall session id. The API is only available for users that have active PGS Player profile.", +"flatPath": "games/v1/recall/tokens/{sessionId}", +"httpMethod": "GET", +"id": "games.recall.retrieveTokens", +"parameterOrder": [ +"sessionId" +], +"parameters": { +"sessionId": { +"description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/recall/tokens/{sessionId}", +"response": { +"$ref": "RetrievePlayerTokensResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"unlinkPersona": { +"description": "Delete a Recall token linking the PGS Player principal identified by the Recall session and an in-game account identified either by the 'persona' or by the token value.", +"flatPath": "games/v1/recall:unlinkPersona", +"httpMethod": "POST", +"id": "games.recall.unlinkPersona", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/recall:unlinkPersona", +"request": { +"$ref": "UnlinkPersonaRequest" +}, +"response": { +"$ref": "UnlinkPersonaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"revisions": { +"methods": { +"check": { +"description": "Checks whether the games client is out of date.", +"flatPath": "games/v1/revisions/check", +"httpMethod": "GET", +"id": "games.revisions.check", +"parameterOrder": [ +"clientRevision" +], +"parameters": { +"clientRevision": { +"description": "Required. The revision of the client SDK used by your application. Format: `[PLATFORM_TYPE]:[VERSION_NUMBER]`. Possible values of `PLATFORM_TYPE` are: * `ANDROID` - Client is running the Android SDK. * `IOS` - Client is running the iOS SDK. * `WEB_APP` - Client is running as a Web App.", +"location": "query", +"required": true, +"type": "string" +} +}, +"path": "games/v1/revisions/check", +"response": { +"$ref": "RevisionCheckResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"scores": { +"methods": { +"get": { +"description": "Get high scores, and optionally ranks, in leaderboards for the currently authenticated player. For a specific time span, `leaderboardId` can be set to `ALL` to retrieve data for all leaderboards in a given time span. `NOTE: You cannot ask for 'ALL' leaderboards and 'ALL' timeSpans in the same request; only one parameter may be set to 'ALL'.", +"flatPath": "games/v1/players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}", +"httpMethod": "GET", +"id": "games.scores.get", +"parameterOrder": [ +"playerId", +"leaderboardId", +"timeSpan" +], +"parameters": { +"includeRankType": { +"description": "The types of ranks to return. If the parameter is omitted, no ranks will be returned.", +"enum": [ +"ALL", +"PUBLIC", +"SOCIAL", +"FRIENDS" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"Retrieve all supported ranks. In HTTP, this parameter value can also be specified as `ALL`.", +"Retrieve public ranks, if the player is sharing their gameplay activity publicly.", +"(Obsolete) Retrieve the social rank.", +"Retrieve the rank on the friends collection." +], +"location": "query", +"type": "string" +}, +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"leaderboardId": { +"description": "The ID of the leaderboard. Can be set to 'ALL' to retrieve data for all leaderboards for this application.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"playerId": { +"description": "A player ID. A value of `me` may be used in place of the authenticated player's ID.", +"location": "path", +"required": true, +"type": "string" +}, +"timeSpan": { +"description": "The time span for the scores and ranks you're requesting.", +"enum": [ +"ALL", +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"Get the high scores for all time spans. If this is used, maxResults values will be ignored.", +"Get the all time high score.", +"List the top scores for the current day.", +"List the top scores for the current week." +], +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}", +"response": { +"$ref": "PlayerLeaderboardScoreListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"list": { +"description": "Lists the scores in a leaderboard, starting from the top.", +"flatPath": "games/v1/leaderboards/{leaderboardId}/scores/{collection}", +"httpMethod": "GET", +"id": "games.scores.list", +"parameterOrder": [ +"leaderboardId", +"collection", +"timeSpan" +], +"parameters": { +"collection": { +"description": "The collection of scores you're requesting.", +"enum": [ +"PUBLIC", +"SOCIAL", +"FRIENDS" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"List all scores in the public leaderboard.", +"(Obsolete) Legacy G+ social scores.", +"List only scores of friends." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"timeSpan": { +"description": "Required. The time span for the scores and ranks you're requesting.", +"enum": [ +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"The score is an all-time score.", +"The score is a weekly score.", +"The score is a daily score." +], +"location": "query", +"required": true, +"type": "string" +} +}, +"path": "games/v1/leaderboards/{leaderboardId}/scores/{collection}", +"response": { +"$ref": "LeaderboardScores" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"listWindow": { +"description": "Lists the scores in a leaderboard around (and including) a player's score.", +"flatPath": "games/v1/leaderboards/{leaderboardId}/window/{collection}", +"httpMethod": "GET", +"id": "games.scores.listWindow", +"parameterOrder": [ +"leaderboardId", +"collection", +"timeSpan" +], +"parameters": { +"collection": { +"description": "The collection of scores you're requesting.", +"enum": [ +"PUBLIC", +"SOCIAL", +"FRIENDS" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"List all scores in the public leaderboard.", +"(Obsolete) Legacy G+ social scores.", +"List only scores of friends." +], +"location": "path", +"required": true, +"type": "string" +}, +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"resultsAbove": { +"description": "The preferred number of scores to return above the player's score. More scores may be returned if the player is at the bottom of the leaderboard; fewer may be returned if the player is at the top. Must be less than or equal to maxResults.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"returnTopIfAbsent": { +"description": "True if the top scores should be returned when the player is not in the leaderboard. Defaults to true.", +"location": "query", +"type": "boolean" +}, +"timeSpan": { +"description": "Required. The time span for the scores and ranks you're requesting.", +"enum": [ +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"The score is an all-time score.", +"The score is a weekly score.", +"The score is a daily score." +], +"location": "query", +"required": true, +"type": "string" +} +}, +"path": "games/v1/leaderboards/{leaderboardId}/window/{collection}", +"response": { +"$ref": "LeaderboardScores" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"submit": { +"description": "Submits a score to the specified leaderboard.", +"flatPath": "games/v1/leaderboards/{leaderboardId}/scores", +"httpMethod": "POST", +"id": "games.scores.submit", +"parameterOrder": [ +"leaderboardId", +"score" +], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +}, +"score": { +"description": "Required. The score you're submitting. The submitted score is ignored if it is worse than a previously submitted score, where worse depends on the leaderboard sort order. The meaning of the score value depends on the leaderboard format type. For fixed-point, the score represents the raw value. For time, the score represents elapsed time in milliseconds. For currency, the score represents a value in micro units.", +"format": "int64", +"location": "query", +"required": true, +"type": "string" +}, +"scoreTag": { +"description": "Additional information about the score you're submitting. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", +"location": "query", +"pattern": "[a-zA-Z0-9-._~]{0,64}", +"type": "string" +} +}, +"path": "games/v1/leaderboards/{leaderboardId}/scores", +"response": { +"$ref": "PlayerScoreResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +}, +"submitMultiple": { +"description": "Submits multiple scores to leaderboards.", +"flatPath": "games/v1/leaderboards/scores", +"httpMethod": "POST", +"id": "games.scores.submitMultiple", +"parameterOrder": [], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1/leaderboards/scores", +"request": { +"$ref": "PlayerScoreSubmissionList" +}, +"response": { +"$ref": "PlayerScoreListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +}, +"snapshots": { +"methods": { +"get": { +"description": "Retrieves the metadata for a given snapshot ID.", +"flatPath": "games/v1/snapshots/{snapshotId}", +"httpMethod": "GET", +"id": "games.snapshots.get", +"parameterOrder": [ +"snapshotId" +], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"snapshotId": { +"description": "The ID of the snapshot.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/snapshots/{snapshotId}", +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive.appdata", +"https://www.googleapis.com/auth/games" +] +}, +"list": { +"description": "Retrieves a list of snapshots created by your application for the player corresponding to the player ID.", +"flatPath": "games/v1/players/{playerId}/snapshots", +"httpMethod": "GET", +"id": "games.snapshots.list", +"parameterOrder": [ +"playerId" +], +"parameters": { +"language": { +"description": "The preferred language to use for strings returned by this method.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of snapshot resources to return in the response, used for paging. For any response, the actual number of snapshot resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"playerId": { +"description": "A player ID. A value of `me` may be used in place of the authenticated player's ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1/players/{playerId}/snapshots", +"response": { +"$ref": "SnapshotListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive.appdata", +"https://www.googleapis.com/auth/games" +] +} +} +}, +"stats": { +"methods": { +"get": { +"description": "Returns engagement and spend statistics in this application for the currently authenticated user.", +"flatPath": "games/v1/stats", +"httpMethod": "GET", +"id": "games.stats.get", +"parameterOrder": [], +"parameters": {}, +"path": "games/v1/stats", +"response": { +"$ref": "StatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/games" +] +} +} +} +}, +"revision": "20241209", +"rootUrl": "https://games.googleapis.com/", +"schemas": { +"AchievementDefinition": { +"description": "An achievement definition object.", +"id": "AchievementDefinition", +"properties": { +"achievementType": { +"description": "The type of the achievement.", +"enum": [ +"STANDARD", +"INCREMENTAL" +], +"enumDescriptions": [ +"Achievement is either locked or unlocked.", +"Achievement is incremental." +], +"type": "string" +}, +"description": { +"description": "The description of the achievement.", +"type": "string" +}, +"experiencePoints": { +"description": "Experience points which will be earned when unlocking this achievement.", +"format": "int64", +"type": "string" +}, +"formattedTotalSteps": { +"description": "The total steps for an incremental achievement as a string.", +"type": "string" +}, +"id": { +"description": "The ID of the achievement.", +"type": "string" +}, +"initialState": { +"description": "The initial state of the achievement.", +"enum": [ +"HIDDEN", +"REVEALED", +"UNLOCKED" +], +"enumDescriptions": [ +"Achievement is hidden.", +"Achievement is revealed.", +"Achievement is unlocked." +], +"type": "string" +}, +"isRevealedIconUrlDefault": { +"description": "Indicates whether the revealed icon image being returned is a default image, or is provided by the game.", +"type": "boolean" +}, +"isUnlockedIconUrlDefault": { +"description": "Indicates whether the unlocked icon image being returned is a default image, or is game-provided.", +"type": "boolean" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementDefinition`.", +"type": "string" +}, +"name": { +"description": "The name of the achievement.", +"type": "string" +}, +"revealedIconUrl": { +"description": "The image URL for the revealed achievement icon.", +"type": "string" +}, +"totalSteps": { +"description": "The total steps for an incremental achievement.", +"format": "int32", +"type": "integer" +}, +"unlockedIconUrl": { +"description": "The image URL for the unlocked achievement icon.", +"type": "string" +} +}, +"type": "object" +}, +"AchievementDefinitionsListResponse": { +"description": "A list of achievement definition objects.", +"id": "AchievementDefinitionsListResponse", +"properties": { +"items": { +"description": "The achievement definitions.", +"items": { +"$ref": "AchievementDefinition" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementDefinitionsListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token corresponding to the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"AchievementIncrementResponse": { +"description": "An achievement increment response", +"id": "AchievementIncrementResponse", +"properties": { +"currentSteps": { +"description": "The current steps recorded for this incremental achievement.", +"format": "int32", +"type": "integer" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementIncrementResponse`.", +"type": "string" +}, +"newlyUnlocked": { +"description": "Whether the current steps for the achievement has reached the number of steps required to unlock.", +"type": "boolean" +} +}, +"type": "object" +}, +"AchievementRevealResponse": { +"description": "An achievement reveal response", +"id": "AchievementRevealResponse", +"properties": { +"currentState": { +"description": "The current state of the achievement for which a reveal was attempted. This might be `UNLOCKED` if the achievement was already unlocked.", +"enum": [ +"REVEALED", +"UNLOCKED" +], +"enumDescriptions": [ +"Achievement is revealed.", +"Achievement is unlocked." +], +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementRevealResponse`.", +"type": "string" +} +}, +"type": "object" +}, +"AchievementSetStepsAtLeastResponse": { +"description": "An achievement set steps at least response.", +"id": "AchievementSetStepsAtLeastResponse", +"properties": { +"currentSteps": { +"description": "The current steps recorded for this incremental achievement.", +"format": "int32", +"type": "integer" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementSetStepsAtLeastResponse`.", +"type": "string" +}, +"newlyUnlocked": { +"description": "Whether the current steps for the achievement has reached the number of steps required to unlock.", +"type": "boolean" +} +}, +"type": "object" +}, +"AchievementUnlockResponse": { +"description": "An achievement unlock response", +"id": "AchievementUnlockResponse", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementUnlockResponse`.", +"type": "string" +}, +"newlyUnlocked": { +"description": "Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player).", +"type": "boolean" +} +}, +"type": "object" +}, +"AchievementUpdateMultipleRequest": { +"description": "A list of achievement update requests.", +"id": "AchievementUpdateMultipleRequest", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementUpdateMultipleRequest`.", +"type": "string" +}, +"updates": { +"description": "The individual achievement update requests.", +"items": { +"$ref": "AchievementUpdateRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"AchievementUpdateMultipleResponse": { +"description": "Response message for UpdateMultipleAchievements rpc.", +"id": "AchievementUpdateMultipleResponse", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementUpdateMultipleResponse`.", +"type": "string" +}, +"updatedAchievements": { +"description": "The updated state of the achievements.", +"items": { +"$ref": "AchievementUpdateResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"AchievementUpdateRequest": { +"description": "A request to update an achievement.", +"id": "AchievementUpdateRequest", +"properties": { +"achievementId": { +"description": "The achievement this update is being applied to.", +"type": "string" +}, +"incrementPayload": { +"$ref": "GamesAchievementIncrement", +"description": "The payload if an update of type `INCREMENT` was requested for the achievement." +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementUpdateRequest`.", +"type": "string" +}, +"setStepsAtLeastPayload": { +"$ref": "GamesAchievementSetStepsAtLeast", +"description": "The payload if an update of type `SET_STEPS_AT_LEAST` was requested for the achievement." +}, +"updateType": { +"description": "The type of update being applied.", +"enum": [ +"REVEAL", +"UNLOCK", +"INCREMENT", +"SET_STEPS_AT_LEAST" +], +"enumDescriptions": [ +"Achievement is revealed.", +"Achievement is unlocked.", +"Achievement is incremented.", +"Achievement progress is set to at least the passed value." +], +"type": "string" +} +}, +"type": "object" +}, +"AchievementUpdateResponse": { +"description": "An updated achievement.", +"id": "AchievementUpdateResponse", +"properties": { +"achievementId": { +"description": "The achievement this update is was applied to.", +"type": "string" +}, +"currentState": { +"description": "The current state of the achievement.", +"enum": [ +"HIDDEN", +"REVEALED", +"UNLOCKED" +], +"enumDescriptions": [ +"Achievement is hidden.", +"Achievement is revealed.", +"Achievement is unlocked." +], +"type": "string" +}, +"currentSteps": { +"description": "The current steps recorded for this achievement if it is incremental.", +"format": "int32", +"type": "integer" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#achievementUpdateResponse`.", +"type": "string" +}, +"newlyUnlocked": { +"description": "Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player).", +"type": "boolean" +}, +"updateOccurred": { +"description": "Whether the requested updates actually affected the achievement.", +"type": "boolean" +} +}, +"type": "object" +}, +"Application": { +"description": "The Application resource.", +"id": "Application", +"properties": { +"achievement_count": { +"description": "The number of achievements visible to the currently authenticated player.", +"format": "int32", +"type": "integer" +}, +"assets": { +"description": "The assets of the application.", +"items": { +"$ref": "ImageAsset" +}, +"type": "array" +}, +"author": { +"description": "The author of the application.", +"type": "string" +}, +"category": { +"$ref": "ApplicationCategory", +"description": "The category of the application." +}, +"description": { +"description": "The description of the application.", +"type": "string" +}, +"enabledFeatures": { +"description": "A list of features that have been enabled for the application.", +"items": { +"enum": [ +"SNAPSHOTS" +], +"enumDescriptions": [ +"Saved Games (snapshots)." +], +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "The ID of the application.", +"type": "string" +}, +"instances": { +"description": "The instances of the application.", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#application`.", +"type": "string" +}, +"lastUpdatedTimestamp": { +"description": "The last updated timestamp of the application.", +"format": "int64", +"type": "string" +}, +"leaderboard_count": { +"description": "The number of leaderboards visible to the currently authenticated player.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of the application.", +"type": "string" +}, +"themeColor": { +"description": "A hint to the client UI for what color to use as an app-themed color. The color is given as an RGB triplet (e.g. \"E0E0E0\").", +"type": "string" +} +}, +"type": "object" +}, +"ApplicationCategory": { +"description": "An application category object.", +"id": "ApplicationCategory", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#applicationCategory`.", +"type": "string" +}, +"primary": { +"description": "The primary category.", +"type": "string" +}, +"secondary": { +"description": "The secondary category.", +"type": "string" +} +}, +"type": "object" +}, +"ApplicationPlayerId": { +"description": "Primary scoped player identifier for an application.", +"id": "ApplicationPlayerId", +"properties": { +"applicationId": { +"description": "The application that this player identifier is for.", +"type": "string" +}, +"playerId": { +"description": "The player identifier for the application.", +"type": "string" +} +}, +"type": "object" +}, +"ApplicationVerifyResponse": { +"description": "A third party application verification response resource.", +"id": "ApplicationVerifyResponse", +"properties": { +"alternate_player_id": { +"description": "An alternate ID that was once used for the player that was issued the auth token used in this request. (This field is not normally populated.)", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#applicationVerifyResponse`.", +"type": "string" +}, +"player_id": { +"description": "The ID of the player that was issued the auth token used in this request.", +"type": "string" +} +}, +"type": "object" +}, +"Category": { +"description": "Data related to individual game categories.", +"id": "Category", +"properties": { +"category": { +"description": "The category name.", +"type": "string" +}, +"experiencePoints": { +"description": "Experience points earned in this category.", +"format": "int64", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#category`.", +"type": "string" +} +}, +"type": "object" +}, +"CategoryListResponse": { +"description": "A third party list metagame categories response.", +"id": "CategoryListResponse", +"properties": { +"items": { +"description": "The list of categories with usage data.", +"items": { +"$ref": "Category" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#categoryListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token corresponding to the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"EndPoint": { +"description": "Container for a URL end point of the requested type.", +"id": "EndPoint", +"properties": { +"url": { +"description": "A URL suitable for loading in a web browser for the requested endpoint.", +"type": "string" +} +}, +"type": "object" +}, +"EventBatchRecordFailure": { +"description": "A batch update failure resource.", +"id": "EventBatchRecordFailure", +"properties": { +"failureCause": { +"description": "The cause for the update failure.", +"enum": [ +"TOO_LARGE", +"TIME_PERIOD_EXPIRED", +"TIME_PERIOD_SHORT", +"TIME_PERIOD_LONG", +"ALREADY_UPDATED", +"RECORD_RATE_HIGH" +], +"enumDescriptions": [ +"A batch request was issued with more events than are allowed in a single batch.", +"A batch was sent with data too far in the past to record.", +"A batch was sent with a time range that was too short.", +"A batch was sent with a time range that was too long.", +"An attempt was made to record a batch of data which was already seen.", +"An attempt was made to record data faster than the server will apply updates." +], +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventBatchRecordFailure`.", +"type": "string" +}, +"range": { +"$ref": "EventPeriodRange", +"description": "The time range which was rejected; empty for a request-wide failure." +} +}, +"type": "object" +}, +"EventChild": { +"description": "An event child relationship resource.", +"id": "EventChild", +"properties": { +"childId": { +"description": "The ID of the child event.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventChild`.", +"type": "string" +} +}, +"type": "object" +}, +"EventDefinition": { +"description": "An event definition resource.", +"id": "EventDefinition", +"properties": { +"childEvents": { +"description": "A list of events that are a child of this event.", +"items": { +"$ref": "EventChild" +}, +"type": "array" +}, +"description": { +"description": "Description of what this event represents.", +"type": "string" +}, +"displayName": { +"description": "The name to display for the event.", +"type": "string" +}, +"id": { +"description": "The ID of the event.", +"type": "string" +}, +"imageUrl": { +"description": "The base URL for the image that represents the event.", +"type": "string" +}, +"isDefaultImageUrl": { +"description": "Indicates whether the icon image being returned is a default image, or is game-provided.", +"type": "boolean" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventDefinition`.", +"type": "string" +}, +"visibility": { +"description": "The visibility of event being tracked in this definition.", +"enum": [ +"REVEALED", +"HIDDEN" +], +"enumDescriptions": [ +"This event should be visible to all users.", +"This event should only be shown to users that have recorded this event at least once." +], +"type": "string" +} +}, +"type": "object" +}, +"EventDefinitionListResponse": { +"description": "A ListDefinitions response.", +"id": "EventDefinitionListResponse", +"properties": { +"items": { +"description": "The event definitions.", +"items": { +"$ref": "EventDefinition" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventDefinitionListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "The pagination token for the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"EventPeriodRange": { +"description": "An event period time range.", +"id": "EventPeriodRange", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventPeriodRange`.", +"type": "string" +}, +"periodEndMillis": { +"description": "The time when this update period ends, in millis, since 1970 UTC (Unix Epoch).", +"format": "int64", +"type": "string" +}, +"periodStartMillis": { +"description": "The time when this update period begins, in millis, since 1970 UTC (Unix Epoch).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EventPeriodUpdate": { +"description": "An event period update resource.", +"id": "EventPeriodUpdate", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventPeriodUpdate`.", +"type": "string" +}, +"timePeriod": { +"$ref": "EventPeriodRange", +"description": "The time period being covered by this update." +}, +"updates": { +"description": "The updates being made for this time period.", +"items": { +"$ref": "EventUpdateRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"EventRecordFailure": { +"description": "An event update failure resource.", +"id": "EventRecordFailure", +"properties": { +"eventId": { +"description": "The ID of the event that was not updated.", +"type": "string" +}, +"failureCause": { +"description": "The cause for the update failure.", +"enum": [ +"NOT_FOUND", +"INVALID_UPDATE_VALUE" +], +"enumDescriptions": [ +"An attempt was made to set an event that was not defined.", +"An attempt was made to increment an event by a non-positive value." +], +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventRecordFailure`.", +"type": "string" +} +}, +"type": "object" +}, +"EventRecordRequest": { +"description": "An event period update resource.", +"id": "EventRecordRequest", +"properties": { +"currentTimeMillis": { +"description": "The current time when this update was sent, in milliseconds, since 1970 UTC (Unix Epoch).", +"format": "int64", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventRecordRequest`.", +"type": "string" +}, +"requestId": { +"description": "The request ID used to identify this attempt to record events.", +"format": "int64", +"type": "string" +}, +"timePeriods": { +"description": "A list of the time period updates being made in this request.", +"items": { +"$ref": "EventPeriodUpdate" +}, +"type": "array" +} +}, +"type": "object" +}, +"EventUpdateRequest": { +"description": "An event period update resource.", +"id": "EventUpdateRequest", +"properties": { +"definitionId": { +"description": "The ID of the event being modified in this update.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventUpdateRequest`.", +"type": "string" +}, +"updateCount": { +"description": "The number of times this event occurred in this time period.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EventUpdateResponse": { +"description": "An event period update resource.", +"id": "EventUpdateResponse", +"properties": { +"batchFailures": { +"description": "Any batch-wide failures which occurred applying updates.", +"items": { +"$ref": "EventBatchRecordFailure" +}, +"type": "array" +}, +"eventFailures": { +"description": "Any failures updating a particular event.", +"items": { +"$ref": "EventRecordFailure" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#eventUpdateResponse`.", +"type": "string" +}, +"playerEvents": { +"description": "The current status of any updated events", +"items": { +"$ref": "PlayerEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GamePlayerToken": { +"description": "Recall tokens for a game.", +"id": "GamePlayerToken", +"properties": { +"applicationId": { +"description": "The application that this player identifier is for.", +"type": "string" +}, +"recallToken": { +"$ref": "RecallToken", +"description": "Recall token data." +} +}, +"type": "object" +}, +"GamesAchievementIncrement": { +"description": "The payload to request to increment an achievement.", +"id": "GamesAchievementIncrement", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#GamesAchievementIncrement`.", +"type": "string" +}, +"requestId": { +"description": "The requestId associated with an increment to an achievement.", +"format": "int64", +"type": "string" +}, +"steps": { +"description": "The number of steps to be incremented.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GamesAchievementSetStepsAtLeast": { +"description": "The payload to request to increment an achievement.", +"id": "GamesAchievementSetStepsAtLeast", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#GamesAchievementSetStepsAtLeast`.", +"type": "string" +}, +"steps": { +"description": "The minimum number of steps for the achievement to be set to.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GeneratePlayGroupingApiTokenResponse": { +"description": "Response for the GeneratePlayGroupingApiToken RPC.", +"id": "GeneratePlayGroupingApiTokenResponse", +"properties": { +"token": { +"$ref": "PlayGroupingApiToken", +"description": "Token for accessing the Play Grouping API." +} +}, +"type": "object" +}, +"GenerateRecallPlayGroupingApiTokenResponse": { +"description": "Response for the GenerateRecallPlayGroupingApiToken RPC.", +"id": "GenerateRecallPlayGroupingApiTokenResponse", +"properties": { +"token": { +"$ref": "PlayGroupingApiToken", +"description": "Token for accessing the Play Grouping API." +} +}, +"type": "object" +}, +"GetMultipleApplicationPlayerIdsResponse": { +"description": "Response message for GetMultipleApplicationPlayerIds rpc.", +"id": "GetMultipleApplicationPlayerIdsResponse", +"properties": { +"playerIds": { +"description": "Output only. The requested applications along with the scoped ids for tha player, if that player has an id for the application. If not, the application is not included in the response.", +"items": { +"$ref": "ApplicationPlayerId" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ImageAsset": { +"description": "An image asset object.", +"id": "ImageAsset", +"properties": { +"height": { +"description": "The height of the asset.", +"format": "int32", +"type": "integer" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#imageAsset`.", +"type": "string" +}, +"name": { +"description": "The name of the asset.", +"type": "string" +}, +"url": { +"description": "The URL of the asset.", +"type": "string" +}, +"width": { +"description": "The width of the asset.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Instance": { +"description": "The Instance resource.", +"id": "Instance", +"properties": { +"acquisitionUri": { +"description": "URI which shows where a user can acquire this instance.", +"type": "string" +}, +"androidInstance": { +"$ref": "InstanceAndroidDetails", +"description": "Platform dependent details for Android." +}, +"iosInstance": { +"$ref": "InstanceIosDetails", +"description": "Platform dependent details for iOS." +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#instance`.", +"type": "string" +}, +"name": { +"description": "Localized display name.", +"type": "string" +}, +"platformType": { +"description": "The platform type.", +"enum": [ +"ANDROID", +"IOS", +"WEB_APP" +], +"enumDescriptions": [ +"Instance is for Android.", +"Instance is for iOS.", +"Instance is for Web App." +], +"type": "string" +}, +"realtimePlay": { +"description": "Flag to show if this game instance supports realtime play.", +"type": "boolean" +}, +"turnBasedPlay": { +"description": "Flag to show if this game instance supports turn based play.", +"type": "boolean" +}, +"webInstance": { +"$ref": "InstanceWebDetails", +"description": "Platform dependent details for Web." +} +}, +"type": "object" +}, +"InstanceAndroidDetails": { +"description": "The Android instance details resource.", +"id": "InstanceAndroidDetails", +"properties": { +"enablePiracyCheck": { +"description": "Flag indicating whether the anti-piracy check is enabled.", +"type": "boolean" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#instanceAndroidDetails`.", +"type": "string" +}, +"packageName": { +"description": "Android package name which maps to Google Play URL.", +"type": "string" +}, +"preferred": { +"description": "Indicates that this instance is the default for new installations.", +"type": "boolean" +} +}, +"type": "object" +}, +"InstanceIosDetails": { +"description": "The iOS details resource.", +"id": "InstanceIosDetails", +"properties": { +"bundleIdentifier": { +"description": "Bundle identifier.", +"type": "string" +}, +"itunesAppId": { +"description": "iTunes App ID.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#instanceIosDetails`.", +"type": "string" +}, +"preferredForIpad": { +"description": "Indicates that this instance is the default for new installations on iPad devices.", +"type": "boolean" +}, +"preferredForIphone": { +"description": "Indicates that this instance is the default for new installations on iPhone devices.", +"type": "boolean" +}, +"supportIpad": { +"description": "Flag to indicate if this instance supports iPad.", +"type": "boolean" +}, +"supportIphone": { +"description": "Flag to indicate if this instance supports iPhone.", +"type": "boolean" +} +}, +"type": "object" +}, +"InstanceWebDetails": { +"description": "The Web details resource.", +"id": "InstanceWebDetails", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#instanceWebDetails`.", +"type": "string" +}, +"launchUrl": { +"description": "Launch URL for the game.", +"type": "string" +}, +"preferred": { +"description": "Indicates that this instance is the default for new installations.", +"type": "boolean" +} +}, +"type": "object" +}, +"Leaderboard": { +"description": "The Leaderboard resource.", +"id": "Leaderboard", +"properties": { +"iconUrl": { +"description": "The icon for the leaderboard.", +"type": "string" +}, +"id": { +"description": "The leaderboard ID.", +"type": "string" +}, +"isIconUrlDefault": { +"description": "Indicates whether the icon image being returned is a default image, or is game-provided.", +"type": "boolean" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#leaderboard`.", +"type": "string" +}, +"name": { +"description": "The name of the leaderboard.", +"type": "string" +}, +"order": { +"description": "How scores are ordered.", +"enum": [ +"LARGER_IS_BETTER", +"SMALLER_IS_BETTER" +], +"enumDescriptions": [ +"Larger values are better; scores are sorted in descending order", +"Smaller values are better; scores are sorted in ascending order" +], +"type": "string" +} +}, +"type": "object" +}, +"LeaderboardEntry": { +"description": "The Leaderboard Entry resource.", +"id": "LeaderboardEntry", +"properties": { +"formattedScore": { +"description": "The localized string for the numerical value of this score.", +"type": "string" +}, +"formattedScoreRank": { +"description": "The localized string for the rank of this score for this leaderboard.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#leaderboardEntry`.", +"type": "string" +}, +"player": { +"$ref": "Player", +"description": "The player who holds this score." +}, +"scoreRank": { +"description": "The rank of this score for this leaderboard.", +"format": "int64", +"type": "string" +}, +"scoreTag": { +"description": "Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", +"type": "string" +}, +"scoreValue": { +"description": "The numerical value of this score.", +"format": "int64", +"type": "string" +}, +"timeSpan": { +"description": "The time span of this high score.", +"enum": [ +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"The score is an all-time score.", +"The score is a weekly score.", +"The score is a daily score." +], +"type": "string" +}, +"writeTimestampMillis": { +"description": "The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LeaderboardListResponse": { +"description": "A list of leaderboard objects.", +"id": "LeaderboardListResponse", +"properties": { +"items": { +"description": "The leaderboards.", +"items": { +"$ref": "Leaderboard" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#leaderboardListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token corresponding to the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"LeaderboardScoreRank": { +"description": "A score rank in a leaderboard.", +"id": "LeaderboardScoreRank", +"properties": { +"formattedNumScores": { +"description": "The number of scores in the leaderboard as a string.", +"type": "string" +}, +"formattedRank": { +"description": "The rank in the leaderboard as a string.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#leaderboardScoreRank`.", +"type": "string" +}, +"numScores": { +"description": "The number of scores in the leaderboard.", +"format": "int64", +"type": "string" +}, +"rank": { +"description": "The rank in the leaderboard.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LeaderboardScores": { +"description": "A ListScores response.", +"id": "LeaderboardScores", +"properties": { +"items": { +"description": "The scores in the leaderboard.", +"items": { +"$ref": "LeaderboardEntry" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#leaderboardScores`.", +"type": "string" +}, +"nextPageToken": { +"description": "The pagination token for the next page of results.", +"type": "string" +}, +"numScores": { +"description": "The total number of scores in the leaderboard.", +"format": "int64", +"type": "string" +}, +"playerScore": { +"$ref": "LeaderboardEntry", +"description": "The score of the requesting player on the leaderboard. The player's score may appear both here and in the list of scores above. If you are viewing a public leaderboard and the player is not sharing their gameplay information publicly, the `scoreRank`and `formattedScoreRank` values will not be present." +}, +"prevPageToken": { +"description": "The pagination token for the previous page of results.", +"type": "string" +} +}, +"type": "object" +}, +"LinkPersonaRequest": { +"description": "Request to link an in-game account with a PGS principal (encoded in the session id).", +"id": "LinkPersonaRequest", +"properties": { +"cardinalityConstraint": { +"description": "Required. Cardinality constraint to observe when linking a persona to a player in the scope of a game.", +"enum": [ +"ONE_PERSONA_TO_ONE_PLAYER" +], +"enumDescriptions": [ +"1:1 cardinality between in-game personas and Play Games Services players. By the end of the linking operation only one entry for the player and the persona should remain in the scope of the application. Whether a new link is created or not when this constraint is specified is determined by the chosen `ConflictingLinksResolutionPolicy`: * If `KEEP_EXISTING_LINKS` is specified and the provided persona is already linked to a different player, or the player is already linked to a different persona, no new link will be created and the already existing link(s) will remain as is(are). * If `CREATE_NEW_LINK` is specified and the provided persona is already linked to a different player, or the player is already linked to another persona, the older link(s) will be removed in favour of the new link being created." +], +"type": "string" +}, +"conflictingLinksResolutionPolicy": { +"description": "Required. Resolution policy to apply when the linking of a persona to a player would result in violating the specified cardinality constraint.", +"enum": [ +"KEEP_EXISTING_LINKS", +"CREATE_NEW_LINK" +], +"enumDescriptions": [ +"If link(s) between a player and persona already exists which would result in violating the specified `RecallTokensCardinalityConstraint` if the new link was created, keep the already existing link(s). For example, if Persona1-Player1 is already linked in the scope of application1 and a new link Persona1-Player2 is attempted to be created in the scope of application1, then the old link will remain and no new link will be added. Note that if the already existing links do violate the specified policy (which could occur if not all `LinkPersona` calls use the same `RecallTokensCardinalityConstraint`) this policy will leave these violations unresolved; in order to resolve conflicts, the {@link `CREATE_NEW_LINK` policy needs to be used to rewrite links resolving conflicts.", +"If an existing link between a player and persona already exists which would result in violating the specified `RecallTokensCardinalityConstraint` if the new link was created, replace the already existing link(s) with the new link. For example, if Persona1-Player1 is already linked in the scope of application1 and a new link Persona1-Player2 is attempted to be created in the scope of application1, then the old link will be removed and the new link will be added to replace it." +], +"type": "string" +}, +"expireTime": { +"description": "Input only. Optional expiration time.", +"format": "google-datetime", +"type": "string" +}, +"persona": { +"description": "Required. Stable identifier of the in-game account. Please refrain from re-using the same persona for different games.", +"type": "string" +}, +"sessionId": { +"description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", +"type": "string" +}, +"token": { +"description": "Required. Value of the token to create. Opaque to Play Games and assumed to be non-stable (encrypted with key rotation).", +"type": "string" +}, +"ttl": { +"description": "Input only. Optional time-to-live.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"LinkPersonaResponse": { +"description": "Outcome of a persona linking attempt.", +"id": "LinkPersonaResponse", +"properties": { +"state": { +"description": "Output only. State of a persona linking attempt.", +"enum": [ +"LINK_CREATED", +"PERSONA_OR_PLAYER_ALREADY_LINKED" +], +"enumDescriptions": [ +"The link specified in the request was created.", +"The link specified in the request was not created because already existing links would result in the new link violating the specified `RecallTokensCardinalityConstraint` if created." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MetagameConfig": { +"description": "The metagame config resource", +"id": "MetagameConfig", +"properties": { +"currentVersion": { +"description": "Current version of the metagame configuration data. When this data is updated, the version number will be increased by one.", +"format": "int32", +"type": "integer" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#metagameConfig`.", +"type": "string" +}, +"playerLevels": { +"description": "The list of player levels.", +"items": { +"$ref": "PlayerLevel" +}, +"type": "array" +} +}, +"type": "object" +}, +"PlayGroupingApiToken": { +"description": "Token data returned from GeneratePlayGroupingApiToken RPC.", +"id": "PlayGroupingApiToken", +"properties": { +"tokenValue": { +"description": "Value of the token.", +"type": "string" +} +}, +"type": "object" +}, +"Player": { +"description": "A Player resource.", +"id": "Player", +"properties": { +"avatarImageUrl": { +"description": "The base URL for the image that represents the player.", +"type": "string" +}, +"bannerUrlLandscape": { +"description": "The url to the landscape mode player banner image.", +"type": "string" +}, +"bannerUrlPortrait": { +"description": "The url to the portrait mode player banner image.", +"type": "string" +}, +"displayName": { +"description": "The name to display for the player.", +"type": "string" +}, +"experienceInfo": { +"$ref": "PlayerExperienceInfo", +"description": "An object to represent Play Game experience information for the player." +}, +"friendStatus": { +"description": "The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.", +"enum": [ +"NO_RELATIONSHIP", +"FRIEND" +], +"enumDescriptions": [ +"There is no relationship between the players.", +"The player and requester are friends." +], +"type": "string" +}, +"gamePlayerId": { +"description": "Per-application unique player identifier.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#player`", +"type": "string" +}, +"name": { +"description": "A representation of the individual components of the name.", +"properties": { +"familyName": { +"description": "The family name of this player. In some places, this is known as the last name.", +"type": "string" +}, +"givenName": { +"description": "The given name of this player. In some places, this is known as the first name.", +"type": "string" +} +}, +"type": "object" +}, +"originalPlayerId": { +"description": "The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.", +"type": "string" +}, +"playerId": { +"description": "The ID of the player.", +"type": "string" +}, +"profileSettings": { +"$ref": "ProfileSettings", +"description": "The player's profile settings. Controls whether or not the player's profile is visible to other players." +}, +"title": { +"description": "The player's title rewarded for their game activities.", +"type": "string" +} +}, +"type": "object" +}, +"PlayerAchievement": { +"description": "An achievement object.", +"id": "PlayerAchievement", +"properties": { +"achievementState": { +"description": "The state of the achievement.", +"enum": [ +"HIDDEN", +"REVEALED", +"UNLOCKED" +], +"enumDescriptions": [ +"Achievement is hidden.", +"Achievement is revealed.", +"Achievement is unlocked." +], +"type": "string" +}, +"currentSteps": { +"description": "The current steps for an incremental achievement.", +"format": "int32", +"type": "integer" +}, +"experiencePoints": { +"description": "Experience points earned for the achievement. This field is absent for achievements that have not yet been unlocked and 0 for achievements that have been unlocked by testers but that are unpublished.", +"format": "int64", +"type": "string" +}, +"formattedCurrentStepsString": { +"description": "The current steps for an incremental achievement as a string.", +"type": "string" +}, +"id": { +"description": "The ID of the achievement.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerAchievement`.", +"type": "string" +}, +"lastUpdatedTimestamp": { +"description": "The timestamp of the last modification to this achievement's state.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PlayerAchievementListResponse": { +"description": "A list of achievement objects.", +"id": "PlayerAchievementListResponse", +"properties": { +"items": { +"description": "The achievements.", +"items": { +"$ref": "PlayerAchievement" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerAchievementListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token corresponding to the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"PlayerEvent": { +"description": "An event status resource.", +"id": "PlayerEvent", +"properties": { +"definitionId": { +"description": "The ID of the event definition.", +"type": "string" +}, +"formattedNumEvents": { +"description": "The current number of times this event has occurred, as a string. The formatting of this string depends on the configuration of your event in the Play Games Developer Console.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerEvent`.", +"type": "string" +}, +"numEvents": { +"description": "The current number of times this event has occurred.", +"format": "int64", +"type": "string" +}, +"playerId": { +"description": "The ID of the player.", +"type": "string" +} +}, +"type": "object" +}, +"PlayerEventListResponse": { +"description": "A ListByPlayer response.", +"id": "PlayerEventListResponse", +"properties": { +"items": { +"description": "The player events.", +"items": { +"$ref": "PlayerEvent" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerEventListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "The pagination token for the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"PlayerExperienceInfo": { +"description": "1P/3P metadata about the player's experience.", +"id": "PlayerExperienceInfo", +"properties": { +"currentExperiencePoints": { +"description": "The current number of experience points for the player.", +"format": "int64", +"type": "string" +}, +"currentLevel": { +"$ref": "PlayerLevel", +"description": "The current level of the player." +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerExperienceInfo`.", +"type": "string" +}, +"lastLevelUpTimestampMillis": { +"description": "The timestamp when the player was leveled up, in millis since Unix epoch UTC.", +"format": "int64", +"type": "string" +}, +"nextLevel": { +"$ref": "PlayerLevel", +"description": "The next level of the player. If the current level is the maximum level, this should be same as the current level." +} +}, +"type": "object" +}, +"PlayerLeaderboardScore": { +"description": "A player leaderboard score object.", +"id": "PlayerLeaderboardScore", +"properties": { +"friendsRank": { +"$ref": "LeaderboardScoreRank", +"description": "The rank of the score in the friends collection for this leaderboard." +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerLeaderboardScore`.", +"type": "string" +}, +"leaderboard_id": { +"description": "The ID of the leaderboard this score is in.", +"type": "string" +}, +"publicRank": { +"$ref": "LeaderboardScoreRank", +"description": "The public rank of the score in this leaderboard. This object will not be present if the user is not sharing their scores publicly." +}, +"scoreString": { +"description": "The formatted value of this score.", +"type": "string" +}, +"scoreTag": { +"description": "Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", +"type": "string" +}, +"scoreValue": { +"description": "The numerical value of this score.", +"format": "int64", +"type": "string" +}, +"socialRank": { +"$ref": "LeaderboardScoreRank", +"description": "The social rank of the score in this leaderboard." +}, +"timeSpan": { +"description": "The time span of this score.", +"enum": [ +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"The score is an all-time score.", +"The score is a weekly score.", +"The score is a daily score." +], +"type": "string" +}, +"writeTimestamp": { +"description": "The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PlayerLeaderboardScoreListResponse": { +"description": "A list of player leaderboard scores.", +"id": "PlayerLeaderboardScoreListResponse", +"properties": { +"items": { +"description": "The leaderboard scores.", +"items": { +"$ref": "PlayerLeaderboardScore" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerLeaderboardScoreListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "The pagination token for the next page of results.", +"type": "string" +}, +"player": { +"$ref": "Player", +"description": "The Player resources for the owner of this score." +} +}, +"type": "object" +}, +"PlayerLevel": { +"description": "1P/3P metadata about a user's level.", +"id": "PlayerLevel", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerLevel`.", +"type": "string" +}, +"level": { +"description": "The level for the user.", +"format": "int32", +"type": "integer" +}, +"maxExperiencePoints": { +"description": "The maximum experience points for this level.", +"format": "int64", +"type": "string" +}, +"minExperiencePoints": { +"description": "The minimum experience points for this level.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PlayerListResponse": { +"description": "A third party player list response.", +"id": "PlayerListResponse", +"properties": { +"items": { +"description": "The players.", +"items": { +"$ref": "Player" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token corresponding to the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"PlayerScore": { +"description": "A player score.", +"id": "PlayerScore", +"properties": { +"formattedScore": { +"description": "The formatted score for this player score.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerScore`.", +"type": "string" +}, +"score": { +"description": "The numerical value for this player score.", +"format": "int64", +"type": "string" +}, +"scoreTag": { +"description": "Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", +"type": "string" +}, +"timeSpan": { +"description": "The time span for this player score.", +"enum": [ +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"The score is an all-time score.", +"The score is a weekly score.", +"The score is a daily score." +], +"type": "string" +} +}, +"type": "object" +}, +"PlayerScoreListResponse": { +"description": "A list of score submission statuses.", +"id": "PlayerScoreListResponse", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerScoreListResponse`.", +"type": "string" +}, +"submittedScores": { +"description": "The score submissions statuses.", +"items": { +"$ref": "PlayerScoreResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"PlayerScoreResponse": { +"description": "A list of leaderboard entry resources.", +"id": "PlayerScoreResponse", +"properties": { +"beatenScoreTimeSpans": { +"description": "The time spans where the submitted score is better than the existing score for that time span.", +"items": { +"enum": [ +"ALL_TIME", +"WEEKLY", +"DAILY" +], +"enumDescriptions": [ +"The score is an all-time score.", +"The score is a weekly score.", +"The score is a daily score." +], +"type": "string" +}, +"type": "array" +}, +"formattedScore": { +"description": "The formatted value of the submitted score.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerScoreResponse`.", +"type": "string" +}, +"leaderboardId": { +"description": "The leaderboard ID that this score was submitted to.", +"type": "string" +}, +"scoreTag": { +"description": "Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", +"type": "string" +}, +"unbeatenScores": { +"description": "The scores in time spans that have not been beaten. As an example, the submitted score may be better than the player's `DAILY` score, but not better than the player's scores for the `WEEKLY` or `ALL_TIME` time spans.", +"items": { +"$ref": "PlayerScore" +}, +"type": "array" +} +}, +"type": "object" +}, +"PlayerScoreSubmissionList": { +"description": "A list of score submission requests.", +"id": "PlayerScoreSubmissionList", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#playerScoreSubmissionList`.", +"type": "string" +}, +"scores": { +"description": "The score submissions.", +"items": { +"$ref": "ScoreSubmission" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProfileSettings": { +"description": "Profile settings", +"id": "ProfileSettings", +"properties": { +"friendsListVisibility": { +"enum": [ +"VISIBLE", +"REQUEST_REQUIRED", +"UNAVAILABLE" +], +"enumDescriptions": [ +"The friends list is currently visible to the game.", +"The developer does not have access to the friends list, but can call the Android API to show a consent dialog.", +"The friends list is currently unavailable for this user, and it is not possible to request access at this time, either because the user has permanently declined or the friends feature is not available to them. In this state, any attempts to request access to the friends list will be unsuccessful." +], +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#profileSettings`.", +"type": "string" +}, +"profileVisible": { +"description": "Whether the player's profile is visible to the currently signed in player.", +"type": "boolean" +} +}, +"type": "object" +}, +"RecallToken": { +"description": "Recall token data returned from RetrievePlayerTokens RPC", +"id": "RecallToken", +"properties": { +"expireTime": { +"description": "Optional. Optional expiration time of the token", +"format": "google-datetime", +"type": "string" +}, +"multiPlayerPersona": { +"description": "Required. Whether the persona identified by the token is linked to multiple PGS Players", +"type": "boolean" +}, +"token": { +"description": "Required. Value of the Recall token as it is provided by the client via LinkPersona RPC", +"type": "string" +} +}, +"type": "object" +}, +"ResetPersonaRequest": { +"description": "Request to remove all Recall tokens associated with a persona for an app.", +"id": "ResetPersonaRequest", +"properties": { +"persona": { +"description": "Value of the 'persona' field as it was provided by the client in LinkPersona RPC", +"type": "string" +} +}, +"type": "object" +}, +"ResetPersonaResponse": { +"description": "Response for the ResetPersona RPC", +"id": "ResetPersonaResponse", +"properties": { +"unlinked": { +"description": "Required. Whether any tokens were unlinked as a result of this request.", +"type": "boolean" +} +}, +"type": "object" +}, +"RetrieveDeveloperGamesLastPlayerTokenResponse": { +"description": "Recall token data returned from for the RetrieveDeveloperGamesLastPlayerToken RPC", +"id": "RetrieveDeveloperGamesLastPlayerTokenResponse", +"properties": { +"gamePlayerToken": { +"$ref": "GamePlayerToken", +"description": "The recall token associated with the requested PGS Player principal. It can be unset if there is no recall token associated with the requested principal." +} +}, +"type": "object" +}, +"RetrieveGamesPlayerTokensResponse": { +"description": "A list of recall token data returned from the RetrieveGamesPlayerTokens RPC", +"id": "RetrieveGamesPlayerTokensResponse", +"properties": { +"gamePlayerTokens": { +"description": "The requested applications along with the recall tokens for the player. If the player does not have recall tokens for an application, that application is not included in the response.", +"items": { +"$ref": "GamePlayerToken" +}, +"type": "array" +} +}, +"type": "object" +}, +"RetrievePlayerTokensResponse": { +"description": "Response for the RetrievePlayerTokens RPC", +"id": "RetrievePlayerTokensResponse", +"properties": { +"tokens": { +"description": "Required. Recall tokens associated with the requested PGS Player principal", +"items": { +"$ref": "RecallToken" +}, +"type": "array" +} +}, +"type": "object" +}, +"RevisionCheckResponse": { +"description": "A third party checking a revision response.", +"id": "RevisionCheckResponse", +"properties": { +"apiVersion": { +"description": "The version of the API this client revision should use when calling API methods.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#revisionCheckResponse`.", +"type": "string" +}, +"revisionStatus": { +"description": "The result of the revision check.", +"enum": [ +"OK", +"DEPRECATED", +"INVALID" +], +"enumDescriptions": [ +"The revision being used is current.", +"There is currently a newer version available, but the revision being used still works.", +"The revision being used is not supported in any released version." +], +"type": "string" +} +}, +"type": "object" +}, +"ScopedPlayerIds": { +"description": "Scoped player identifiers.", +"id": "ScopedPlayerIds", +"properties": { +"developerPlayerKey": { +"description": "Identifier of the player across all games of the given developer. Every player has the same developer_player_key in all games of one developer. Developer player key changes for the game if the game is transferred to another developer. Note that game_player_id will stay unchanged.", +"type": "string" +}, +"gamePlayerId": { +"description": "Game-scoped player identifier. This is the same id that is returned in GetPlayer game_player_id field.", +"type": "string" +} +}, +"type": "object" +}, +"ScoreSubmission": { +"description": "A request to submit a score to leaderboards.", +"id": "ScoreSubmission", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#scoreSubmission`.", +"type": "string" +}, +"leaderboardId": { +"description": "The leaderboard this score is being submitted to.", +"type": "string" +}, +"score": { +"description": "The new score being submitted.", +"format": "int64", +"type": "string" +}, +"scoreTag": { +"description": "Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", +"type": "string" +}, +"signature": { +"description": "Signature Values will contain URI-safe characters as defined by section 2.3 of RFC 3986.", +"type": "string" +} +}, +"type": "object" +}, +"Snapshot": { +"description": "An snapshot object.", +"id": "Snapshot", +"properties": { +"coverImage": { +"$ref": "SnapshotImage", +"description": "The cover image of this snapshot. May be absent if there is no image." +}, +"description": { +"description": "The description of this snapshot.", +"type": "string" +}, +"driveId": { +"description": "The ID of the file underlying this snapshot in the Drive API. Only present if the snapshot is a view on a Drive file and the file is owned by the caller.", +"type": "string" +}, +"durationMillis": { +"description": "The duration associated with this snapshot, in millis.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "The ID of the snapshot.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#snapshot`.", +"type": "string" +}, +"lastModifiedMillis": { +"description": "The timestamp (in millis since Unix epoch) of the last modification to this snapshot.", +"format": "int64", +"type": "string" +}, +"progressValue": { +"description": "The progress value (64-bit integer set by developer) associated with this snapshot.", +"format": "int64", +"type": "string" +}, +"title": { +"description": "The title of this snapshot.", +"type": "string" +}, +"type": { +"description": "The type of this snapshot.", +"enum": [ +"SAVE_GAME" +], +"enumDescriptions": [ +"A snapshot representing a save game." +], +"type": "string" +}, +"uniqueName": { +"description": "The unique name provided when the snapshot was created.", +"type": "string" +} +}, +"type": "object" +}, +"SnapshotImage": { +"description": "An image of a snapshot.", +"id": "SnapshotImage", +"properties": { +"height": { +"description": "The height of the image.", +"format": "int32", +"type": "integer" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#snapshotImage`.", +"type": "string" +}, +"mime_type": { +"description": "The MIME type of the image.", +"type": "string" +}, +"url": { +"description": "The URL of the image. This URL may be invalidated at any time and should not be cached.", +"type": "string" +}, +"width": { +"description": "The width of the image.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SnapshotListResponse": { +"description": "A third party list snapshots response.", +"id": "SnapshotListResponse", +"properties": { +"items": { +"description": "The snapshots.", +"items": { +"$ref": "Snapshot" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#snapshotListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token corresponding to the next page of results. If there are no more results, the token is omitted.", +"type": "string" +} +}, +"type": "object" +}, +"StatsResponse": { +"description": "A third party stats resource.", +"id": "StatsResponse", +"properties": { +"avg_session_length_minutes": { +"description": "Average session length in minutes of the player. E.g., 1, 30, 60, ... . Not populated if there is not enough information.", +"format": "float", +"type": "number" +}, +"churn_probability": { +"description": "The probability of the player not returning to play the game in the next day. E.g., 0, 0.1, 0.5, ..., 1.0. Not populated if there is not enough information.", +"format": "float", +"type": "number" +}, +"days_since_last_played": { +"description": "Number of days since the player last played this game. E.g., 0, 1, 5, 10, ... . Not populated if there is not enough information.", +"format": "int32", +"type": "integer" +}, +"high_spender_probability": { +"description": "The probability of the player going to spend beyond a threshold amount of money. E.g., 0, 0.25, 0.50, 0.75. Not populated if there is not enough information.", +"format": "float", +"type": "number" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#statsResponse`.", +"type": "string" +}, +"num_purchases": { +"description": "Number of in-app purchases made by the player in this game. E.g., 0, 1, 5, 10, ... . Not populated if there is not enough information.", +"format": "int32", +"type": "integer" +}, +"num_sessions": { +"description": "The approximate number of sessions of the player within the last 28 days, where a session begins when the player is connected to Play Games Services and ends when they are disconnected. E.g., 0, 1, 5, 10, ... . Not populated if there is not enough information.", +"format": "int32", +"type": "integer" +}, +"num_sessions_percentile": { +"description": "The approximation of the sessions percentile of the player within the last 30 days, where a session begins when the player is connected to Play Games Services and ends when they are disconnected. E.g., 0, 0.25, 0.5, 0.75. Not populated if there is not enough information.", +"format": "float", +"type": "number" +}, +"spend_percentile": { +"description": "The approximate spend percentile of the player in this game. E.g., 0, 0.25, 0.5, 0.75. Not populated if there is not enough information.", +"format": "float", +"type": "number" +}, +"spend_probability": { +"description": "The probability of the player going to spend the game in the next seven days. E.g., 0, 0.25, 0.50, 0.75. Not populated if there is not enough information.", +"format": "float", +"type": "number" +}, +"total_spend_next_28_days": { +"description": "The predicted amount of money that the player going to spend in the next 28 days. E.g., 1, 30, 60, ... . Not populated if there is not enough information.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"UnlinkPersonaRequest": { +"description": "Request to remove a Recall token linking PGS principal and an in-game account", +"id": "UnlinkPersonaRequest", +"properties": { +"persona": { +"description": "Value of the 'persona' field as it was provided by the client in LinkPersona RPC", +"type": "string" +}, +"sessionId": { +"description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", +"type": "string" +}, +"token": { +"description": "Value of the Recall token as it was provided by the client in LinkPersona RPC", +"type": "string" +} +}, +"type": "object" +}, +"UnlinkPersonaResponse": { +"description": "Response for the UnlinkPersona RPC", +"id": "UnlinkPersonaResponse", +"properties": { +"unlinked": { +"description": "Required. Whether a Recall token specified by the request was deleted. Can be 'false' when there were no Recall tokens satisfied the criteria from the request.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Play Game Services", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkebackup.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkebackup.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..93745db367de5dcf04ca352b4e49b2832000658c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkebackup.v1.json @@ -0,0 +1,3618 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://gkebackup.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Backup for GKE", +"description": "Backup for GKE is a managed Kubernetes workload backup and restore service for GKE clusters.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "gkebackup:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gkebackup.mtls.googleapis.com/", +"name": "gkebackup", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backupPlans": { +"methods": { +"create": { +"description": "Creates a new BackupPlan in a given location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupPlanId": { +"description": "Required. The client-provided short name for the BackupPlan resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of BackupPlans in this location", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location within which to create the BackupPlan. Format: `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupPlans", +"request": { +"$ref": "BackupPlan" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing BackupPlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}", +"httpMethod": "DELETE", +"id": "gkebackup.projects.locations.backupPlans.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If provided, this value must match the current value of the target BackupPlan's etag field or the request is rejected.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Fully qualified BackupPlan name. Format: `projects/*/locations/*/backupPlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve the details of a single BackupPlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified BackupPlan name. Format: `projects/*/locations/*/backupPlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BackupPlan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists BackupPlans in a given location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Field match expression used to filter the results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The target number of results to return in a single response. If not specified, a default value will be chosen by the service. Note that the response may include a partial list and a caller should only rely on the response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value of next_page_token received from a previous `ListBackupPlans` call. Provide this to retrieve the subsequent page in a multi-page list of results. When paginating, all other parameters provided to `ListBackupPlans` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location that contains the BackupPlans to list. Format: `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupPlans", +"response": { +"$ref": "ListBackupPlansResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a BackupPlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}", +"httpMethod": "PATCH", +"id": "gkebackup.projects.locations.backupPlans.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The full name of the BackupPlan resource. Format: `projects/*/locations/*/backupPlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. This is used to specify the fields to be overwritten in the BackupPlan targeted for update. The values for each of these updated fields will be taken from the `backup_plan` provided with this request. Field names are relative to the root of the resource (e.g., `description`, `backup_config.include_volume_data`, etc.) If no `update_mask` is provided, all fields in `backup_plan` will be written to the target BackupPlan resource. Note that OUTPUT_ONLY and IMMUTABLE fields in `backup_plan` are ignored and are not used to update the target BackupPlan.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BackupPlan" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a Backup for the given BackupPlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Optional. The client-provided short name for the Backup resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of Backups in this BackupPlan", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BackupPlan within which to create the Backup. Format: `projects/*/locations/*/backupPlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "gkebackup.projects.locations.backupPlans.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If provided, this value must match the current value of the target Backup's etag field or the request is rejected.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. If set to true, any VolumeBackups below this Backup will also be deleted. Otherwise, the request will only succeed if the Backup has no VolumeBackups.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the Backup resource. Format: `projects/*/locations/*/backupPlans/*/backups/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve the details of a single Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full name of the Backup resource. Format: `projects/*/locations/*/backupPlans/*/backups/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getBackupIndexDownloadUrl": { +"description": "Retrieve the link to the backupIndex.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}:getBackupIndexDownloadUrl", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.getBackupIndexDownloadUrl", +"parameterOrder": [ +"backup" +], +"parameters": { +"backup": { +"description": "Required. Full name of Backup resource. Format: projects/{project}/locations/{location}/backupPlans/{backup_plan}/backups/{backup}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+backup}:getBackupIndexDownloadUrl", +"response": { +"$ref": "GetBackupIndexDownloadUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Backups for a given BackupPlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Field match expression used to filter the results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The target number of results to return in a single response. If not specified, a default value will be chosen by the service. Note that the response may include a partial list and a caller should only rely on the response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value of next_page_token received from a previous `ListBackups` call. Provide this to retrieve the subsequent page in a multi-page list of results. When paginating, all other parameters provided to `ListBackups` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BackupPlan that contains the Backups to list. Format: `projects/*/locations/*/backupPlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}", +"httpMethod": "PATCH", +"id": "gkebackup.projects.locations.backupPlans.backups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The fully qualified name of the Backup. `projects/*/locations/*/backupPlans/*/backups/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. This is used to specify the fields to be overwritten in the Backup targeted for update. The values for each of these updated fields will be taken from the `backup_plan` provided with this request. Field names are relative to the root of the resource. If no `update_mask` is provided, all fields in `backup` will be written to the target Backup resource. Note that OUTPUT_ONLY and IMMUTABLE fields in `backup` are ignored and are not used to update the target Backup.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.backups.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.backups.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"volumeBackups": { +"methods": { +"get": { +"description": "Retrieve the details of a single VolumeBackup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}/volumeBackups/{volumeBackupsId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.volumeBackups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full name of the VolumeBackup resource. Format: `projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+/volumeBackups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VolumeBackup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}/volumeBackups/{volumeBackupsId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.volumeBackups.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+/volumeBackups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the VolumeBackups for a given Backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}/volumeBackups", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.backupPlans.backups.volumeBackups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Field match expression used to filter the results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The target number of results to return in a single response. If not specified, a default value will be chosen by the service. Note that the response may include a partial list and a caller should only rely on the response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value of next_page_token received from a previous `ListVolumeBackups` call. Provide this to retrieve the subsequent page in a multi-page list of results. When paginating, all other parameters provided to `ListVolumeBackups` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Backup that contains the VolumeBackups to list. Format: `projects/*/locations/*/backupPlans/*/backups/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/volumeBackups", +"response": { +"$ref": "ListVolumeBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}/volumeBackups/{volumeBackupsId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.backups.volumeBackups.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+/volumeBackups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPlans/{backupPlansId}/backups/{backupsId}/volumeBackups/{volumeBackupsId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.backupPlans.backups.volumeBackups.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPlans/[^/]+/backups/[^/]+/volumeBackups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "gkebackup.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"restorePlans": { +"methods": { +"create": { +"description": "Creates a new RestorePlan in a given location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location within which to create the RestorePlan. Format: `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"restorePlanId": { +"description": "Required. The client-provided short name for the RestorePlan resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of RestorePlans in this location", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/restorePlans", +"request": { +"$ref": "RestorePlan" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing RestorePlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}", +"httpMethod": "DELETE", +"id": "gkebackup.projects.locations.restorePlans.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If provided, this value must match the current value of the target RestorePlan's etag field or the request is rejected.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. If set to true, any Restores below this RestorePlan will also be deleted. Otherwise, the request will only succeed if the RestorePlan has no Restores.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Fully qualified RestorePlan name. Format: `projects/*/locations/*/restorePlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve the details of a single RestorePlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified RestorePlan name. Format: `projects/*/locations/*/restorePlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "RestorePlan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists RestorePlans in a given location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Field match expression used to filter the results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The target number of results to return in a single response. If not specified, a default value will be chosen by the service. Note that the response may include a partial list and a caller should only rely on the response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value of next_page_token received from a previous `ListRestorePlans` call. Provide this to retrieve the subsequent page in a multi-page list of results. When paginating, all other parameters provided to `ListRestorePlans` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location that contains the RestorePlans to list. Format: `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/restorePlans", +"response": { +"$ref": "ListRestorePlansResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a RestorePlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}", +"httpMethod": "PATCH", +"id": "gkebackup.projects.locations.restorePlans.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The full name of the RestorePlan resource. Format: `projects/*/locations/*/restorePlans/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. This is used to specify the fields to be overwritten in the RestorePlan targeted for update. The values for each of these updated fields will be taken from the `restore_plan` provided with this request. Field names are relative to the root of the resource. If no `update_mask` is provided, all fields in `restore_plan` will be written to the target RestorePlan resource. Note that OUTPUT_ONLY and IMMUTABLE fields in `restore_plan` are ignored and are not used to update the target RestorePlan.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "RestorePlan" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"restores": { +"methods": { +"create": { +"description": "Creates a new Restore for the given RestorePlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.restores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The RestorePlan within which to create the Restore. Format: `projects/*/locations/*/restorePlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +}, +"restoreId": { +"description": "Required. The client-provided short name for the Restore resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of Restores in this RestorePlan.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/restores", +"request": { +"$ref": "Restore" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing Restore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}", +"httpMethod": "DELETE", +"id": "gkebackup.projects.locations.restorePlans.restores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If provided, this value must match the current value of the target Restore's etag field or the request is rejected.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. If set to true, any VolumeRestores below this restore will also be deleted. Otherwise, the request will only succeed if the restore has no VolumeRestores.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Full name of the Restore Format: `projects/*/locations/*/restorePlans/*/restores/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves the details of a single Restore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.restores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the restore resource. Format: `projects/*/locations/*/restorePlans/*/restores/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Restore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.restores.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Restores for a given RestorePlan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.restores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Field match expression used to filter the results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The target number of results to return in a single response. If not specified, a default value will be chosen by the service. Note that the response may include a partial list and a caller should only rely on the response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value of next_page_token received from a previous `ListRestores` call. Provide this to retrieve the subsequent page in a multi-page list of results. When paginating, all other parameters provided to `ListRestores` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The RestorePlan that contains the Restores to list. Format: `projects/*/locations/*/restorePlans/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/restores", +"response": { +"$ref": "ListRestoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a Restore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}", +"httpMethod": "PATCH", +"id": "gkebackup.projects.locations.restorePlans.restores.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The full name of the Restore resource. Format: `projects/*/locations/*/restorePlans/*/restores/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. This is used to specify the fields to be overwritten in the Restore targeted for update. The values for each of these updated fields will be taken from the `restore` provided with this request. Field names are relative to the root of the resource. If no `update_mask` is provided, all fields in `restore` will be written to the target Restore resource. Note that OUTPUT_ONLY and IMMUTABLE fields in `restore` are ignored and are not used to update the target Restore.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Restore" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.restores.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.restores.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"volumeRestores": { +"methods": { +"get": { +"description": "Retrieve the details of a single VolumeRestore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}/volumeRestores/{volumeRestoresId}", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.restores.volumeRestores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full name of the VolumeRestore resource. Format: `projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+/volumeRestores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VolumeRestore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}/volumeRestores/{volumeRestoresId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.restores.volumeRestores.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+/volumeRestores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the VolumeRestores for a given Restore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}/volumeRestores", +"httpMethod": "GET", +"id": "gkebackup.projects.locations.restorePlans.restores.volumeRestores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Field match expression used to filter the results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The target number of results to return in a single response. If not specified, a default value will be chosen by the service. Note that the response may include a partial list and a caller should only rely on the response's next_page_token to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value of next_page_token received from a previous `ListVolumeRestores` call. Provide this to retrieve the subsequent page in a multi-page list of results. When paginating, all other parameters provided to `ListVolumeRestores` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Restore that contains the VolumeRestores to list. Format: `projects/*/locations/*/restorePlans/*/restores/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/volumeRestores", +"response": { +"$ref": "ListVolumeRestoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}/volumeRestores/{volumeRestoresId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.restores.volumeRestores.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+/volumeRestores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/restorePlans/{restorePlansId}/restores/{restoresId}/volumeRestores/{volumeRestoresId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkebackup.projects.locations.restorePlans.restores.volumeRestores.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/restorePlans/[^/]+/restores/[^/]+/volumeRestores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20250101", +"rootUrl": "https://gkebackup.googleapis.com/", +"schemas": { +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Backup": { +"description": "Represents a request to perform a single point-in-time capture of some portion of the state of a GKE cluster, the record of the backup operation itself, and an anchor for the underlying artifacts that comprise the Backup (the config backup and VolumeBackups).", +"id": "Backup", +"properties": { +"allNamespaces": { +"description": "Output only. If True, all namespaces were included in the Backup.", +"readOnly": true, +"type": "boolean" +}, +"clusterMetadata": { +"$ref": "ClusterMetadata", +"description": "Output only. Information about the GKE cluster from which this Backup was created.", +"readOnly": true +}, +"completeTime": { +"description": "Output only. Completion time of the Backup", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"configBackupSizeBytes": { +"description": "Output only. The size of the config backup in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"containsSecrets": { +"description": "Output only. Whether or not the Backup contains Kubernetes Secrets. Controlled by the parent BackupPlan's include_secrets value.", +"readOnly": true, +"type": "boolean" +}, +"containsVolumeData": { +"description": "Output only. Whether or not the Backup contains volume data. Controlled by the parent BackupPlan's include_volume_data value.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The timestamp when this Backup resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteLockDays": { +"description": "Optional. Minimum age for this Backup (in days). If this field is set to a non-zero value, the Backup will be \"locked\" against deletion (either manual or automatic deletion) for the number of days provided (measured from the creation time of the Backup). MUST be an integer value between 0-90 (inclusive). Defaults to parent BackupPlan's backup_delete_lock_days setting and may only be increased (either at creation time or in a subsequent update).", +"format": "int32", +"type": "integer" +}, +"deleteLockExpireTime": { +"description": "Output only. The time at which an existing delete lock will expire for this backup (calculated from create_time + delete_lock_days).", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User specified descriptive string for this Backup.", +"type": "string" +}, +"encryptionKey": { +"$ref": "EncryptionKey", +"description": "Output only. The customer managed encryption key that was used to encrypt the Backup's artifacts. Inherited from the parent BackupPlan's encryption_key value.", +"readOnly": true +}, +"etag": { +"description": "Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a backup from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform backup updates in order to avoid race conditions: An `etag` is returned in the response to `GetBackup`, and systems are expected to put that etag in the request to `UpdateBackup` or `DeleteBackup` to ensure that their change will be applied to the same version of the resource.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A set of custom labels supplied by user.", +"type": "object" +}, +"manual": { +"description": "Output only. This flag indicates whether this Backup resource was created manually by a user or via a schedule in the BackupPlan. A value of True means that the Backup was created manually.", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Output only. The fully qualified name of the Backup. `projects/*/locations/*/backupPlans/*/backups/*`", +"readOnly": true, +"type": "string" +}, +"permissiveMode": { +"description": "Output only. If false, Backup will fail when Backup for GKE detects Kubernetes configuration that is non-standard or requires additional setup to restore. Inherited from the parent BackupPlan's permissive_mode value.", +"readOnly": true, +"type": "boolean" +}, +"podCount": { +"description": "Output only. The total number of Kubernetes Pods contained in the Backup.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"resourceCount": { +"description": "Output only. The total number of Kubernetes resources included in the Backup.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"retainDays": { +"description": "Optional. The age (in days) after which this Backup will be automatically deleted. Must be an integer value >= 0: - If 0, no automatic deletion will occur for this Backup. - If not 0, this must be >= delete_lock_days and <= 365. Once a Backup is created, this value may only be increased. Defaults to the parent BackupPlan's backup_retain_days value.", +"format": "int32", +"type": "integer" +}, +"retainExpireTime": { +"description": "Output only. The time at which this Backup will be automatically deleted (calculated from create_time + retain_days).", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"selectedApplications": { +"$ref": "NamespacedNames", +"description": "Output only. If set, the list of ProtectedApplications whose resources were included in the Backup.", +"readOnly": true +}, +"selectedNamespaces": { +"$ref": "Namespaces", +"description": "Output only. If set, the list of namespaces that were included in the Backup.", +"readOnly": true +}, +"sizeBytes": { +"description": "Output only. The total size of the Backup in bytes = config backup size + sum(volume backup sizes)", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of the Backup", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"IN_PROGRESS", +"SUCCEEDED", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"The Backup resource is in the process of being created.", +"The Backup resource has been created and the associated BackupJob Kubernetes resource has been injected into the source cluster.", +"The gkebackup agent in the cluster has begun executing the backup operation.", +"The backup operation has completed successfully.", +"The backup operation has failed.", +"This Backup resource (and its associated artifacts) is in the process of being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateReason": { +"description": "Output only. Human-readable description of why the backup is in the current `state`. This field is only meant for human readability and should not be used programmatically as this field is not guaranteed to be consistent.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated global unique identifier of [UUID4](https://en.wikipedia.org/wiki/Universally_unique_identifier)", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this Backup resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"volumeCount": { +"description": "Output only. The total number of volume backups contained in the Backup.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"BackupConfig": { +"description": "BackupConfig defines the configuration of Backups created via this BackupPlan.", +"id": "BackupConfig", +"properties": { +"allNamespaces": { +"description": "If True, include all namespaced resources", +"type": "boolean" +}, +"encryptionKey": { +"$ref": "EncryptionKey", +"description": "Optional. This defines a customer managed encryption key that will be used to encrypt the \"config\" portion (the Kubernetes resources) of Backups created via this plan. Default (empty): Config backup artifacts will not be encrypted." +}, +"includeSecrets": { +"description": "Optional. This flag specifies whether Kubernetes Secret resources should be included when they fall into the scope of Backups. Default: False", +"type": "boolean" +}, +"includeVolumeData": { +"description": "Optional. This flag specifies whether volume data should be backed up when PVCs are included in the scope of a Backup. Default: False", +"type": "boolean" +}, +"permissiveMode": { +"description": "Optional. If false, Backups will fail when Backup for GKE detects Kubernetes configuration that is non-standard or requires additional setup to restore. Default: False", +"type": "boolean" +}, +"selectedApplications": { +"$ref": "NamespacedNames", +"description": "If set, include just the resources referenced by the listed ProtectedApplications." +}, +"selectedNamespaces": { +"$ref": "Namespaces", +"description": "If set, include just the resources in the listed namespaces." +} +}, +"type": "object" +}, +"BackupPlan": { +"description": "Defines the configuration and scheduling for a \"line\" of Backups.", +"id": "BackupPlan", +"properties": { +"backupConfig": { +"$ref": "BackupConfig", +"description": "Optional. Defines the configuration of Backups created via this BackupPlan." +}, +"backupSchedule": { +"$ref": "Schedule", +"description": "Optional. Defines a schedule for automatic Backup creation via this BackupPlan." +}, +"cluster": { +"description": "Required. Immutable. The source cluster from which Backups will be created via this BackupPlan. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*`", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when this BackupPlan resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deactivated": { +"description": "Optional. This flag indicates whether this BackupPlan has been deactivated. Setting this field to True locks the BackupPlan such that no further updates will be allowed (except deletes), including the deactivated field itself. It also prevents any new Backups from being created via this BackupPlan (including scheduled Backups). Default: False", +"type": "boolean" +}, +"description": { +"description": "Optional. User specified descriptive string for this BackupPlan.", +"type": "string" +}, +"etag": { +"description": "Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a backup plan from overwriting each other. It is strongly suggested that systems make use of the 'etag' in the read-modify-write cycle to perform BackupPlan updates in order to avoid race conditions: An `etag` is returned in the response to `GetBackupPlan`, and systems are expected to put that etag in the request to `UpdateBackupPlan` or `DeleteBackupPlan` to ensure that their change will be applied to the same version of the resource.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A set of custom labels supplied by user.", +"type": "object" +}, +"name": { +"description": "Output only. The full name of the BackupPlan resource. Format: `projects/*/locations/*/backupPlans/*`", +"readOnly": true, +"type": "string" +}, +"protectedPodCount": { +"description": "Output only. The number of Kubernetes Pods backed up in the last successful Backup created via this BackupPlan.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"retentionPolicy": { +"$ref": "RetentionPolicy", +"description": "Optional. RetentionPolicy governs lifecycle of Backups created under this plan." +}, +"rpoRiskLevel": { +"description": "Output only. A number that represents the current risk level of this BackupPlan from RPO perspective with 1 being no risk and 5 being highest risk.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"rpoRiskReason": { +"description": "Output only. Human-readable description of why the BackupPlan is in the current rpo_risk_level and action items if any.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the BackupPlan. This State field reflects the various stages a BackupPlan can be in during the Create operation. It will be set to \"DEACTIVATED\" if the BackupPlan is deactivated on an Update", +"enum": [ +"STATE_UNSPECIFIED", +"CLUSTER_PENDING", +"PROVISIONING", +"READY", +"FAILED", +"DEACTIVATED", +"DELETING" +], +"enumDescriptions": [ +"Default first value for Enums.", +"Waiting for cluster state to be RUNNING.", +"The BackupPlan is in the process of being created.", +"The BackupPlan has successfully been created and is ready for Backups.", +"BackupPlan creation has failed.", +"The BackupPlan has been deactivated.", +"The BackupPlan is in the process of being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateReason": { +"description": "Output only. Human-readable description of why BackupPlan is in the current `state`. This field is only meant for human readability and should not be used programmatically as this field is not guaranteed to be consistent.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this BackupPlan resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"ClusterMetadata": { +"description": "Information about the GKE cluster from which this Backup was created.", +"id": "ClusterMetadata", +"properties": { +"anthosVersion": { +"description": "Output only. Anthos version", +"readOnly": true, +"type": "string" +}, +"backupCrdVersions": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. A list of the Backup for GKE CRD versions found in the cluster.", +"readOnly": true, +"type": "object" +}, +"cluster": { +"description": "Output only. The source cluster from which this Backup was created. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*` This is inherited from the parent BackupPlan's cluster field.", +"readOnly": true, +"type": "string" +}, +"gkeVersion": { +"description": "Output only. GKE version", +"readOnly": true, +"type": "string" +}, +"k8sVersion": { +"description": "Output only. The Kubernetes server version of the source cluster.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClusterResourceRestoreScope": { +"description": "Defines the scope of cluster-scoped resources to restore. Some group kinds are not reasonable choices for a restore, and will cause an error if selected here. Any scope selection that would restore \"all valid\" resources automatically excludes these group kinds. - Node - ComponentStatus - gkebackup.gke.io/BackupJob - gkebackup.gke.io/RestoreJob - metrics.k8s.io/NodeMetrics - migration.k8s.io/StorageState - migration.k8s.io/StorageVersionMigration - snapshot.storage.k8s.io/VolumeSnapshotContent - storage.k8s.io/CSINode - storage.k8s.io/VolumeAttachment Some group kinds are driven by restore configuration elsewhere, and will cause an error if selected here. - Namespace - PersistentVolume", +"id": "ClusterResourceRestoreScope", +"properties": { +"allGroupKinds": { +"description": "Optional. If True, all valid cluster-scoped resources will be restored. Mutually exclusive to any other field in the message.", +"type": "boolean" +}, +"excludedGroupKinds": { +"description": "Optional. A list of cluster-scoped resource group kinds to NOT restore from the backup. If specified, all valid cluster-scoped resources will be restored except for those specified in the list. Mutually exclusive to any other field in the message.", +"items": { +"$ref": "GroupKind" +}, +"type": "array" +}, +"noGroupKinds": { +"description": "Optional. If True, no cluster-scoped resources will be restored. This has the same restore scope as if the message is not defined. Mutually exclusive to any other field in the message.", +"type": "boolean" +}, +"selectedGroupKinds": { +"description": "Optional. A list of cluster-scoped resource group kinds to restore from the backup. If specified, only the selected resources will be restored. Mutually exclusive to any other field in the message.", +"items": { +"$ref": "GroupKind" +}, +"type": "array" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DayOfWeekList": { +"description": "Holds repeated DaysOfWeek values as a container.", +"id": "DayOfWeekList", +"properties": { +"daysOfWeek": { +"description": "Optional. A list of days of week.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionKey": { +"description": "Defined a customer managed encryption key that will be used to encrypt Backup artifacts.", +"id": "EncryptionKey", +"properties": { +"gcpKmsEncryptionKey": { +"description": "Optional. Google Cloud KMS encryption key. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", +"type": "string" +} +}, +"type": "object" +}, +"ExclusionWindow": { +"description": "Defines a time window during which no backup should happen. All time and date are in UTC.", +"id": "ExclusionWindow", +"properties": { +"daily": { +"description": "The exclusion window occurs every day if set to \"True\". Specifying this field to \"False\" is an error.", +"type": "boolean" +}, +"daysOfWeek": { +"$ref": "DayOfWeekList", +"description": "The exclusion window occurs on these days of each week in UTC." +}, +"duration": { +"description": "Required. Specifies duration of the window. Duration must be >= 5 minutes and < (target RPO - 20 minutes). Additional restrictions based on the recurrence type to allow some time for backup to happen: - single_occurrence_date: no restriction, but UI may warn about this when duration >= target RPO - daily window: duration < 24 hours - weekly window: - days of week includes all seven days of a week: duration < 24 hours - all other weekly window: duration < 168 hours (i.e., 24 * 7 hours)", +"format": "google-duration", +"type": "string" +}, +"singleOccurrenceDate": { +"$ref": "Date", +"description": "No recurrence. The exclusion window occurs only once and on this date in UTC." +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. Specifies the start time of the window using time of the day in UTC." +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"Filter": { +"description": "Defines the filter for `Restore`. This filter can be used to further refine the resource selection of the `Restore` beyond the coarse-grained scope defined in the `RestorePlan`. `exclusion_filters` take precedence over `inclusion_filters`. If a resource matches both `inclusion_filters` and `exclusion_filters`, it will not be restored.", +"id": "Filter", +"properties": { +"exclusionFilters": { +"description": "Optional. Excludes resources from restoration. If specified, a resource will not be restored if it matches any `ResourceSelector` of the `exclusion_filters`.", +"items": { +"$ref": "ResourceSelector" +}, +"type": "array" +}, +"inclusionFilters": { +"description": "Optional. Selects resources for restoration. If specified, only resources which match `inclusion_filters` will be selected for restoration. A resource will be selected if it matches any `ResourceSelector` of the `inclusion_filters`.", +"items": { +"$ref": "ResourceSelector" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetBackupIndexDownloadUrlResponse": { +"description": "Response message for GetBackupIndexDownloadUrl.", +"id": "GetBackupIndexDownloadUrlResponse", +"properties": { +"signedUrl": { +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningCancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "GoogleLongrunningCancelOperationRequest", +"properties": {}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GroupKind": { +"description": "This is a direct map to the Kubernetes GroupKind type [GroupKind](https://godoc.org/k8s.io/apimachinery/pkg/runtime/schema#GroupKind) and is used for identifying specific \"types\" of resources to restore.", +"id": "GroupKind", +"properties": { +"resourceGroup": { +"description": "Optional. API group string of a Kubernetes resource, e.g. \"apiextensions.k8s.io\", \"storage.k8s.io\", etc. Note: use empty string for core API group.", +"type": "string" +}, +"resourceKind": { +"description": "Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. \"CustomResourceDefinition\", \"StorageClass\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GroupKindDependency": { +"description": "Defines a dependency between two group kinds.", +"id": "GroupKindDependency", +"properties": { +"requiring": { +"$ref": "GroupKind", +"description": "Required. The requiring group kind requires that the other group kind be restored first." +}, +"satisfying": { +"$ref": "GroupKind", +"description": "Required. The satisfying group kind must be restored first in order to satisfy the dependency." +} +}, +"type": "object" +}, +"ListBackupPlansResponse": { +"description": "Response message for ListBackupPlans.", +"id": "ListBackupPlansResponse", +"properties": { +"backupPlans": { +"description": "The list of BackupPlans matching the given criteria.", +"items": { +"$ref": "BackupPlan" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which may be sent as page_token in a subsequent `ListBackupPlans` call to retrieve the next page of results. If this field is omitted or empty, then there are no more results to return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "Response message for ListBackups.", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "The list of Backups matching the given criteria.", +"items": { +"$ref": "Backup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token which may be sent as page_token in a subsequent `ListBackups` call to retrieve the next page of results. If this field is omitted or empty, then there are no more results to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListRestorePlansResponse": { +"description": "Response message for ListRestorePlans.", +"id": "ListRestorePlansResponse", +"properties": { +"nextPageToken": { +"description": "A token which may be sent as page_token in a subsequent `ListRestorePlans` call to retrieve the next page of results. If this field is omitted or empty, then there are no more results to return.", +"type": "string" +}, +"restorePlans": { +"description": "The list of RestorePlans matching the given criteria.", +"items": { +"$ref": "RestorePlan" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRestoresResponse": { +"description": "Response message for ListRestores.", +"id": "ListRestoresResponse", +"properties": { +"nextPageToken": { +"description": "A token which may be sent as page_token in a subsequent `ListRestores` call to retrieve the next page of results. If this field is omitted or empty, then there are no more results to return.", +"type": "string" +}, +"restores": { +"description": "The list of Restores matching the given criteria.", +"items": { +"$ref": "Restore" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVolumeBackupsResponse": { +"description": "Response message for ListVolumeBackups.", +"id": "ListVolumeBackupsResponse", +"properties": { +"nextPageToken": { +"description": "A token which may be sent as page_token in a subsequent `ListVolumeBackups` call to retrieve the next page of results. If this field is omitted or empty, then there are no more results to return.", +"type": "string" +}, +"volumeBackups": { +"description": "The list of VolumeBackups matching the given criteria.", +"items": { +"$ref": "VolumeBackup" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVolumeRestoresResponse": { +"description": "Response message for ListVolumeRestores.", +"id": "ListVolumeRestoresResponse", +"properties": { +"nextPageToken": { +"description": "A token which may be sent as page_token in a subsequent `ListVolumeRestores` call to retrieve the next page of results. If this field is omitted or empty, then there are no more results to return.", +"type": "string" +}, +"volumeRestores": { +"description": "The list of VolumeRestores matching the given criteria.", +"items": { +"$ref": "VolumeRestore" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"NamespacedName": { +"description": "A reference to a namespaced resource in Kubernetes.", +"id": "NamespacedName", +"properties": { +"name": { +"description": "Optional. The name of the Kubernetes resource.", +"type": "string" +}, +"namespace": { +"description": "Optional. The Namespace of the Kubernetes resource.", +"type": "string" +} +}, +"type": "object" +}, +"NamespacedNames": { +"description": "A list of namespaced Kubernetes resources.", +"id": "NamespacedNames", +"properties": { +"namespacedNames": { +"description": "Optional. A list of namespaced Kubernetes resources.", +"items": { +"$ref": "NamespacedName" +}, +"type": "array" +} +}, +"type": "object" +}, +"Namespaces": { +"description": "A list of Kubernetes Namespaces.", +"id": "Namespaces", +"properties": { +"namespaces": { +"description": "Optional. A list of Kubernetes Namespaces.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ResourceFilter": { +"description": "ResourceFilter specifies matching criteria to limit the scope of a change to a specific set of kubernetes resources that are selected for restoration from a backup.", +"id": "ResourceFilter", +"properties": { +"groupKinds": { +"description": "Optional. (Filtering parameter) Any resource subject to transformation must belong to one of the listed \"types\". If this field is not provided, no type filtering will be performed (all resources of all types matching previous filtering parameters will be candidates for transformation).", +"items": { +"$ref": "GroupKind" +}, +"type": "array" +}, +"jsonPath": { +"description": "Optional. This is a [JSONPath] (https://github.com/json-path/JsonPath/blob/master/README.md) expression that matches specific fields of candidate resources and it operates as a filtering parameter (resources that are not matched with this expression will not be candidates for transformation).", +"type": "string" +}, +"namespaces": { +"description": "Optional. (Filtering parameter) Any resource subject to transformation must be contained within one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no namespace filtering will be performed (all resources in all Namespaces, including all cluster-scoped resources, will be candidates for transformation).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceSelector": { +"description": "Defines a selector to identify a single or a group of resources. Conditions in the selector are optional, but at least one field should be set to a non-empty value. If a condition is not specified, no restrictions will be applied on that dimension. If more than one condition is specified, a resource will be selected if and only if all conditions are met.", +"id": "ResourceSelector", +"properties": { +"groupKind": { +"$ref": "GroupKind", +"description": "Optional. Selects resources using their Kubernetes GroupKinds. If specified, only resources of provided GroupKind will be selected." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Selects resources using Kubernetes [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). If specified, a resource will be selected if and only if the resource has all of the provided labels and all the label values match.", +"type": "object" +}, +"name": { +"description": "Optional. Selects resources using their resource names. If specified, only resources with the provided name will be selected.", +"type": "string" +}, +"namespace": { +"description": "Optional. Selects resources using their namespaces. This only applies to namespace scoped resources and cannot be used for selecting cluster scoped resources. If specified, only resources in the provided namespace will be selected. If not specified, the filter will apply to both cluster scoped and namespace scoped resources (e.g. name or label). The [Namespace](https://pkg.go.dev/k8s.io/api/core/v1#Namespace) resource itself will be restored if and only if any resources within the namespace are restored.", +"type": "string" +} +}, +"type": "object" +}, +"Restore": { +"description": "Represents both a request to Restore some portion of a Backup into a target GKE cluster and a record of the restore operation itself.", +"id": "Restore", +"properties": { +"backup": { +"description": "Required. Immutable. A reference to the Backup used as the source from which this Restore will restore. Note that this Backup must be a sub-resource of the RestorePlan's backup_plan. Format: `projects/*/locations/*/backupPlans/*/backups/*`.", +"type": "string" +}, +"cluster": { +"description": "Output only. The target cluster into which this Restore will restore data. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*` Inherited from parent RestorePlan's cluster value.", +"readOnly": true, +"type": "string" +}, +"completeTime": { +"description": "Output only. Timestamp of when the restore operation completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when this Restore resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User specified descriptive string for this Restore.", +"type": "string" +}, +"etag": { +"description": "Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a restore from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform restore updates in order to avoid race conditions: An `etag` is returned in the response to `GetRestore`, and systems are expected to put that etag in the request to `UpdateRestore` or `DeleteRestore` to ensure that their change will be applied to the same version of the resource.", +"readOnly": true, +"type": "string" +}, +"filter": { +"$ref": "Filter", +"description": "Optional. Immutable. Filters resources for `Restore`. If not specified, the scope of the restore will remain the same as defined in the `RestorePlan`. If this is specified and no resources are matched by the `inclusion_filters` or everyting is excluded by the `exclusion_filters`, nothing will be restored. This filter can only be specified if the value of namespaced_resource_restore_mode is set to `MERGE_SKIP_ON_CONFLICT`, `MERGE_REPLACE_VOLUME_ON_CONFLICT` or `MERGE_REPLACE_ON_CONFLICT`." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "A set of custom labels supplied by user.", +"type": "object" +}, +"name": { +"description": "Output only. The full name of the Restore resource. Format: `projects/*/locations/*/restorePlans/*/restores/*`", +"readOnly": true, +"type": "string" +}, +"resourcesExcludedCount": { +"description": "Output only. Number of resources excluded during the restore execution.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"resourcesFailedCount": { +"description": "Output only. Number of resources that failed to be restored during the restore execution.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"resourcesRestoredCount": { +"description": "Output only. Number of resources restored during the restore execution.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"restoreConfig": { +"$ref": "RestoreConfig", +"description": "Output only. Configuration of the Restore. Inherited from parent RestorePlan's restore_config.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the Restore.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"IN_PROGRESS", +"SUCCEEDED", +"FAILED", +"DELETING", +"VALIDATING" +], +"enumDescriptions": [ +"The Restore resource is in the process of being created.", +"The Restore resource has been created and the associated RestoreJob Kubernetes resource has been injected into target cluster.", +"The gkebackup agent in the cluster has begun executing the restore operation.", +"The restore operation has completed successfully. Restored workloads may not yet be operational.", +"The restore operation has failed.", +"This Restore resource is in the process of being deleted.", +"The Kubernetes resources created by this Restore are being validated." +], +"readOnly": true, +"type": "string" +}, +"stateReason": { +"description": "Output only. Human-readable description of why the Restore is in its current state. This field is only meant for human readability and should not be used programmatically as this field is not guaranteed to be consistent.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this Restore resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"volumeDataRestorePolicyOverrides": { +"description": "Optional. Immutable. Overrides the volume data restore policies selected in the Restore Config for override-scoped resources.", +"items": { +"$ref": "VolumeDataRestorePolicyOverride" +}, +"type": "array" +}, +"volumesRestoredCount": { +"description": "Output only. Number of volumes restored during the restore execution.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"RestoreConfig": { +"description": "Configuration of a restore.", +"id": "RestoreConfig", +"properties": { +"allNamespaces": { +"description": "Restore all namespaced resources in the Backup if set to \"True\". Specifying this field to \"False\" is an error.", +"type": "boolean" +}, +"clusterResourceConflictPolicy": { +"description": "Optional. Defines the behavior for handling the situation where cluster-scoped resources being restored already exist in the target cluster. This MUST be set to a value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if cluster_resource_restore_scope is not empty.", +"enum": [ +"CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED", +"USE_EXISTING_VERSION", +"USE_BACKUP_VERSION" +], +"enumDescriptions": [ +"Unspecified. Only allowed if no cluster-scoped resources will be restored.", +"Do not attempt to restore the conflicting resource.", +"Delete the existing version before re-creating it from the Backup. This is a dangerous option which could cause unintentional data loss if used inappropriately. For example, deleting a CRD will cause Kubernetes to delete all CRs of that type." +], +"type": "string" +}, +"clusterResourceRestoreScope": { +"$ref": "ClusterResourceRestoreScope", +"description": "Optional. Identifies the cluster-scoped resources to restore from the Backup. Not specifying it means NO cluster resource will be restored." +}, +"excludedNamespaces": { +"$ref": "Namespaces", +"description": "A list of selected namespaces excluded from restoration. All namespaces except those in this list will be restored." +}, +"namespacedResourceRestoreMode": { +"description": "Optional. Defines the behavior for handling the situation where sets of namespaced resources being restored already exist in the target cluster. This MUST be set to a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED.", +"enum": [ +"NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED", +"DELETE_AND_RESTORE", +"FAIL_ON_CONFLICT", +"MERGE_SKIP_ON_CONFLICT", +"MERGE_REPLACE_VOLUME_ON_CONFLICT", +"MERGE_REPLACE_ON_CONFLICT" +], +"enumDescriptions": [ +"Unspecified (invalid).", +"When conflicting top-level resources (either Namespaces or ProtectedApplications, depending upon the scope) are encountered, this will first trigger a delete of the conflicting resource AND ALL OF ITS REFERENCED RESOURCES (e.g., all resources in the Namespace or all resources referenced by the ProtectedApplication) before restoring the resources from the Backup. This mode should only be used when you are intending to revert some portion of a cluster to an earlier state.", +"If conflicting top-level resources (either Namespaces or ProtectedApplications, depending upon the scope) are encountered at the beginning of a restore process, the Restore will fail. If a conflict occurs during the restore process itself (e.g., because an out of band process creates conflicting resources), a conflict will be reported.", +"This mode merges the backup and the target cluster and skips the conflicting resources. If a single resource to restore exists in the cluster before restoration, the resource will be skipped, otherwise it will be restored.", +"This mode merges the backup and the target cluster and skips the conflicting resources except volume data. If a PVC to restore already exists, this mode will restore/reconnect the volume without overwriting the PVC. It is similar to MERGE_SKIP_ON_CONFLICT except that it will apply the volume data policy for the conflicting PVCs: - RESTORE_VOLUME_DATA_FROM_BACKUP: restore data only and respect the reclaim policy of the original PV; - REUSE_VOLUME_HANDLE_FROM_BACKUP: reconnect and respect the reclaim policy of the original PV; - NO_VOLUME_DATA_RESTORATION: new provision and respect the reclaim policy of the original PV. Note that this mode could cause data loss as the original PV can be retained or deleted depending on its reclaim policy.", +"This mode merges the backup and the target cluster and replaces the conflicting resources with the ones in the backup. If a single resource to restore exists in the cluster before restoration, the resource will be replaced with the one from the backup. To replace an existing resource, the first attempt is to update the resource to match the one from the backup; if the update fails, the second attempt is to delete the resource and restore it from the backup. Note that this mode could cause data loss as it replaces the existing resources in the target cluster, and the original PV can be retained or deleted depending on its reclaim policy." +], +"type": "string" +}, +"noNamespaces": { +"description": "Do not restore any namespaced resources if set to \"True\". Specifying this field to \"False\" is not allowed.", +"type": "boolean" +}, +"restoreOrder": { +"$ref": "RestoreOrder", +"description": "Optional. RestoreOrder contains custom ordering to use on a Restore." +}, +"selectedApplications": { +"$ref": "NamespacedNames", +"description": "A list of selected ProtectedApplications to restore. The listed ProtectedApplications and all the resources to which they refer will be restored." +}, +"selectedNamespaces": { +"$ref": "Namespaces", +"description": "A list of selected Namespaces to restore from the Backup. The listed Namespaces and all resources contained in them will be restored." +}, +"substitutionRules": { +"description": "Optional. A list of transformation rules to be applied against Kubernetes resources as they are selected for restoration from a Backup. Rules are executed in order defined - this order matters, as changes made by a rule may impact the filtering logic of subsequent rules. An empty list means no substitution will occur.", +"items": { +"$ref": "SubstitutionRule" +}, +"type": "array" +}, +"transformationRules": { +"description": "Optional. A list of transformation rules to be applied against Kubernetes resources as they are selected for restoration from a Backup. Rules are executed in order defined - this order matters, as changes made by a rule may impact the filtering logic of subsequent rules. An empty list means no transformation will occur.", +"items": { +"$ref": "TransformationRule" +}, +"type": "array" +}, +"volumeDataRestorePolicy": { +"description": "Optional. Specifies the mechanism to be used to restore volume data. Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (will be treated as NO_VOLUME_DATA_RESTORATION).", +"enum": [ +"VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED", +"RESTORE_VOLUME_DATA_FROM_BACKUP", +"REUSE_VOLUME_HANDLE_FROM_BACKUP", +"NO_VOLUME_DATA_RESTORATION" +], +"enumDescriptions": [ +"Unspecified (illegal).", +"For each PVC to be restored, create a new underlying volume and PV from the corresponding VolumeBackup contained within the Backup.", +"For each PVC to be restored, attempt to reuse the original PV contained in the Backup (with its original underlying volume). This option is likely only usable when restoring a workload to its original cluster.", +"For each PVC to be restored, create PVC without any particular action to restore data. In this case, the normal Kubernetes provisioning logic would kick in, and this would likely result in either dynamically provisioning blank PVs or binding to statically provisioned PVs." +], +"type": "string" +}, +"volumeDataRestorePolicyBindings": { +"description": "Optional. A table that binds volumes by their scope to a restore policy. Bindings must have a unique scope. Any volumes not scoped in the bindings are subject to the policy defined in volume_data_restore_policy.", +"items": { +"$ref": "VolumeDataRestorePolicyBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"RestoreOrder": { +"description": "Allows customers to specify dependencies between resources that Backup for GKE can use to compute a resasonable restore order.", +"id": "RestoreOrder", +"properties": { +"groupKindDependencies": { +"description": "Optional. Contains a list of group kind dependency pairs provided by the customer, that is used by Backup for GKE to generate a group kind restore order.", +"items": { +"$ref": "GroupKindDependency" +}, +"type": "array" +} +}, +"type": "object" +}, +"RestorePlan": { +"description": "The configuration of a potential series of Restore operations to be performed against Backups belong to a particular BackupPlan.", +"id": "RestorePlan", +"properties": { +"backupPlan": { +"description": "Required. Immutable. A reference to the BackupPlan from which Backups may be used as the source for Restores created via this RestorePlan. Format: `projects/*/locations/*/backupPlans/*`.", +"type": "string" +}, +"cluster": { +"description": "Required. Immutable. The target cluster into which Restores created via this RestorePlan will restore data. NOTE: the cluster's region must be the same as the RestorePlan. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*`", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when this RestorePlan resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User specified descriptive string for this RestorePlan.", +"type": "string" +}, +"etag": { +"description": "Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a restore from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform restore updates in order to avoid race conditions: An `etag` is returned in the response to `GetRestorePlan`, and systems are expected to put that etag in the request to `UpdateRestorePlan` or `DeleteRestorePlan` to ensure that their change will be applied to the same version of the resource.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A set of custom labels supplied by user.", +"type": "object" +}, +"name": { +"description": "Output only. The full name of the RestorePlan resource. Format: `projects/*/locations/*/restorePlans/*`.", +"readOnly": true, +"type": "string" +}, +"restoreConfig": { +"$ref": "RestoreConfig", +"description": "Required. Configuration of Restores created via this RestorePlan." +}, +"state": { +"description": "Output only. State of the RestorePlan. This State field reflects the various stages a RestorePlan can be in during the Create operation.", +"enum": [ +"STATE_UNSPECIFIED", +"CLUSTER_PENDING", +"READY", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"Default first value for Enums.", +"Waiting for cluster state to be RUNNING.", +"The RestorePlan has successfully been created and is ready for Restores.", +"RestorePlan creation has failed.", +"The RestorePlan is in the process of being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateReason": { +"description": "Output only. Human-readable description of why RestorePlan is in the current `state`. This field is only meant for human readability and should not be used programmatically as this field is not guaranteed to be consistent.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this RestorePlan resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RetentionPolicy": { +"description": "RetentionPolicy defines a Backup retention policy for a BackupPlan.", +"id": "RetentionPolicy", +"properties": { +"backupDeleteLockDays": { +"description": "Optional. Minimum age for Backups created via this BackupPlan (in days). This field MUST be an integer value between 0-90 (inclusive). A Backup created under this BackupPlan will NOT be deletable until it reaches Backup's (create_time + backup_delete_lock_days). Updating this field of a BackupPlan does NOT affect existing Backups under it. Backups created AFTER a successful update will inherit the new value. Default: 0 (no delete blocking)", +"format": "int32", +"type": "integer" +}, +"backupRetainDays": { +"description": "Optional. The default maximum age of a Backup created via this BackupPlan. This field MUST be an integer value >= 0 and <= 365. If specified, a Backup created under this BackupPlan will be automatically deleted after its age reaches (create_time + backup_retain_days). If not specified, Backups created under this BackupPlan will NOT be subject to automatic deletion. Updating this field does NOT affect existing Backups under it. Backups created AFTER a successful update will automatically pick up the new value. NOTE: backup_retain_days must be >= backup_delete_lock_days. If cron_schedule is defined, then this must be <= 360 * the creation interval. If rpo_config is defined, then this must be <= 360 * target_rpo_minutes / (1440minutes/day). Default: 0 (no automatic deletion)", +"format": "int32", +"type": "integer" +}, +"locked": { +"description": "Optional. This flag denotes whether the retention policy of this BackupPlan is locked. If set to True, no further update is allowed on this policy, including the `locked` field itself. Default: False", +"type": "boolean" +} +}, +"type": "object" +}, +"RpoConfig": { +"description": "Defines RPO scheduling configuration for automatically creating Backups via this BackupPlan.", +"id": "RpoConfig", +"properties": { +"exclusionWindows": { +"description": "Optional. User specified time windows during which backup can NOT happen for this BackupPlan - backups should start and finish outside of any given exclusion window. Note: backup jobs will be scheduled to start and finish outside the duration of the window as much as possible, but running jobs will not get canceled when it runs into the window. All the time and date values in exclusion_windows entry in the API are in UTC. We only allow <=1 recurrence (daily or weekly) exclusion window for a BackupPlan while no restriction on number of single occurrence windows.", +"items": { +"$ref": "ExclusionWindow" +}, +"type": "array" +}, +"targetRpoMinutes": { +"description": "Required. Defines the target RPO for the BackupPlan in minutes, which means the target maximum data loss in time that is acceptable for this BackupPlan. This must be at least 60, i.e., 1 hour, and at most 86400, i.e., 60 days.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Schedule": { +"description": "Defines scheduling parameters for automatically creating Backups via this BackupPlan.", +"id": "Schedule", +"properties": { +"cronSchedule": { +"description": "Optional. A standard [cron](https://wikipedia.com/wiki/cron) string that defines a repeating schedule for creating Backups via this BackupPlan. This is mutually exclusive with the rpo_config field since at most one schedule can be defined for a BackupPlan. If this is defined, then backup_retain_days must also be defined. Default (empty): no automatic backup creation will occur.", +"type": "string" +}, +"nextScheduledBackupTime": { +"description": "Output only. Start time of next scheduled backup under this BackupPlan by either cron_schedule or rpo config.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"paused": { +"description": "Optional. This flag denotes whether automatic Backup creation is paused for this BackupPlan. Default: False", +"type": "boolean" +}, +"rpoConfig": { +"$ref": "RpoConfig", +"description": "Optional. Defines the RPO schedule configuration for this BackupPlan. This is mutually exclusive with the cron_schedule field since at most one schedule can be defined for a BackupPLan. If this is defined, then backup_retain_days must also be defined. Default (empty): no automatic backup creation will occur." +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SubstitutionRule": { +"description": "A transformation rule to be applied against Kubernetes resources as they are selected for restoration from a Backup. A rule contains both filtering logic (which resources are subject to substitution) and substitution logic.", +"id": "SubstitutionRule", +"properties": { +"newValue": { +"description": "Optional. This is the new value to set for any fields that pass the filtering and selection criteria. To remove a value from a Kubernetes resource, either leave this field unspecified, or set it to the empty string (\"\").", +"type": "string" +}, +"originalValuePattern": { +"description": "Optional. (Filtering parameter) This is a [regular expression] (https://en.wikipedia.org/wiki/Regular_expression) that is compared against the fields matched by the target_json_path expression (and must also have passed the previous filters). Substitution will not be performed against fields whose value does not match this expression. If this field is NOT specified, then ALL fields matched by the target_json_path expression will undergo substitution. Note that an empty (e.g., \"\", rather than unspecified) value for this field will only match empty fields.", +"type": "string" +}, +"targetGroupKinds": { +"description": "Optional. (Filtering parameter) Any resource subject to substitution must belong to one of the listed \"types\". If this field is not provided, no type filtering will be performed (all resources of all types matching previous filtering parameters will be candidates for substitution).", +"items": { +"$ref": "GroupKind" +}, +"type": "array" +}, +"targetJsonPath": { +"description": "Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/) expression that matches specific fields of candidate resources and it operates as both a filtering parameter (resources that are not matched with this expression will not be candidates for substitution) as well as a field identifier (identifies exactly which fields out of the candidate resources will be modified).", +"type": "string" +}, +"targetNamespaces": { +"description": "Optional. (Filtering parameter) Any resource subject to substitution must be contained within one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no namespace filtering will be performed (all resources in all Namespaces, including all cluster-scoped resources, will be candidates for substitution). To mix cluster-scoped and namespaced resources in the same rule, use an empty string (\"\") as one of the target namespaces.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TransformationRule": { +"description": "A transformation rule to be applied against Kubernetes resources as they are selected for restoration from a Backup. A rule contains both filtering logic (which resources are subject to transform) and transformation logic.", +"id": "TransformationRule", +"properties": { +"description": { +"description": "Optional. The description is a user specified string description of the transformation rule.", +"type": "string" +}, +"fieldActions": { +"description": "Required. A list of transformation rule actions to take against candidate resources. Actions are executed in order defined - this order matters, as they could potentially interfere with each other and the first operation could affect the outcome of the second operation.", +"items": { +"$ref": "TransformationRuleAction" +}, +"type": "array" +}, +"resourceFilter": { +"$ref": "ResourceFilter", +"description": "Optional. This field is used to specify a set of fields that should be used to determine which resources in backup should be acted upon by the supplied transformation rule actions, and this will ensure that only specific resources are affected by transformation rule actions." +} +}, +"type": "object" +}, +"TransformationRuleAction": { +"description": "TransformationRuleAction defines a TransformationRule action based on the JSON Patch RFC (https://www.rfc-editor.org/rfc/rfc6902)", +"id": "TransformationRuleAction", +"properties": { +"fromPath": { +"description": "Optional. A string containing a JSON Pointer value that references the location in the target document to move the value from.", +"type": "string" +}, +"op": { +"description": "Required. op specifies the operation to perform.", +"enum": [ +"OP_UNSPECIFIED", +"REMOVE", +"MOVE", +"COPY", +"ADD", +"TEST", +"REPLACE" +], +"enumDescriptions": [ +"Unspecified operation", +"The \"remove\" operation removes the value at the target location.", +"The \"move\" operation removes the value at a specified location and adds it to the target location.", +"The \"copy\" operation copies the value at a specified location to the target location.", +"The \"add\" operation performs one of the following functions, depending upon what the target location references: 1. If the target location specifies an array index, a new value is inserted into the array at the specified index. 2. If the target location specifies an object member that does not already exist, a new member is added to the object. 3. If the target location specifies an object member that does exist, that member's value is replaced.", +"The \"test\" operation tests that a value at the target location is equal to a specified value.", +"The \"replace\" operation replaces the value at the target location with a new value. The operation object MUST contain a \"value\" member whose content specifies the replacement value." +], +"type": "string" +}, +"path": { +"description": "Optional. A string containing a JSON-Pointer value that references a location within the target document where the operation is performed.", +"type": "string" +}, +"value": { +"description": "Optional. A string that specifies the desired value in string format to use for transformation.", +"type": "string" +} +}, +"type": "object" +}, +"VolumeBackup": { +"description": "Represents the backup of a specific persistent volume as a component of a Backup - both the record of the operation and a pointer to the underlying storage-specific artifacts.", +"id": "VolumeBackup", +"properties": { +"completeTime": { +"description": "Output only. The timestamp when the associated underlying volume backup operation completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when this VolumeBackup resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"diskSizeBytes": { +"description": "Output only. The minimum size of the disk to which this VolumeBackup can be restored.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a volume backup from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform volume backup updates in order to avoid race conditions.", +"readOnly": true, +"type": "string" +}, +"format": { +"description": "Output only. The format used for the volume backup.", +"enum": [ +"VOLUME_BACKUP_FORMAT_UNSPECIFIED", +"GCE_PERSISTENT_DISK" +], +"enumDescriptions": [ +"Default value, not specified.", +"Compute Engine Persistent Disk snapshot based volume backup." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The full name of the VolumeBackup resource. Format: `projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*`.", +"readOnly": true, +"type": "string" +}, +"sourcePvc": { +"$ref": "NamespacedName", +"description": "Output only. A reference to the source Kubernetes PVC from which this VolumeBackup was created.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of this VolumeBackup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"SNAPSHOTTING", +"UPLOADING", +"SUCCEEDED", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"This is an illegal state and should not be encountered.", +"A volume for the backup was identified and backup process is about to start.", +"The volume backup operation has begun and is in the initial \"snapshot\" phase of the process. Any defined ProtectedApplication \"pre\" hooks will be executed before entering this state and \"post\" hooks will be executed upon leaving this state.", +"The snapshot phase of the volume backup operation has completed and the snapshot is now being uploaded to backup storage.", +"The volume backup operation has completed successfully.", +"The volume backup operation has failed.", +"This VolumeBackup resource (and its associated artifacts) is in the process of being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. A human readable message explaining why the VolumeBackup is in its current state. This field is only meant for human consumption and should not be used programmatically as this field is not guaranteed to be consistent.", +"readOnly": true, +"type": "string" +}, +"storageBytes": { +"description": "Output only. The aggregate size of the underlying artifacts associated with this VolumeBackup in the backup storage. This may change over time when multiple backups of the same volume share the same backup storage location. In particular, this is likely to increase in size when the immediately preceding backup of the same volume is deleted.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this VolumeBackup resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"volumeBackupHandle": { +"description": "Output only. A storage system-specific opaque handle to the underlying volume backup.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"VolumeDataRestorePolicyBinding": { +"description": "Binds resources in the scope to the given VolumeDataRestorePolicy.", +"id": "VolumeDataRestorePolicyBinding", +"properties": { +"policy": { +"description": "Required. The VolumeDataRestorePolicy to apply when restoring volumes in scope.", +"enum": [ +"VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED", +"RESTORE_VOLUME_DATA_FROM_BACKUP", +"REUSE_VOLUME_HANDLE_FROM_BACKUP", +"NO_VOLUME_DATA_RESTORATION" +], +"enumDescriptions": [ +"Unspecified (illegal).", +"For each PVC to be restored, create a new underlying volume and PV from the corresponding VolumeBackup contained within the Backup.", +"For each PVC to be restored, attempt to reuse the original PV contained in the Backup (with its original underlying volume). This option is likely only usable when restoring a workload to its original cluster.", +"For each PVC to be restored, create PVC without any particular action to restore data. In this case, the normal Kubernetes provisioning logic would kick in, and this would likely result in either dynamically provisioning blank PVs or binding to statically provisioned PVs." +], +"type": "string" +}, +"volumeType": { +"description": "The volume type, as determined by the PVC's bound PV, to apply the policy to.", +"enum": [ +"VOLUME_TYPE_UNSPECIFIED", +"GCE_PERSISTENT_DISK" +], +"enumDescriptions": [ +"Default", +"Compute Engine Persistent Disk volume" +], +"type": "string" +} +}, +"type": "object" +}, +"VolumeDataRestorePolicyOverride": { +"description": "Defines an override to apply a VolumeDataRestorePolicy for scoped resources.", +"id": "VolumeDataRestorePolicyOverride", +"properties": { +"policy": { +"description": "Required. The VolumeDataRestorePolicy to apply when restoring volumes in scope.", +"enum": [ +"VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED", +"RESTORE_VOLUME_DATA_FROM_BACKUP", +"REUSE_VOLUME_HANDLE_FROM_BACKUP", +"NO_VOLUME_DATA_RESTORATION" +], +"enumDescriptions": [ +"Unspecified (illegal).", +"For each PVC to be restored, create a new underlying volume and PV from the corresponding VolumeBackup contained within the Backup.", +"For each PVC to be restored, attempt to reuse the original PV contained in the Backup (with its original underlying volume). This option is likely only usable when restoring a workload to its original cluster.", +"For each PVC to be restored, create PVC without any particular action to restore data. In this case, the normal Kubernetes provisioning logic would kick in, and this would likely result in either dynamically provisioning blank PVs or binding to statically provisioned PVs." +], +"type": "string" +}, +"selectedPvcs": { +"$ref": "NamespacedNames", +"description": "A list of PVCs to apply the policy override to." +} +}, +"type": "object" +}, +"VolumeRestore": { +"description": "Represents the operation of restoring a volume from a VolumeBackup.", +"id": "VolumeRestore", +"properties": { +"completeTime": { +"description": "Output only. The timestamp when the associated underlying volume restoration completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when this VolumeRestore resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a volume restore from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform volume restore updates in order to avoid race conditions.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Full name of the VolumeRestore resource. Format: `projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of this VolumeRestore.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"RESTORING", +"SUCCEEDED", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"This is an illegal state and should not be encountered.", +"A volume for the restore was identified and restore process is about to start.", +"The volume is currently being restored.", +"The volume has been successfully restored.", +"The volume restoration process failed.", +"This VolumeRestore resource is in the process of being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. A human readable message explaining why the VolumeRestore is in its current state.", +"readOnly": true, +"type": "string" +}, +"targetPvc": { +"$ref": "NamespacedName", +"description": "Output only. The reference to the target Kubernetes PVC to be restored.", +"readOnly": true +}, +"uid": { +"description": "Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this VolumeRestore resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"volumeBackup": { +"description": "Output only. The full name of the VolumeBackup from which the volume will be restored. Format: `projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*`.", +"readOnly": true, +"type": "string" +}, +"volumeHandle": { +"description": "Output only. A storage system-specific opaque handler to the underlying volume created for the target PVC from the volume backup.", +"readOnly": true, +"type": "string" +}, +"volumeType": { +"description": "Output only. The type of volume provisioned", +"enum": [ +"VOLUME_TYPE_UNSPECIFIED", +"GCE_PERSISTENT_DISK" +], +"enumDescriptions": [ +"Default", +"Compute Engine Persistent Disk volume" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Backup for GKE API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/iap.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/iap.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..44cd435ad6caed8b38ebd70f95741ca2571dc106 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/iap.v1beta1.json @@ -0,0 +1,336 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://iap.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud IAP", +"description": "Controls access to cloud applications running on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/iap", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "iap:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://iap.mtls.googleapis.com/", +"name": "iap", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"v1beta1": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for an Identity-Aware Proxy protected resource. More information about managing access via IAP can be found at: https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api", +"flatPath": "v1beta1/{v1beta1Id}:getIamPolicy", +"httpMethod": "POST", +"id": "iap.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy for an Identity-Aware Proxy protected resource. Replaces any existing policy. More information about managing access via IAP can be found at: https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api", +"flatPath": "v1beta1/{v1beta1Id}:setIamPolicy", +"httpMethod": "POST", +"id": "iap.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the Identity-Aware Proxy protected resource. If the resource does not exist or the caller does not have Identity-Aware Proxy permissions a [google.rpc.Code.PERMISSION_DENIED] will be returned. More information about managing access via IAP can be found at: https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api", +"flatPath": "v1beta1/{v1beta1Id}:testIamPermissions", +"httpMethod": "POST", +"id": "iap.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20240701", +"rootUrl": "https://iap.googleapis.com/", +"schemas": { +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Identity-Aware Proxy API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/ideahub.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/ideahub.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..4579eda3a9fdc8e0279d091a948df0ad1697d78f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/ideahub.v1beta.json @@ -0,0 +1,475 @@ +{ + "basePath": "", + "baseUrl": "https://ideahub.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Ideahub", + "description": "This is an invitation-only API.", + "discoveryVersion": "v1", + "documentationLink": "https://console.cloud.google.com/apis/library/ideahub.googleapis.com", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "ideahub:v1beta", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://ideahub.mtls.googleapis.com/", + "name": "ideahub", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "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.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "platforms": { + "resources": { + "properties": { + "resources": { + "ideaActivities": { + "methods": { + "create": { + "description": "Creates an idea activity entry.", + "flatPath": "v1beta/platforms/{platformsId}/properties/{propertiesId}/ideaActivities", + "httpMethod": "POST", + "id": "ideahub.platforms.properties.ideaActivities.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this idea activity will be created. Format: platforms/{platform}/property/{property}", + "location": "path", + "pattern": "^platforms/[^/]+/properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/ideaActivities", + "request": { + "$ref": "GoogleSearchIdeahubV1betaIdeaActivity" + }, + "response": { + "$ref": "GoogleSearchIdeahubV1betaIdeaActivity" + } + } + } + }, + "ideaStates": { + "methods": { + "patch": { + "description": "Update an idea state resource.", + "flatPath": "v1beta/platforms/{platformsId}/properties/{propertiesId}/ideaStates/{ideaStatesId}", + "httpMethod": "PATCH", + "id": "ideahub.platforms.properties.ideaStates.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Unique identifier for the idea state. Format: platforms/{platform}/properties/{property}/ideaStates/{idea_state}", + "location": "path", + "pattern": "^platforms/[^/]+/properties/[^/]+/ideaStates/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "GoogleSearchIdeahubV1betaIdeaState" + }, + "response": { + "$ref": "GoogleSearchIdeahubV1betaIdeaState" + } + } + } + }, + "ideas": { + "methods": { + "list": { + "description": "List ideas for a given Creator and filter and sort options.", + "flatPath": "v1beta/platforms/{platformsId}/properties/{propertiesId}/ideas", + "httpMethod": "GET", + "id": "ideahub.platforms.properties.ideas.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions are implicitly combined, as if the `AND` operator was always used. The `OR` operator is currently unsupported. * Supported functions: - `saved(bool)`: If set to true, fetches only saved ideas. If set to false, fetches all except saved ideas. Can't be simultaneously used with `dismissed(bool)`. - `dismissed(bool)`: If set to true, fetches only dismissed ideas. Can't be simultaneously used with `saved(bool)`. The `false` value is currently unsupported. Examples: * `saved(true)` * `saved(false)` * `dismissed(true)` The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Order semantics described below.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of ideas per page. If unspecified, at most 10 ideas will be returned. The maximum value is 2000; values above 2000 will be coerced to 2000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Used to fetch next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. If defined, specifies the creator for which to filter by. Format: publishers/{publisher}/properties/{property}", + "location": "path", + "pattern": "^platforms/[^/]+/properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/ideas", + "response": { + "$ref": "GoogleSearchIdeahubV1betaListIdeasResponse" + } + } + } + }, + "locales": { + "methods": { + "list": { + "description": "Returns which locales ideas are available in for a given Creator.", + "flatPath": "v1beta/platforms/{platformsId}/properties/{propertiesId}/locales", + "httpMethod": "GET", + "id": "ideahub.platforms.properties.locales.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of locales to return. The service may return fewer than this value. If unspecified, at most 100 locales will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAvailableLocales` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAvailableLocales` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The web property to check idea availability for Format: platforms/{platform}/property/{property}", + "location": "path", + "pattern": "^platforms/[^/]+/properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/locales", + "response": { + "$ref": "GoogleSearchIdeahubV1betaListAvailableLocalesResponse" + } + } + } + }, + "topicStates": { + "methods": { + "patch": { + "description": "Update a topic state resource.", + "flatPath": "v1beta/platforms/{platformsId}/properties/{propertiesId}/topicStates/{topicStatesId}", + "httpMethod": "PATCH", + "id": "ideahub.platforms.properties.topicStates.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Unique identifier for the topic state. Format: platforms/{platform}/properties/{property}/topicStates/{topic_state}", + "location": "path", + "pattern": "^platforms/[^/]+/properties/[^/]+/topicStates/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "GoogleSearchIdeahubV1betaTopicState" + }, + "response": { + "$ref": "GoogleSearchIdeahubV1betaTopicState" + } + } + } + } + } + } + } + } + }, + "revision": "20230107", + "rootUrl": "https://ideahub.googleapis.com/", + "schemas": { + "GoogleSearchIdeahubV1betaAvailableLocale": { + "description": "Represents locales that are available for a web property.", + "id": "GoogleSearchIdeahubV1betaAvailableLocale", + "properties": { + "locale": { + "description": "A string in BCP 47 format, without a resource prefix.", + "type": "string" + }, + "name": { + "description": "A string in BCP 47 format, prefixed with the platform and property name, and \"locales/\". Format: platforms/{platform}/properties/{property}/locales/{locale}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaIdea": { + "description": "A single Idea that we want to show the end user.", + "id": "GoogleSearchIdeahubV1betaIdea", + "properties": { + "name": { + "description": "Unique identifier for the idea. Format: ideas/{ideaId}", + "type": "string" + }, + "text": { + "description": "The idea\u2019s text.", + "type": "string" + }, + "topics": { + "description": "The Topics that match the idea.", + "items": { + "$ref": "GoogleSearchIdeahubV1betaTopic" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaIdeaActivity": { + "description": "An idea activity entry.", + "id": "GoogleSearchIdeahubV1betaIdeaActivity", + "properties": { + "ideas": { + "description": "The Idea IDs for this entry. If empty, topics should be set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Unique identifier for the idea activity. The name is ignored when creating an idea activity. Format: platforms/{platform}/properties/{property}/ideaActivities/{idea_activity}", + "type": "string" + }, + "topics": { + "description": "The Topic IDs for this entry. If empty, ideas should be set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "The type of activity performed.", + "enum": [ + "TYPE_UNSPECIFIED", + "POST_DRAFTED", + "POST_PUBLISHED", + "POST_DELETED", + "POST_UNPUBLISHED" + ], + "enumDescriptions": [ + "An unspecified, unknown type of idea activity.", + "An idea activity type indicating a post has been drafted.", + "An idea activity type indicating a post has been published.", + "An idea activity type indicating a post has been deleted.", + "An idea activity type indicating a post has been unpublished." + ], + "type": "string" + }, + "uri": { + "description": "The uri the activity relates to.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaIdeaState": { + "description": "Represents idea state specific to a web property.", + "id": "GoogleSearchIdeahubV1betaIdeaState", + "properties": { + "dismissed": { + "description": "Whether the idea is dismissed.", + "type": "boolean" + }, + "name": { + "description": "Unique identifier for the idea state. Format: platforms/{platform}/properties/{property}/ideaStates/{idea_state}", + "type": "string" + }, + "saved": { + "description": "Whether the idea is saved.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaListAvailableLocalesResponse": { + "description": "Response for whether ideas are available for a given web property on a platform, for the currently logged-in user.", + "id": "GoogleSearchIdeahubV1betaListAvailableLocalesResponse", + "properties": { + "availableLocales": { + "description": "Locales for which ideas are available for the given Creator.", + "items": { + "$ref": "GoogleSearchIdeahubV1betaAvailableLocale" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaListIdeasResponse": { + "id": "GoogleSearchIdeahubV1betaListIdeasResponse", + "properties": { + "ideas": { + "description": "Results for the ListIdeasRequest.", + "items": { + "$ref": "GoogleSearchIdeahubV1betaIdea" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Used to fetch the next page in a subsequent request.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaTopic": { + "description": "Represents a Topic umbrella for a list of questions that a Creator may want to respond to.", + "id": "GoogleSearchIdeahubV1betaTopic", + "properties": { + "displayName": { + "description": "String displayed to the creator indicating the name of the Topic.", + "type": "string" + }, + "mid": { + "description": "The mID of the topic.", + "type": "string" + }, + "name": { + "description": "Unique identifier for the topic. Format: topics/{topic}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleSearchIdeahubV1betaTopicState": { + "description": "Represents topic state specific to a web property.", + "id": "GoogleSearchIdeahubV1betaTopicState", + "properties": { + "dismissed": { + "description": "Whether the topic is dismissed.", + "type": "boolean" + }, + "name": { + "description": "Unique identifier for the topic state. Format: platforms/{platform}/properties/{property}/topicStates/{topic_state}", + "type": "string" + }, + "saved": { + "description": "Whether the topic is saved.", + "type": "boolean" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Idea Hub API", + "version": "v1beta", + "version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/identitytoolkit.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/identitytoolkit.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..3fec5f320055618696a6e41a50787036ac8c75a9 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/identitytoolkit.v3.json @@ -0,0 +1,2115 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "View and manage your data across Google Cloud Platform services" +}, +"https://www.googleapis.com/auth/firebase": { +"description": "View and administer all your Firebase data and settings" +} +} +} +}, +"basePath": "/identitytoolkit/v3/relyingparty/", +"baseUrl": "https://www.googleapis.com/identitytoolkit/v3/relyingparty/", +"batchPath": "batch/identitytoolkit/v3", +"canonicalName": "Identity Toolkit", +"description": "Help the third party sites to implement federated login.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/identity-toolkit/v3/", +"etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/3oj2ig7C4N6A-_tqqb8y4vu2RvM\"", +"icons": { +"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", +"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" +}, +"id": "identitytoolkit:v3", +"kind": "discovery#restDescription", +"name": "identitytoolkit", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"alt": { +"default": "json", +"description": "Data format for the response.", +"enum": [ +"json" +], +"enumDescriptions": [ +"Responses with Content-Type of application/json" +], +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.", +"location": "query", +"type": "string" +}, +"userIp": { +"description": "Deprecated. Please use quotaUser instead.", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"relyingparty": { +"methods": { +"createAuthUri": { +"description": "Creates the URI used by the IdP to authenticate the user.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.createAuthUri", +"path": "createAuthUri", +"request": { +"$ref": "IdentitytoolkitRelyingpartyCreateAuthUriRequest" +}, +"response": { +"$ref": "CreateAuthUriResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deleteAccount": { +"description": "Delete user account.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.deleteAccount", +"path": "deleteAccount", +"request": { +"$ref": "IdentitytoolkitRelyingpartyDeleteAccountRequest" +}, +"response": { +"$ref": "DeleteAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"downloadAccount": { +"description": "Batch download user accounts.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.downloadAccount", +"path": "downloadAccount", +"request": { +"$ref": "IdentitytoolkitRelyingpartyDownloadAccountRequest" +}, +"response": { +"$ref": "DownloadAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"emailLinkSignin": { +"description": "Reset password for a user.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.emailLinkSignin", +"path": "emailLinkSignin", +"request": { +"$ref": "IdentitytoolkitRelyingpartyEmailLinkSigninRequest" +}, +"response": { +"$ref": "EmailLinkSigninResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getAccountInfo": { +"description": "Returns the account info.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.getAccountInfo", +"path": "getAccountInfo", +"request": { +"$ref": "IdentitytoolkitRelyingpartyGetAccountInfoRequest" +}, +"response": { +"$ref": "GetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getOobConfirmationCode": { +"description": "Get a code for user action confirmation.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.getOobConfirmationCode", +"path": "getOobConfirmationCode", +"request": { +"$ref": "Relyingparty" +}, +"response": { +"$ref": "GetOobConfirmationCodeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getProjectConfig": { +"description": "Get project configuration.", +"httpMethod": "GET", +"id": "identitytoolkit.relyingparty.getProjectConfig", +"parameters": { +"delegatedProjectNumber": { +"description": "Delegated GCP project number of the request.", +"location": "query", +"type": "string" +}, +"projectNumber": { +"description": "GCP project number of the request.", +"location": "query", +"type": "string" +} +}, +"path": "getProjectConfig", +"response": { +"$ref": "IdentitytoolkitRelyingpartyGetProjectConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getPublicKeys": { +"description": "Get token signing public key.", +"httpMethod": "GET", +"id": "identitytoolkit.relyingparty.getPublicKeys", +"path": "publicKeys", +"response": { +"$ref": "IdentitytoolkitRelyingpartyGetPublicKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getRecaptchaParam": { +"description": "Get recaptcha secure param.", +"httpMethod": "GET", +"id": "identitytoolkit.relyingparty.getRecaptchaParam", +"path": "getRecaptchaParam", +"response": { +"$ref": "GetRecaptchaParamResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetPassword": { +"description": "Reset password for a user.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.resetPassword", +"path": "resetPassword", +"request": { +"$ref": "IdentitytoolkitRelyingpartyResetPasswordRequest" +}, +"response": { +"$ref": "ResetPasswordResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sendVerificationCode": { +"description": "Send SMS verification code.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.sendVerificationCode", +"path": "sendVerificationCode", +"request": { +"$ref": "IdentitytoolkitRelyingpartySendVerificationCodeRequest" +}, +"response": { +"$ref": "IdentitytoolkitRelyingpartySendVerificationCodeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setAccountInfo": { +"description": "Set account info for a user.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.setAccountInfo", +"path": "setAccountInfo", +"request": { +"$ref": "IdentitytoolkitRelyingpartySetAccountInfoRequest" +}, +"response": { +"$ref": "SetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setProjectConfig": { +"description": "Set project configuration.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.setProjectConfig", +"path": "setProjectConfig", +"request": { +"$ref": "IdentitytoolkitRelyingpartySetProjectConfigRequest" +}, +"response": { +"$ref": "IdentitytoolkitRelyingpartySetProjectConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signOutUser": { +"description": "Sign out user.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.signOutUser", +"path": "signOutUser", +"request": { +"$ref": "IdentitytoolkitRelyingpartySignOutUserRequest" +}, +"response": { +"$ref": "IdentitytoolkitRelyingpartySignOutUserResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signupNewUser": { +"description": "Signup new user.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.signupNewUser", +"path": "signupNewUser", +"request": { +"$ref": "IdentitytoolkitRelyingpartySignupNewUserRequest" +}, +"response": { +"$ref": "SignupNewUserResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"uploadAccount": { +"description": "Batch upload existing user accounts.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.uploadAccount", +"path": "uploadAccount", +"request": { +"$ref": "IdentitytoolkitRelyingpartyUploadAccountRequest" +}, +"response": { +"$ref": "UploadAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"verifyAssertion": { +"description": "Verifies the assertion returned by the IdP.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.verifyAssertion", +"path": "verifyAssertion", +"request": { +"$ref": "IdentitytoolkitRelyingpartyVerifyAssertionRequest" +}, +"response": { +"$ref": "VerifyAssertionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verifyCustomToken": { +"description": "Verifies the developer asserted ID token.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.verifyCustomToken", +"path": "verifyCustomToken", +"request": { +"$ref": "IdentitytoolkitRelyingpartyVerifyCustomTokenRequest" +}, +"response": { +"$ref": "VerifyCustomTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verifyPassword": { +"description": "Verifies the user entered password.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.verifyPassword", +"path": "verifyPassword", +"request": { +"$ref": "IdentitytoolkitRelyingpartyVerifyPasswordRequest" +}, +"response": { +"$ref": "VerifyPasswordResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verifyPhoneNumber": { +"description": "Verifies ownership of a phone number and creates/updates the user account accordingly.", +"httpMethod": "POST", +"id": "identitytoolkit.relyingparty.verifyPhoneNumber", +"path": "verifyPhoneNumber", +"request": { +"$ref": "IdentitytoolkitRelyingpartyVerifyPhoneNumberRequest" +}, +"response": { +"$ref": "IdentitytoolkitRelyingpartyVerifyPhoneNumberResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20180723", +"rootUrl": "https://www.googleapis.com/", +"schemas": { +"CreateAuthUriResponse": { +"description": "Response of creating the IDP authentication URL.", +"id": "CreateAuthUriResponse", +"properties": { +"allProviders": { +"description": "all providers the user has once used to do federated login", +"items": { +"type": "string" +}, +"type": "array" +}, +"authUri": { +"description": "The URI used by the IDP to authenticate the user.", +"type": "string" +}, +"captchaRequired": { +"description": "True if captcha is required.", +"type": "boolean" +}, +"forExistingProvider": { +"description": "True if the authUri is for user's existing provider.", +"type": "boolean" +}, +"kind": { +"default": "identitytoolkit#CreateAuthUriResponse", +"description": "The fixed string identitytoolkit#CreateAuthUriResponse\".", +"type": "string" +}, +"providerId": { +"description": "The provider ID of the auth URI.", +"type": "string" +}, +"registered": { +"description": "Whether the user is registered if the identifier is an email.", +"type": "boolean" +}, +"sessionId": { +"description": "Session ID which should be passed in the following verifyAssertion request.", +"type": "string" +}, +"signinMethods": { +"description": "All sign-in methods this user has used.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeleteAccountResponse": { +"description": "Respone of deleting account.", +"id": "DeleteAccountResponse", +"properties": { +"kind": { +"default": "identitytoolkit#DeleteAccountResponse", +"description": "The fixed string \"identitytoolkit#DeleteAccountResponse\".", +"type": "string" +} +}, +"type": "object" +}, +"DownloadAccountResponse": { +"description": "Response of downloading accounts in batch.", +"id": "DownloadAccountResponse", +"properties": { +"kind": { +"default": "identitytoolkit#DownloadAccountResponse", +"description": "The fixed string \"identitytoolkit#DownloadAccountResponse\".", +"type": "string" +}, +"nextPageToken": { +"description": "The next page token. To be used in a subsequent request to return the next page of results.", +"type": "string" +}, +"users": { +"description": "The user accounts data.", +"items": { +"$ref": "UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"EmailLinkSigninResponse": { +"description": "Response of email signIn.", +"id": "EmailLinkSigninResponse", +"properties": { +"email": { +"description": "The user's email.", +"type": "string" +}, +"expiresIn": { +"description": "Expiration time of STS id token in seconds.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The STS id token to login the newly signed in user.", +"type": "string" +}, +"isNewUser": { +"description": "Whether the user is new.", +"type": "boolean" +}, +"kind": { +"default": "identitytoolkit#EmailLinkSigninResponse", +"description": "The fixed string \"identitytoolkit#EmailLinkSigninResponse\".", +"type": "string" +}, +"localId": { +"description": "The RP local ID of the user.", +"type": "string" +}, +"refreshToken": { +"description": "The refresh token for the signed in user.", +"type": "string" +} +}, +"type": "object" +}, +"EmailTemplate": { +"description": "Template for an email template.", +"id": "EmailTemplate", +"properties": { +"body": { +"description": "Email body.", +"type": "string" +}, +"format": { +"description": "Email body format.", +"type": "string" +}, +"from": { +"description": "From address of the email.", +"type": "string" +}, +"fromDisplayName": { +"description": "From display name.", +"type": "string" +}, +"replyTo": { +"description": "Reply-to address.", +"type": "string" +}, +"subject": { +"description": "Subject of the email.", +"type": "string" +} +}, +"type": "object" +}, +"GetAccountInfoResponse": { +"description": "Response of getting account information.", +"id": "GetAccountInfoResponse", +"properties": { +"kind": { +"default": "identitytoolkit#GetAccountInfoResponse", +"description": "The fixed string \"identitytoolkit#GetAccountInfoResponse\".", +"type": "string" +}, +"users": { +"description": "The info of the users.", +"items": { +"$ref": "UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetOobConfirmationCodeResponse": { +"description": "Response of getting a code for user confirmation (reset password, change email etc.).", +"id": "GetOobConfirmationCodeResponse", +"properties": { +"email": { +"description": "The email address that the email is sent to.", +"type": "string" +}, +"kind": { +"default": "identitytoolkit#GetOobConfirmationCodeResponse", +"description": "The fixed string \"identitytoolkit#GetOobConfirmationCodeResponse\".", +"type": "string" +}, +"oobCode": { +"description": "The code to be send to the user.", +"type": "string" +} +}, +"type": "object" +}, +"GetRecaptchaParamResponse": { +"description": "Response of getting recaptcha param.", +"id": "GetRecaptchaParamResponse", +"properties": { +"kind": { +"default": "identitytoolkit#GetRecaptchaParamResponse", +"description": "The fixed string \"identitytoolkit#GetRecaptchaParamResponse\".", +"type": "string" +}, +"recaptchaSiteKey": { +"description": "Site key registered at recaptcha.", +"type": "string" +}, +"recaptchaStoken": { +"description": "The stoken field for the recaptcha widget, used to request captcha challenge.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyCreateAuthUriRequest": { +"description": "Request to get the IDP authentication URL.", +"id": "IdentitytoolkitRelyingpartyCreateAuthUriRequest", +"properties": { +"appId": { +"description": "The app ID of the mobile app, base64(CERT_SHA1):PACKAGE_NAME for Android, BUNDLE_ID for iOS.", +"type": "string" +}, +"authFlowType": { +"description": "Explicitly specify the auth flow type. Currently only support \"CODE_FLOW\" type. The field is only used for Google provider.", +"type": "string" +}, +"clientId": { +"description": "The relying party OAuth client ID.", +"type": "string" +}, +"context": { +"description": "The opaque value used by the client to maintain context info between the authentication request and the IDP callback.", +"type": "string" +}, +"continueUri": { +"description": "The URI to which the IDP redirects the user after the federated login flow.", +"type": "string" +}, +"customParameter": { +"additionalProperties": { +"description": "The customized query parameter.", +"type": "string" +}, +"description": "The query parameter that client can customize by themselves in auth url. The following parameters are reserved for server so that they cannot be customized by clients: client_id, response_type, scope, redirect_uri, state, oauth_token.", +"type": "object" +}, +"hostedDomain": { +"description": "The hosted domain to restrict sign-in to accounts at that domain for Google Apps hosted accounts.", +"type": "string" +}, +"identifier": { +"description": "The email or federated ID of the user.", +"type": "string" +}, +"oauthConsumerKey": { +"description": "The developer's consumer key for OpenId OAuth Extension", +"type": "string" +}, +"oauthScope": { +"description": "Additional oauth scopes, beyond the basid user profile, that the user would be prompted to grant", +"type": "string" +}, +"openidRealm": { +"description": "Optional realm for OpenID protocol. The sub string \"scheme://domain:port\" of the param \"continueUri\" is used if this is not set.", +"type": "string" +}, +"otaApp": { +"description": "The native app package for OTA installation.", +"type": "string" +}, +"providerId": { +"description": "The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.", +"type": "string" +}, +"sessionId": { +"description": "The session_id passed by client.", +"type": "string" +}, +"tenantId": { +"description": "For multi-tenant use cases, in order to construct sign-in URL with the correct IDP parameters, Firebear needs to know which Tenant to retrieve IDP configs from.", +"type": "string" +}, +"tenantProjectNumber": { +"description": "Tenant project number to be used for idp discovery.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyDeleteAccountRequest": { +"description": "Request to delete account.", +"id": "IdentitytoolkitRelyingpartyDeleteAccountRequest", +"properties": { +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The GITKit token or STS id token of the authenticated user.", +"type": "string" +}, +"localId": { +"description": "The local ID of the user.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyDownloadAccountRequest": { +"description": "Request to download user account in batch.", +"id": "IdentitytoolkitRelyingpartyDownloadAccountRequest", +"properties": { +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"maxResults": { +"description": "The max number of results to return in the response.", +"format": "uint32", +"type": "integer" +}, +"nextPageToken": { +"description": "The token for the next page. This should be taken from the previous response.", +"type": "string" +}, +"targetProjectId": { +"description": "Specify which project (field value is actually project id) to operate. Only used when provided credential.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyEmailLinkSigninRequest": { +"description": "Request to sign in with email.", +"id": "IdentitytoolkitRelyingpartyEmailLinkSigninRequest", +"properties": { +"email": { +"description": "The email address of the user.", +"type": "string" +}, +"idToken": { +"description": "Token for linking flow.", +"type": "string" +}, +"oobCode": { +"description": "The confirmation code.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyGetAccountInfoRequest": { +"description": "Request to get the account information.", +"id": "IdentitytoolkitRelyingpartyGetAccountInfoRequest", +"properties": { +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"email": { +"description": "The list of emails of the users to inquiry.", +"items": { +"type": "string" +}, +"type": "array" +}, +"idToken": { +"description": "The GITKit token of the authenticated user.", +"type": "string" +}, +"localId": { +"description": "The list of local ID's of the users to inquiry.", +"items": { +"type": "string" +}, +"type": "array" +}, +"phoneNumber": { +"description": "Privileged caller can query users by specified phone number.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyGetProjectConfigResponse": { +"description": "Response of getting the project configuration.", +"id": "IdentitytoolkitRelyingpartyGetProjectConfigResponse", +"properties": { +"allowPasswordUser": { +"description": "Whether to allow password user sign in or sign up.", +"type": "boolean" +}, +"apiKey": { +"description": "Browser API key, needed when making http request to Apiary.", +"type": "string" +}, +"authorizedDomains": { +"description": "Authorized domains.", +"items": { +"type": "string" +}, +"type": "array" +}, +"changeEmailTemplate": { +"$ref": "EmailTemplate", +"description": "Change email template." +}, +"dynamicLinksDomain": { +"type": "string" +}, +"enableAnonymousUser": { +"description": "Whether anonymous user is enabled.", +"type": "boolean" +}, +"idpConfig": { +"description": "OAuth2 provider configuration.", +"items": { +"$ref": "IdpConfig" +}, +"type": "array" +}, +"legacyResetPasswordTemplate": { +"$ref": "EmailTemplate", +"description": "Legacy reset password email template." +}, +"projectId": { +"description": "Project ID of the relying party.", +"type": "string" +}, +"resetPasswordTemplate": { +"$ref": "EmailTemplate", +"description": "Reset password email template." +}, +"useEmailSending": { +"description": "Whether to use email sending provided by Firebear.", +"type": "boolean" +}, +"verifyEmailTemplate": { +"$ref": "EmailTemplate", +"description": "Verify email template." +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyGetPublicKeysResponse": { +"additionalProperties": { +"type": "string" +}, +"description": "Respone of getting public keys.", +"id": "IdentitytoolkitRelyingpartyGetPublicKeysResponse", +"type": "object" +}, +"IdentitytoolkitRelyingpartyResetPasswordRequest": { +"description": "Request to reset the password.", +"id": "IdentitytoolkitRelyingpartyResetPasswordRequest", +"properties": { +"email": { +"description": "The email address of the user.", +"type": "string" +}, +"newPassword": { +"description": "The new password inputted by the user.", +"type": "string" +}, +"oldPassword": { +"description": "The old password inputted by the user.", +"type": "string" +}, +"oobCode": { +"description": "The confirmation code.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySendVerificationCodeRequest": { +"description": "Request for Identitytoolkit-SendVerificationCode", +"id": "IdentitytoolkitRelyingpartySendVerificationCodeRequest", +"properties": { +"iosReceipt": { +"description": "Receipt of successful app token validation with APNS.", +"type": "string" +}, +"iosSecret": { +"description": "Secret delivered to iOS app via APNS.", +"type": "string" +}, +"phoneNumber": { +"description": "The phone number to send the verification code to in E.164 format.", +"type": "string" +}, +"recaptchaToken": { +"description": "Recaptcha solution.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySendVerificationCodeResponse": { +"description": "Response for Identitytoolkit-SendVerificationCode", +"id": "IdentitytoolkitRelyingpartySendVerificationCodeResponse", +"properties": { +"sessionInfo": { +"description": "Encrypted session information", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySetAccountInfoRequest": { +"description": "Request to set the account information.", +"id": "IdentitytoolkitRelyingpartySetAccountInfoRequest", +"properties": { +"captchaChallenge": { +"description": "The captcha challenge.", +"type": "string" +}, +"captchaResponse": { +"description": "Response to the captcha.", +"type": "string" +}, +"createdAt": { +"description": "The timestamp when the account is created.", +"format": "int64", +"type": "string" +}, +"customAttributes": { +"description": "The custom attributes to be set in the user's id token.", +"type": "string" +}, +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"deleteAttribute": { +"description": "The attributes users request to delete.", +"items": { +"type": "string" +}, +"type": "array" +}, +"deleteProvider": { +"description": "The IDPs the user request to delete.", +"items": { +"type": "string" +}, +"type": "array" +}, +"disableUser": { +"description": "Whether to disable the user.", +"type": "boolean" +}, +"displayName": { +"description": "The name of the user.", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"emailVerified": { +"description": "Mark the email as verified or not.", +"type": "boolean" +}, +"idToken": { +"description": "The GITKit token of the authenticated user.", +"type": "string" +}, +"instanceId": { +"description": "Instance id token of the app.", +"type": "string" +}, +"lastLoginAt": { +"description": "Last login timestamp.", +"format": "int64", +"type": "string" +}, +"localId": { +"description": "The local ID of the user.", +"type": "string" +}, +"oobCode": { +"description": "The out-of-band code of the change email request.", +"type": "string" +}, +"password": { +"description": "The new password of the user.", +"type": "string" +}, +"phoneNumber": { +"description": "Privileged caller can update user with specified phone number.", +"type": "string" +}, +"photoUrl": { +"description": "The photo url of the user.", +"type": "string" +}, +"provider": { +"description": "The associated IDPs of the user.", +"items": { +"type": "string" +}, +"type": "array" +}, +"returnSecureToken": { +"description": "Whether return sts id token and refresh token instead of gitkit token.", +"type": "boolean" +}, +"upgradeToFederatedLogin": { +"description": "Mark the user to upgrade to federated login.", +"type": "boolean" +}, +"validSince": { +"description": "Timestamp in seconds for valid login token.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySetProjectConfigRequest": { +"description": "Request to set the project configuration.", +"id": "IdentitytoolkitRelyingpartySetProjectConfigRequest", +"properties": { +"allowPasswordUser": { +"description": "Whether to allow password user sign in or sign up.", +"type": "boolean" +}, +"apiKey": { +"description": "Browser API key, needed when making http request to Apiary.", +"type": "string" +}, +"authorizedDomains": { +"description": "Authorized domains for widget redirect.", +"items": { +"type": "string" +}, +"type": "array" +}, +"changeEmailTemplate": { +"$ref": "EmailTemplate", +"description": "Change email template." +}, +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"enableAnonymousUser": { +"description": "Whether to enable anonymous user.", +"type": "boolean" +}, +"idpConfig": { +"description": "Oauth2 provider configuration.", +"items": { +"$ref": "IdpConfig" +}, +"type": "array" +}, +"legacyResetPasswordTemplate": { +"$ref": "EmailTemplate", +"description": "Legacy reset password email template." +}, +"resetPasswordTemplate": { +"$ref": "EmailTemplate", +"description": "Reset password email template." +}, +"useEmailSending": { +"description": "Whether to use email sending provided by Firebear.", +"type": "boolean" +}, +"verifyEmailTemplate": { +"$ref": "EmailTemplate", +"description": "Verify email template." +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySetProjectConfigResponse": { +"description": "Response of setting the project configuration.", +"id": "IdentitytoolkitRelyingpartySetProjectConfigResponse", +"properties": { +"projectId": { +"description": "Project ID of the relying party.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySignOutUserRequest": { +"description": "Request to sign out user.", +"id": "IdentitytoolkitRelyingpartySignOutUserRequest", +"properties": { +"instanceId": { +"description": "Instance id token of the app.", +"type": "string" +}, +"localId": { +"description": "The local ID of the user.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySignOutUserResponse": { +"description": "Response of signing out user.", +"id": "IdentitytoolkitRelyingpartySignOutUserResponse", +"properties": { +"localId": { +"description": "The local ID of the user.", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartySignupNewUserRequest": { +"description": "Request to signup new user, create anonymous user or anonymous user reauth.", +"id": "IdentitytoolkitRelyingpartySignupNewUserRequest", +"properties": { +"captchaChallenge": { +"description": "The captcha challenge.", +"type": "string" +}, +"captchaResponse": { +"description": "Response to the captcha.", +"type": "string" +}, +"disabled": { +"description": "Whether to disable the user. Only can be used by service account.", +"type": "boolean" +}, +"displayName": { +"description": "The name of the user.", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"emailVerified": { +"description": "Mark the email as verified or not. Only can be used by service account.", +"type": "boolean" +}, +"idToken": { +"description": "The GITKit token of the authenticated user.", +"type": "string" +}, +"instanceId": { +"description": "Instance id token of the app.", +"type": "string" +}, +"localId": { +"description": "Privileged caller can create user with specified user id.", +"type": "string" +}, +"password": { +"description": "The new password of the user.", +"type": "string" +}, +"phoneNumber": { +"description": "Privileged caller can create user with specified phone number.", +"type": "string" +}, +"photoUrl": { +"description": "The photo url of the user.", +"type": "string" +}, +"tenantId": { +"description": "For multi-tenant use cases, in order to construct sign-in URL with the correct IDP parameters, Firebear needs to know which Tenant to retrieve IDP configs from.", +"type": "string" +}, +"tenantProjectNumber": { +"description": "Tenant project number to be used for idp discovery.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyUploadAccountRequest": { +"description": "Request to upload user account in batch.", +"id": "IdentitytoolkitRelyingpartyUploadAccountRequest", +"properties": { +"allowOverwrite": { +"description": "Whether allow overwrite existing account when user local_id exists.", +"type": "boolean" +}, +"blockSize": { +"format": "int32", +"type": "integer" +}, +"cpuMemCost": { +"description": "The following 4 fields are for standard scrypt algorithm.", +"format": "int32", +"type": "integer" +}, +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"dkLen": { +"format": "int32", +"type": "integer" +}, +"hashAlgorithm": { +"description": "The password hash algorithm.", +"type": "string" +}, +"memoryCost": { +"description": "Memory cost for hash calculation. Used by scrypt similar algorithms.", +"format": "int32", +"type": "integer" +}, +"parallelization": { +"format": "int32", +"type": "integer" +}, +"rounds": { +"description": "Rounds for hash calculation. Used by scrypt and similar algorithms.", +"format": "int32", +"type": "integer" +}, +"saltSeparator": { +"description": "The salt separator.", +"format": "byte", +"type": "string" +}, +"sanityCheck": { +"description": "If true, backend will do sanity check(including duplicate email and federated id) when uploading account.", +"type": "boolean" +}, +"signerKey": { +"description": "The key for to hash the password.", +"format": "byte", +"type": "string" +}, +"targetProjectId": { +"description": "Specify which project (field value is actually project id) to operate. Only used when provided credential.", +"type": "string" +}, +"users": { +"description": "The account info to be stored.", +"items": { +"$ref": "UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyVerifyAssertionRequest": { +"description": "Request to verify the IDP assertion.", +"id": "IdentitytoolkitRelyingpartyVerifyAssertionRequest", +"properties": { +"autoCreate": { +"description": "When it's true, automatically creates a new account if the user doesn't exist. When it's false, allows existing user to sign in normally and throws exception if the user doesn't exist.", +"type": "boolean" +}, +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The GITKit token of the authenticated user.", +"type": "string" +}, +"instanceId": { +"description": "Instance id token of the app.", +"type": "string" +}, +"pendingIdToken": { +"description": "The GITKit token for the non-trusted IDP pending to be confirmed by the user.", +"type": "string" +}, +"postBody": { +"description": "The post body if the request is a HTTP POST.", +"type": "string" +}, +"requestUri": { +"description": "The URI to which the IDP redirects the user back. It may contain federated login result params added by the IDP.", +"type": "string" +}, +"returnIdpCredential": { +"description": "Whether return 200 and IDP credential rather than throw exception when federated id is already linked.", +"type": "boolean" +}, +"returnRefreshToken": { +"description": "Whether to return refresh tokens.", +"type": "boolean" +}, +"returnSecureToken": { +"description": "Whether return sts id token and refresh token instead of gitkit token.", +"type": "boolean" +}, +"sessionId": { +"description": "Session ID, which should match the one in previous createAuthUri request.", +"type": "string" +}, +"tenantId": { +"description": "For multi-tenant use cases, in order to construct sign-in URL with the correct IDP parameters, Firebear needs to know which Tenant to retrieve IDP configs from.", +"type": "string" +}, +"tenantProjectNumber": { +"description": "Tenant project number to be used for idp discovery.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyVerifyCustomTokenRequest": { +"description": "Request to verify a custom token", +"id": "IdentitytoolkitRelyingpartyVerifyCustomTokenRequest", +"properties": { +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"instanceId": { +"description": "Instance id token of the app.", +"type": "string" +}, +"returnSecureToken": { +"description": "Whether return sts id token and refresh token instead of gitkit token.", +"type": "boolean" +}, +"token": { +"description": "The custom token to verify", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyVerifyPasswordRequest": { +"description": "Request to verify the password.", +"id": "IdentitytoolkitRelyingpartyVerifyPasswordRequest", +"properties": { +"captchaChallenge": { +"description": "The captcha challenge.", +"type": "string" +}, +"captchaResponse": { +"description": "Response to the captcha.", +"type": "string" +}, +"delegatedProjectNumber": { +"description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.", +"format": "int64", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"idToken": { +"description": "The GITKit token of the authenticated user.", +"type": "string" +}, +"instanceId": { +"description": "Instance id token of the app.", +"type": "string" +}, +"password": { +"description": "The password inputed by the user.", +"type": "string" +}, +"pendingIdToken": { +"description": "The GITKit token for the non-trusted IDP, which is to be confirmed by the user.", +"type": "string" +}, +"returnSecureToken": { +"description": "Whether return sts id token and refresh token instead of gitkit token.", +"type": "boolean" +}, +"tenantId": { +"description": "For multi-tenant use cases, in order to construct sign-in URL with the correct IDP parameters, Firebear needs to know which Tenant to retrieve IDP configs from.", +"type": "string" +}, +"tenantProjectNumber": { +"description": "Tenant project number to be used for idp discovery.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyVerifyPhoneNumberRequest": { +"description": "Request for Identitytoolkit-VerifyPhoneNumber", +"id": "IdentitytoolkitRelyingpartyVerifyPhoneNumberRequest", +"properties": { +"code": { +"type": "string" +}, +"idToken": { +"type": "string" +}, +"operation": { +"type": "string" +}, +"phoneNumber": { +"type": "string" +}, +"sessionInfo": { +"description": "The session info previously returned by IdentityToolkit-SendVerificationCode.", +"type": "string" +}, +"temporaryProof": { +"type": "string" +}, +"verificationProof": { +"type": "string" +} +}, +"type": "object" +}, +"IdentitytoolkitRelyingpartyVerifyPhoneNumberResponse": { +"description": "Response for Identitytoolkit-VerifyPhoneNumber", +"id": "IdentitytoolkitRelyingpartyVerifyPhoneNumberResponse", +"properties": { +"expiresIn": { +"format": "int64", +"type": "string" +}, +"idToken": { +"type": "string" +}, +"isNewUser": { +"type": "boolean" +}, +"localId": { +"type": "string" +}, +"phoneNumber": { +"type": "string" +}, +"refreshToken": { +"type": "string" +}, +"temporaryProof": { +"type": "string" +}, +"temporaryProofExpiresIn": { +"format": "int64", +"type": "string" +}, +"verificationProof": { +"type": "string" +}, +"verificationProofExpiresIn": { +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"IdpConfig": { +"description": "Template for a single idp configuration.", +"id": "IdpConfig", +"properties": { +"clientId": { +"description": "OAuth2 client ID.", +"type": "string" +}, +"enabled": { +"description": "Whether this IDP is enabled.", +"type": "boolean" +}, +"experimentPercent": { +"description": "Percent of users who will be prompted/redirected federated login for this IDP.", +"format": "int32", +"type": "integer" +}, +"provider": { +"description": "OAuth2 provider.", +"type": "string" +}, +"secret": { +"description": "OAuth2 client secret.", +"type": "string" +}, +"whitelistedAudiences": { +"description": "Whitelisted client IDs for audience check.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Relyingparty": { +"description": "Request of getting a code for user confirmation (reset password, change email etc.)", +"id": "Relyingparty", +"properties": { +"androidInstallApp": { +"description": "whether or not to install the android app on the device where the link is opened", +"type": "boolean" +}, +"androidMinimumVersion": { +"description": "minimum version of the app. if the version on the device is lower than this version then the user is taken to the play store to upgrade the app", +"type": "string" +}, +"androidPackageName": { +"description": "android package name of the android app to handle the action code", +"type": "string" +}, +"canHandleCodeInApp": { +"description": "whether or not the app can handle the oob code without first going to web", +"type": "boolean" +}, +"captchaResp": { +"description": "The recaptcha response from the user.", +"type": "string" +}, +"challenge": { +"description": "The recaptcha challenge presented to the user.", +"type": "string" +}, +"continueUrl": { +"description": "The url to continue to the Gitkit app", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"iOSAppStoreId": { +"description": "iOS app store id to download the app if it's not already installed", +"type": "string" +}, +"iOSBundleId": { +"description": "the iOS bundle id of iOS app to handle the action code", +"type": "string" +}, +"idToken": { +"description": "The user's Gitkit login token for email change.", +"type": "string" +}, +"kind": { +"default": "identitytoolkit#relyingparty", +"description": "The fixed string \"identitytoolkit#relyingparty\".", +"type": "string" +}, +"newEmail": { +"description": "The new email if the code is for email change.", +"type": "string" +}, +"requestType": { +"description": "The request type.", +"type": "string" +}, +"userIp": { +"description": "The IP address of the user.", +"type": "string" +} +}, +"type": "object" +}, +"ResetPasswordResponse": { +"description": "Response of resetting the password.", +"id": "ResetPasswordResponse", +"properties": { +"email": { +"description": "The user's email. If the out-of-band code is for email recovery, the user's original email.", +"type": "string" +}, +"kind": { +"default": "identitytoolkit#ResetPasswordResponse", +"description": "The fixed string \"identitytoolkit#ResetPasswordResponse\".", +"type": "string" +}, +"newEmail": { +"description": "If the out-of-band code is for email recovery, the user's new email.", +"type": "string" +}, +"requestType": { +"description": "The request type.", +"type": "string" +} +}, +"type": "object" +}, +"SetAccountInfoResponse": { +"description": "Respone of setting the account information.", +"id": "SetAccountInfoResponse", +"properties": { +"displayName": { +"description": "The name of the user.", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"emailVerified": { +"description": "If email has been verified.", +"type": "boolean" +}, +"expiresIn": { +"description": "If idToken is STS id token, then this field will be expiration time of STS id token in seconds.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The Gitkit id token to login the newly sign up user.", +"type": "string" +}, +"kind": { +"default": "identitytoolkit#SetAccountInfoResponse", +"description": "The fixed string \"identitytoolkit#SetAccountInfoResponse\".", +"type": "string" +}, +"localId": { +"description": "The local ID of the user.", +"type": "string" +}, +"newEmail": { +"description": "The new email the user attempts to change to.", +"type": "string" +}, +"passwordHash": { +"description": "The user's hashed password.", +"format": "byte", +"type": "string" +}, +"photoUrl": { +"description": "The photo url of the user.", +"type": "string" +}, +"providerUserInfo": { +"description": "The user's profiles at the associated IdPs.", +"items": { +"properties": { +"displayName": { +"description": "The user's display name at the IDP.", +"type": "string" +}, +"federatedId": { +"description": "User's identifier at IDP.", +"type": "string" +}, +"photoUrl": { +"description": "The user's photo url at the IDP.", +"type": "string" +}, +"providerId": { +"description": "The IdP ID. For whitelisted IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"refreshToken": { +"description": "If idToken is STS id token, then this field will be refresh token.", +"type": "string" +} +}, +"type": "object" +}, +"SignupNewUserResponse": { +"description": "Response of signing up new user, creating anonymous user or anonymous user reauth.", +"id": "SignupNewUserResponse", +"properties": { +"displayName": { +"description": "The name of the user.", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"expiresIn": { +"description": "If idToken is STS id token, then this field will be expiration time of STS id token in seconds.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The Gitkit id token to login the newly sign up user.", +"type": "string" +}, +"kind": { +"default": "identitytoolkit#SignupNewUserResponse", +"description": "The fixed string \"identitytoolkit#SignupNewUserResponse\".", +"type": "string" +}, +"localId": { +"description": "The RP local ID of the user.", +"type": "string" +}, +"refreshToken": { +"description": "If idToken is STS id token, then this field will be refresh token.", +"type": "string" +} +}, +"type": "object" +}, +"UploadAccountResponse": { +"description": "Respone of uploading accounts in batch.", +"id": "UploadAccountResponse", +"properties": { +"error": { +"description": "The error encountered while processing the account info.", +"items": { +"properties": { +"index": { +"description": "The index of the malformed account, starting from 0.", +"format": "int32", +"type": "integer" +}, +"message": { +"description": "Detailed error message for the account info.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"kind": { +"default": "identitytoolkit#UploadAccountResponse", +"description": "The fixed string \"identitytoolkit#UploadAccountResponse\".", +"type": "string" +} +}, +"type": "object" +}, +"UserInfo": { +"description": "Template for an individual account info.", +"id": "UserInfo", +"properties": { +"createdAt": { +"description": "User creation timestamp.", +"format": "int64", +"type": "string" +}, +"customAttributes": { +"description": "The custom attributes to be set in the user's id token.", +"type": "string" +}, +"customAuth": { +"description": "Whether the user is authenticated by the developer.", +"type": "boolean" +}, +"disabled": { +"description": "Whether the user is disabled.", +"type": "boolean" +}, +"displayName": { +"description": "The name of the user.", +"type": "string" +}, +"email": { +"description": "The email of the user.", +"type": "string" +}, +"emailVerified": { +"description": "Whether the email has been verified.", +"type": "boolean" +}, +"lastLoginAt": { +"description": "last login timestamp.", +"format": "int64", +"type": "string" +}, +"localId": { +"description": "The local ID of the user.", +"type": "string" +}, +"passwordHash": { +"description": "The user's hashed password.", +"format": "byte", +"type": "string" +}, +"passwordUpdatedAt": { +"description": "The timestamp when the password was last updated.", +"format": "double", +"type": "number" +}, +"phoneNumber": { +"description": "User's phone number.", +"type": "string" +}, +"photoUrl": { +"description": "The URL of the user profile photo.", +"type": "string" +}, +"providerUserInfo": { +"description": "The IDP of the user.", +"items": { +"properties": { +"displayName": { +"description": "The user's display name at the IDP.", +"type": "string" +}, +"email": { +"description": "User's email at IDP.", +"type": "string" +}, +"federatedId": { +"description": "User's identifier at IDP.", +"type": "string" +}, +"phoneNumber": { +"description": "User's phone number.", +"type": "string" +}, +"photoUrl": { +"description": "The user's photo url at the IDP.", +"type": "string" +}, +"providerId": { +"description": "The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.", +"type": "string" +}, +"rawId": { +"description": "User's raw identifier directly returned from IDP.", +"type": "string" +}, +"screenName": { +"description": "User's screen name at Twitter or login name at Github.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"rawPassword": { +"description": "The user's plain text password.", +"type": "string" +}, +"salt": { +"description": "The user's password salt.", +"format": "byte", +"type": "string" +}, +"screenName": { +"description": "User's screen name at Twitter or login name at Github.", +"type": "string" +}, +"validSince": { +"description": "Timestamp in seconds for valid login token.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Version of the user's password.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"VerifyAssertionResponse": { +"description": "Response of verifying the IDP assertion.", +"id": "VerifyAssertionResponse", +"properties": { +"action": { +"description": "The action code.", +"type": "string" +}, +"appInstallationUrl": { +"description": "URL for OTA app installation.", +"type": "string" +}, +"appScheme": { +"description": "The custom scheme used by mobile app.", +"type": "string" +}, +"context": { +"description": "The opaque value used by the client to maintain context info between the authentication request and the IDP callback.", +"type": "string" +}, +"dateOfBirth": { +"description": "The birth date of the IdP account.", +"type": "string" +}, +"displayName": { +"description": "The display name of the user.", +"type": "string" +}, +"email": { +"description": "The email returned by the IdP. NOTE: The federated login user may not own the email.", +"type": "string" +}, +"emailRecycled": { +"description": "It's true if the email is recycled.", +"type": "boolean" +}, +"emailVerified": { +"description": "The value is true if the IDP is also the email provider. It means the user owns the email.", +"type": "boolean" +}, +"errorMessage": { +"description": "Client error code.", +"type": "string" +}, +"expiresIn": { +"description": "If idToken is STS id token, then this field will be expiration time of STS id token in seconds.", +"format": "int64", +"type": "string" +}, +"federatedId": { +"description": "The unique ID identifies the IdP account.", +"type": "string" +}, +"firstName": { +"description": "The first name of the user.", +"type": "string" +}, +"fullName": { +"description": "The full name of the user.", +"type": "string" +}, +"idToken": { +"description": "The ID token.", +"type": "string" +}, +"inputEmail": { +"description": "It's the identifier param in the createAuthUri request if the identifier is an email. It can be used to check whether the user input email is different from the asserted email.", +"type": "string" +}, +"isNewUser": { +"description": "True if it's a new user sign-in, false if it's a returning user.", +"type": "boolean" +}, +"kind": { +"default": "identitytoolkit#VerifyAssertionResponse", +"description": "The fixed string \"identitytoolkit#VerifyAssertionResponse\".", +"type": "string" +}, +"language": { +"description": "The language preference of the user.", +"type": "string" +}, +"lastName": { +"description": "The last name of the user.", +"type": "string" +}, +"localId": { +"description": "The RP local ID if it's already been mapped to the IdP account identified by the federated ID.", +"type": "string" +}, +"needConfirmation": { +"description": "Whether the assertion is from a non-trusted IDP and need account linking confirmation.", +"type": "boolean" +}, +"needEmail": { +"description": "Whether need client to supply email to complete the federated login flow.", +"type": "boolean" +}, +"nickName": { +"description": "The nick name of the user.", +"type": "string" +}, +"oauthAccessToken": { +"description": "The OAuth2 access token.", +"type": "string" +}, +"oauthAuthorizationCode": { +"description": "The OAuth2 authorization code.", +"type": "string" +}, +"oauthExpireIn": { +"description": "The lifetime in seconds of the OAuth2 access token.", +"format": "int32", +"type": "integer" +}, +"oauthIdToken": { +"description": "The OIDC id token.", +"type": "string" +}, +"oauthRequestToken": { +"description": "The user approved request token for the OpenID OAuth extension.", +"type": "string" +}, +"oauthScope": { +"description": "The scope for the OpenID OAuth extension.", +"type": "string" +}, +"oauthTokenSecret": { +"description": "The OAuth1 access token secret.", +"type": "string" +}, +"originalEmail": { +"description": "The original email stored in the mapping storage. It's returned when the federated ID is associated to a different email.", +"type": "string" +}, +"photoUrl": { +"description": "The URI of the public accessible profiel picture.", +"type": "string" +}, +"providerId": { +"description": "The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. If the \"providerId\" param is set to OpenID OP identifer other than the whilte listed IdPs the OP identifier is returned. If the \"identifier\" param is federated ID in the createAuthUri request. The domain part of the federated ID is returned.", +"type": "string" +}, +"rawUserInfo": { +"description": "Raw IDP-returned user info.", +"type": "string" +}, +"refreshToken": { +"description": "If idToken is STS id token, then this field will be refresh token.", +"type": "string" +}, +"screenName": { +"description": "The screen_name of a Twitter user or the login name at Github.", +"type": "string" +}, +"timeZone": { +"description": "The timezone of the user.", +"type": "string" +}, +"verifiedProvider": { +"description": "When action is 'map', contains the idps which can be used for confirmation.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VerifyCustomTokenResponse": { +"description": "Response from verifying a custom token", +"id": "VerifyCustomTokenResponse", +"properties": { +"expiresIn": { +"description": "If idToken is STS id token, then this field will be expiration time of STS id token in seconds.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The GITKit token for authenticated user.", +"type": "string" +}, +"isNewUser": { +"description": "True if it's a new user sign-in, false if it's a returning user.", +"type": "boolean" +}, +"kind": { +"default": "identitytoolkit#VerifyCustomTokenResponse", +"description": "The fixed string \"identitytoolkit#VerifyCustomTokenResponse\".", +"type": "string" +}, +"refreshToken": { +"description": "If idToken is STS id token, then this field will be refresh token.", +"type": "string" +} +}, +"type": "object" +}, +"VerifyPasswordResponse": { +"description": "Request of verifying the password.", +"id": "VerifyPasswordResponse", +"properties": { +"displayName": { +"description": "The name of the user.", +"type": "string" +}, +"email": { +"description": "The email returned by the IdP. NOTE: The federated login user may not own the email.", +"type": "string" +}, +"expiresIn": { +"description": "If idToken is STS id token, then this field will be expiration time of STS id token in seconds.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The GITKit token for authenticated user.", +"type": "string" +}, +"kind": { +"default": "identitytoolkit#VerifyPasswordResponse", +"description": "The fixed string \"identitytoolkit#VerifyPasswordResponse\".", +"type": "string" +}, +"localId": { +"description": "The RP local ID if it's already been mapped to the IdP account identified by the federated ID.", +"type": "string" +}, +"oauthAccessToken": { +"description": "The OAuth2 access token.", +"type": "string" +}, +"oauthAuthorizationCode": { +"description": "The OAuth2 authorization code.", +"type": "string" +}, +"oauthExpireIn": { +"description": "The lifetime in seconds of the OAuth2 access token.", +"format": "int32", +"type": "integer" +}, +"photoUrl": { +"description": "The URI of the user's photo at IdP", +"type": "string" +}, +"refreshToken": { +"description": "If idToken is STS id token, then this field will be refresh token.", +"type": "string" +}, +"registered": { +"description": "Whether the email is registered.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "identitytoolkit/v3/relyingparty/", +"title": "Google Identity Toolkit API", +"version": "v3" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/jobs.v3p1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/jobs.v3p1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..bacc73f01c1cb2f0bad2ab5cf52647d77201fef9 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/jobs.v3p1beta1.json @@ -0,0 +1,2860 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/jobs": { +"description": "Manage job postings" +} +} +} +}, +"basePath": "", +"baseUrl": "https://jobs.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Talent Solution", +"description": "Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/talent-solution/job-search/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "jobs:v3p1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://jobs.mtls.googleapis.com/", +"name": "jobs", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"complete": { +"description": "Completes the specified prefix with keyword suggestions. Intended for use by a job search auto-complete search box.", +"flatPath": "v3p1beta1/projects/{projectsId}:complete", +"httpMethod": "GET", +"id": "jobs.projects.complete", +"parameterOrder": [ +"name" +], +"parameters": { +"companyName": { +"description": "Optional. If provided, restricts completion to specified company. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "query", +"type": "string" +}, +"languageCode": { +"deprecated": true, +"description": "Deprecated. Use language_codes instead. Optional. The language of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with the same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_code are returned. For CompletionType.COMBINED type, only open jobs with the same language_code or companies having open jobs with the same language_code are returned. The maximum number of allowed characters is 255.", +"location": "query", +"type": "string" +}, +"languageCodes": { +"description": "Optional. The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with the same language_codes are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_codes are returned. For CompletionType.COMBINED type, only open jobs with the same language_codes or companies having open jobs with the same language_codes are returned. The maximum number of allowed characters is 255.", +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "Required. Resource name of project the completion is performed within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Required. Completion result count. The maximum allowed page size is 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"query": { +"description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.", +"location": "query", +"type": "string" +}, +"scope": { +"description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.", +"enum": [ +"COMPLETION_SCOPE_UNSPECIFIED", +"TENANT", +"PUBLIC" +], +"enumDescriptions": [ +"Default value.", +"Suggestions are based only on the data provided by the client.", +"Suggestions are based on all jobs data in the system that's visible to the client" +], +"location": "query", +"type": "string" +}, +"type": { +"description": "Optional. The completion topic. The default is CompletionType.COMBINED.", +"enum": [ +"COMPLETION_TYPE_UNSPECIFIED", +"JOB_TITLE", +"COMPANY_NAME", +"COMBINED" +], +"enumDescriptions": [ +"Default value.", +"Only suggest job titles.", +"Only suggest company names.", +"Suggest both job titles and company names." +], +"location": "query", +"type": "string" +} +}, +"path": "v3p1beta1/{+name}:complete", +"response": { +"$ref": "CompleteQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +}, +"resources": { +"clientEvents": { +"methods": { +"create": { +"description": "Report events issued when end user interacts with customer's application that uses Cloud Talent Solution. You may inspect the created events in [self service tools](https://console.cloud.google.com/talent-solution/overview). [Learn more](https://cloud.google.com/talent-solution/docs/management-tools) about self service tools.", +"flatPath": "v3p1beta1/projects/{projectsId}/clientEvents", +"httpMethod": "POST", +"id": "jobs.projects.clientEvents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent project name.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/clientEvents", +"request": { +"$ref": "CreateClientEventRequest" +}, +"response": { +"$ref": "ClientEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +}, +"companies": { +"methods": { +"create": { +"description": "Creates a new company entity.", +"flatPath": "v3p1beta1/projects/{projectsId}/companies", +"httpMethod": "POST", +"id": "jobs.projects.companies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the project under which the company is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/companies", +"request": { +"$ref": "CreateCompanyRequest" +}, +"response": { +"$ref": "Company" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"delete": { +"description": "Deletes specified company. Prerequisite: The company has no jobs associated with it.", +"flatPath": "v3p1beta1/projects/{projectsId}/companies/{companiesId}", +"httpMethod": "DELETE", +"id": "jobs.projects.companies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the company to be deleted. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "path", +"pattern": "^projects/[^/]+/companies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"get": { +"description": "Retrieves specified company.", +"flatPath": "v3p1beta1/projects/{projectsId}/companies/{companiesId}", +"httpMethod": "GET", +"id": "jobs.projects.companies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the company to be retrieved. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "path", +"pattern": "^projects/[^/]+/companies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"response": { +"$ref": "Company" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"list": { +"description": "Lists all companies associated with the service account.", +"flatPath": "v3p1beta1/projects/{projectsId}/companies", +"httpMethod": "GET", +"id": "jobs.projects.companies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of companies to be returned, at most 100. Default is 100 if a non-positive number is provided.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The starting indicator from which to return results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the project under which the company is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"requireOpenJobs": { +"description": "Optional. Set to true if the companies requested must have open jobs. Defaults to false. If true, at most page_size of companies are fetched, among which only those with open jobs are returned.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3p1beta1/{+parent}/companies", +"response": { +"$ref": "ListCompaniesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"patch": { +"description": "Updates specified company. Company names can't be updated. To update a company name, delete the company and all jobs associated with it, and only then re-create them.", +"flatPath": "v3p1beta1/projects/{projectsId}/companies/{companiesId}", +"httpMethod": "PATCH", +"id": "jobs.projects.companies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required during company update. The resource name for a company. This is generated by the service when a company is created. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "path", +"pattern": "^projects/[^/]+/companies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"request": { +"$ref": "UpdateCompanyRequest" +}, +"response": { +"$ref": "Company" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +}, +"jobs": { +"methods": { +"batchDelete": { +"description": "Deletes a list of Jobs by filter.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs:batchDelete", +"httpMethod": "POST", +"id": "jobs.projects.jobs.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/jobs:batchDelete", +"request": { +"$ref": "BatchDeleteJobsRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"create": { +"description": "Creates a new job. Typically, the job becomes searchable within 10 seconds, but it may take up to 5 minutes.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs", +"httpMethod": "POST", +"id": "jobs.projects.jobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/jobs", +"request": { +"$ref": "CreateJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"delete": { +"description": "Deletes the specified job. Typically, the job becomes unsearchable within 10 seconds, but it may take up to 5 minutes.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "DELETE", +"id": "jobs.projects.jobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job to be deleted. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\".", +"location": "path", +"pattern": "^projects/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"get": { +"description": "Retrieves the specified job, whose status is OPEN or recently EXPIRED within the last 90 days.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "jobs.projects.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job to retrieve. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\".", +"location": "path", +"pattern": "^projects/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"list": { +"description": "Lists jobs by filter.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs", +"httpMethod": "GET", +"id": "jobs.projects.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Required. The filter string specifies the jobs to be enumerated. Supported operator: =, AND The fields eligible for filtering are: * `companyName` * `requisitionId` * `status` Available values: OPEN, EXPIRED, ALL. Defaults to OPEN if no value is specified. At least one of `companyName` and `requisitionId` must present or an INVALID_ARGUMENT error is thrown. Sample Query: * companyName = \"projects/api-test-project/companies/123\" * companyName = \"projects/api-test-project/companies/123\" AND requisitionId = \"req-1\" * companyName = \"projects/api-test-project/companies/123\" AND status = \"EXPIRED\" * requisitionId = \"req-1\" * requisitionId = \"req-1\" AND status = \"EXPIRED\"", +"location": "query", +"type": "string" +}, +"jobView": { +"description": "Optional. The desired job attributes returned for jobs in the search response. Defaults to JobView.JOB_VIEW_FULL if no value is specified.", +"enum": [ +"JOB_VIEW_UNSPECIFIED", +"JOB_VIEW_ID_ONLY", +"JOB_VIEW_MINIMAL", +"JOB_VIEW_SMALL", +"JOB_VIEW_FULL" +], +"enumDescriptions": [ +"Default value.", +"A ID only view of job, with following attributes: Job.name, Job.requisition_id, Job.language_code.", +"A minimal view of the job, with the following attributes: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.language_code.", +"A small view of the job, with the following attributes in the search results: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.visibility, Job.language_code, Job.description.", +"All available attributes are included in the search results." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of jobs to be returned per page of results. If job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed page size is 1000. Otherwise, the maximum allowed page size is 100. Default is 100 if empty or a number < 1 is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The starting point of a query result.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"patch": { +"description": "Updates specified job. Typically, updated contents become visible in search results within 10 seconds, but it may take up to 5 minutes.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "PATCH", +"id": "jobs.projects.jobs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required during job update. The resource name for the job. This is generated by the service when a job is created. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\". Use of this field in job queries and API calls is preferred over the use of requisition_id since this value is unique.", +"location": "path", +"pattern": "^projects/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"request": { +"$ref": "UpdateJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"search": { +"description": "Searches for jobs using the provided SearchJobsRequest. This call constrains the visibility of jobs present in the database, and only returns jobs that the caller has permission to search against.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs:search", +"httpMethod": "POST", +"id": "jobs.projects.jobs.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/jobs:search", +"request": { +"$ref": "SearchJobsRequest" +}, +"response": { +"$ref": "SearchJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"searchForAlert": { +"description": "Searches for jobs using the provided SearchJobsRequest. This API call is intended for the use case of targeting passive job seekers (for example, job seekers who have signed up to receive email alerts about potential job opportunities), and has different algorithmic adjustments that are targeted to passive job seekers. This call constrains the visibility of jobs present in the database, and only returns jobs the caller has permission to search against.", +"flatPath": "v3p1beta1/projects/{projectsId}/jobs:searchForAlert", +"httpMethod": "POST", +"id": "jobs.projects.jobs.searchForAlert", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+parent}/jobs:searchForAlert", +"request": { +"$ref": "SearchJobsRequest" +}, +"response": { +"$ref": "SearchJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v3p1beta1/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "jobs.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3p1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +} +} +} +}, +"revision": "20241219", +"rootUrl": "https://jobs.googleapis.com/", +"schemas": { +"ApplicationInfo": { +"description": "Application related details of a job posting.", +"id": "ApplicationInfo", +"properties": { +"emails": { +"description": "Optional but at least one of uris, emails or instruction must be specified. Use this field to specify email address(es) to which resumes or applications can be sent. The maximum number of allowed characters for each entry is 255.", +"items": { +"type": "string" +}, +"type": "array" +}, +"instruction": { +"description": "Optional but at least one of uris, emails or instruction must be specified. Use this field to provide instructions, such as \"Mail your application to ...\", that a candidate can follow to apply for the job. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 3,000.", +"type": "string" +}, +"uris": { +"description": "Optional but at least one of uris, emails or instruction must be specified. Use this URI field to direct an applicant to a website, for example to link to an online application form. The maximum number of allowed characters for each entry is 2,000.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchDeleteJobsRequest": { +"description": "Input only. Batch delete jobs request.", +"id": "BatchDeleteJobsRequest", +"properties": { +"filter": { +"description": "Required. The filter string specifies the jobs to be deleted. Supported operator: =, AND The fields eligible for filtering are: * `companyName` (Required) * `requisitionId` (Required) Sample Query: companyName = \"projects/api-test-project/companies/123\" AND requisitionId = \"req-1\"", +"type": "string" +} +}, +"type": "object" +}, +"BucketRange": { +"description": "Represents starting and ending value of a range in double.", +"id": "BucketRange", +"properties": { +"from": { +"description": "Starting value of the bucket range.", +"format": "double", +"type": "number" +}, +"to": { +"description": "Ending value of the bucket range.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"BucketizedCount": { +"description": "Represents count of jobs within one bucket.", +"id": "BucketizedCount", +"properties": { +"count": { +"description": "Number of jobs whose numeric field value fall into `range`.", +"format": "int32", +"type": "integer" +}, +"range": { +"$ref": "BucketRange", +"description": "Bucket range on which histogram was performed for the numeric field, that is, the count represents number of jobs in this range." +} +}, +"type": "object" +}, +"ClientEvent": { +"description": "An event issued when an end user interacts with the application that implements Cloud Talent Solution. Providing this information improves the quality of search and recommendation for the API clients, enabling the service to perform optimally. The number of events sent must be consistent with other calls, such as job searches, issued to the service by the client.", +"id": "ClientEvent", +"properties": { +"createTime": { +"description": "Required. The timestamp of the event.", +"format": "google-datetime", +"type": "string" +}, +"eventId": { +"description": "Required. A unique identifier, generated by the client application. This `event_id` is used to establish the relationship between different events (see parent_event_id).", +"type": "string" +}, +"extraInfo": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Extra information about this event. Used for storing information with no matching field in event payload, for example, user application specific context or details. At most 20 keys are supported. The maximum total size of all keys and values is 2 KB.", +"type": "object" +}, +"jobEvent": { +"$ref": "JobEvent", +"description": "A event issued when a job seeker interacts with the application that implements Cloud Talent Solution." +}, +"parentEventId": { +"description": "Optional. The event_id of an event that resulted in the current event. For example, a Job view event usually follows a parent impression event: A job seeker first does a search where a list of jobs appears (impression). The job seeker then selects a result and views the description of a particular job (Job view).", +"type": "string" +}, +"requestId": { +"description": "Required. A unique ID generated in the API responses. It can be found in ResponseMetadata.request_id.", +"type": "string" +} +}, +"type": "object" +}, +"CommuteFilter": { +"description": "Input only. Parameters needed for commute search.", +"id": "CommuteFilter", +"properties": { +"allowImpreciseAddresses": { +"description": "Optional. If true, jobs without \"precise\" addresses (street level addresses or GPS coordinates) might also be returned. For city and coarser level addresses, text matching is used. If this field is set to false or is not specified, only jobs that include precise addresses are returned by Commute Search. Note: If `allow_imprecise_addresses` is set to true, Commute Search is not able to calculate accurate commute times to jobs with city level and coarser address information. Jobs with imprecise addresses will return a `travel_duration` time of 0 regardless of distance from the job seeker.", +"type": "boolean" +}, +"commuteMethod": { +"description": "Required. The method of transportation for which to calculate the commute time.", +"enum": [ +"COMMUTE_METHOD_UNSPECIFIED", +"DRIVING", +"TRANSIT", +"WALKING", +"CYCLING" +], +"enumDescriptions": [ +"Commute method is not specified.", +"Commute time is calculated based on driving time.", +"Commute time is calculated based on public transit including bus, metro, subway, etc.", +"Commute time is calculated based on walking time.", +"Commute time is calculated based on biking time." +], +"type": "string" +}, +"departureTime": { +"$ref": "TimeOfDay", +"description": "Optional. The departure time used to calculate traffic impact, represented as google.type.TimeOfDay in local time zone. Currently traffic model is restricted to hour level resolution." +}, +"roadTraffic": { +"description": "Optional. Specifies the traffic density to use when calculating commute time.", +"enum": [ +"ROAD_TRAFFIC_UNSPECIFIED", +"TRAFFIC_FREE", +"BUSY_HOUR" +], +"enumDescriptions": [ +"Road traffic situation is not specified.", +"Optimal commute time without considering any traffic impact.", +"Commute time calculation takes in account the peak traffic impact." +], +"type": "string" +}, +"startCoordinates": { +"$ref": "LatLng", +"description": "Required. The latitude and longitude of the location from which to calculate the commute time." +}, +"travelDuration": { +"description": "Required. The maximum travel time in seconds. The maximum allowed value is `3600s` (one hour). Format is `123s`.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"CommuteInfo": { +"description": "Output only. Commute details related to this job.", +"id": "CommuteInfo", +"properties": { +"jobLocation": { +"$ref": "Location", +"description": "Location used as the destination in the commute calculation." +}, +"travelDuration": { +"description": "The number of seconds required to travel to the job location from the query location. A duration of 0 seconds indicates that the job is not reachable within the requested duration, but was returned as part of an expanded query.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Company": { +"description": "A Company resource represents a company in the service. A company is the entity that owns job postings, that is, the hiring entity responsible for employing applicants for the job position.", +"id": "Company", +"properties": { +"careerSiteUri": { +"description": "Optional. The URI to employer's career site or careers page on the employer's web site, for example, \"https://careers.google.com\".", +"type": "string" +}, +"derivedInfo": { +"$ref": "CompanyDerivedInfo", +"description": "Output only. Derived details about the company." +}, +"displayName": { +"description": "Required. The display name of the company, for example, \"Google LLC\".", +"type": "string" +}, +"eeoText": { +"description": "Optional. Equal Employment Opportunity legal disclaimer text to be associated with all jobs, and typically to be displayed in all roles. The maximum number of allowed characters is 500.", +"type": "string" +}, +"externalId": { +"description": "Required. Client side company identifier, used to uniquely identify the company. The maximum number of allowed characters is 255.", +"type": "string" +}, +"headquartersAddress": { +"description": "Optional. The street address of the company's main headquarters, which may be different from the job location. The service attempts to geolocate the provided address, and populates a more specific location wherever possible in DerivedInfo.headquarters_location.", +"type": "string" +}, +"hiringAgency": { +"description": "Optional. Set to true if it is the hiring agency that post jobs for other employers. Defaults to false if not provided.", +"type": "boolean" +}, +"imageUri": { +"description": "Optional. A URI that hosts the employer's company logo.", +"type": "string" +}, +"keywordSearchableJobCustomAttributes": { +"deprecated": true, +"description": "Optional. This field is deprecated. Please set the searchability of the custom attribute in the Job.custom_attributes going forward. A list of keys of filterable Job.custom_attributes, whose corresponding `string_values` are used in keyword search. Jobs with `string_values` under these specified field keys are returned if any of the values matches the search keyword. Custom field values with parenthesis, brackets and special symbols won't be properly searchable, and those keyword queries need to be surrounded by quotes.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Required during company update. The resource name for a company. This is generated by the service when a company is created. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"type": "string" +}, +"size": { +"description": "Optional. The employer's company size.", +"enum": [ +"COMPANY_SIZE_UNSPECIFIED", +"MINI", +"SMALL", +"SMEDIUM", +"MEDIUM", +"BIG", +"BIGGER", +"GIANT" +], +"enumDescriptions": [ +"Default value if the size is not specified.", +"The company has less than 50 employees.", +"The company has between 50 and 99 employees.", +"The company has between 100 and 499 employees.", +"The company has between 500 and 999 employees.", +"The company has between 1,000 and 4,999 employees.", +"The company has between 5,000 and 9,999 employees.", +"The company has 10,000 or more employees." +], +"type": "string" +}, +"suspended": { +"description": "Output only. Indicates whether a company is flagged to be suspended from public availability by the service when job content appears suspicious, abusive, or spammy.", +"type": "boolean" +}, +"websiteUri": { +"description": "Optional. The URI representing the company's primary web site or home page, for example, \"https://www.google.com\". The maximum number of allowed characters is 255.", +"type": "string" +} +}, +"type": "object" +}, +"CompanyDerivedInfo": { +"description": "Derived details about the company.", +"id": "CompanyDerivedInfo", +"properties": { +"headquartersLocation": { +"$ref": "Location", +"description": "A structured headquarters location of the company, resolved from Company.hq_location if provided." +} +}, +"type": "object" +}, +"CompensationEntry": { +"description": "A compensation entry that represents one component of compensation, such as base pay, bonus, or other compensation type. Annualization: One compensation entry can be annualized if - it contains valid amount or range. - and its expected_units_per_year is set or can be derived. Its annualized range is determined as (amount or range) times expected_units_per_year.", +"id": "CompensationEntry", +"properties": { +"amount": { +"$ref": "Money", +"description": "Optional. Compensation amount." +}, +"description": { +"description": "Optional. Compensation description. For example, could indicate equity terms or provide additional context to an estimated bonus.", +"type": "string" +}, +"expectedUnitsPerYear": { +"description": "Optional. Expected number of units paid each year. If not specified, when Job.employment_types is FULLTIME, a default value is inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1", +"format": "double", +"type": "number" +}, +"range": { +"$ref": "CompensationRange", +"description": "Optional. Compensation range." +}, +"type": { +"description": "Optional. Compensation type. Default is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.", +"enum": [ +"COMPENSATION_TYPE_UNSPECIFIED", +"BASE", +"BONUS", +"SIGNING_BONUS", +"EQUITY", +"PROFIT_SHARING", +"COMMISSIONS", +"TIPS", +"OTHER_COMPENSATION_TYPE" +], +"enumDescriptions": [ +"Default value.", +"Base compensation: Refers to the fixed amount of money paid to an employee by an employer in return for work performed. Base compensation does not include benefits, bonuses or any other potential compensation from an employer.", +"Bonus.", +"Signing bonus.", +"Equity.", +"Profit sharing.", +"Commission.", +"Tips.", +"Other compensation type." +], +"type": "string" +}, +"unit": { +"description": "Optional. Frequency of the specified amount. Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.", +"enum": [ +"COMPENSATION_UNIT_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"YEARLY", +"ONE_TIME", +"OTHER_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"Default value.", +"Hourly.", +"Daily.", +"Weekly", +"Monthly.", +"Yearly.", +"One time.", +"Other compensation units." +], +"type": "string" +} +}, +"type": "object" +}, +"CompensationFilter": { +"description": "Input only. Filter on job compensation type and amount.", +"id": "CompensationFilter", +"properties": { +"includeJobsWithUnspecifiedCompensationRange": { +"description": "Optional. If set to true, jobs with unspecified compensation range fields are included.", +"type": "boolean" +}, +"range": { +"$ref": "CompensationRange", +"description": "Optional. Compensation range." +}, +"type": { +"description": "Required. Type of filter.", +"enum": [ +"FILTER_TYPE_UNSPECIFIED", +"UNIT_ONLY", +"UNIT_AND_AMOUNT", +"ANNUALIZED_BASE_AMOUNT", +"ANNUALIZED_TOTAL_AMOUNT" +], +"enumDescriptions": [ +"Filter type unspecified. Position holder, INVALID, should never be used.", +"Filter by `base compensation entry's` unit. A job is a match if and only if the job contains a base CompensationEntry and the base CompensationEntry's unit matches provided units. Populate one or more units. See CompensationInfo.CompensationEntry for definition of base compensation entry.", +"Filter by `base compensation entry's` unit and amount / range. A job is a match if and only if the job contains a base CompensationEntry, and the base entry's unit matches provided compensation_units and amount or range overlaps with provided compensation_range. See CompensationInfo.CompensationEntry for definition of base compensation entry. Set exactly one units and populate range.", +"Filter by annualized base compensation amount and `base compensation entry's` unit. Populate range and zero or more units.", +"Filter by annualized total compensation amount and `base compensation entry's` unit . Populate range and zero or more units." +], +"type": "string" +}, +"units": { +"description": "Required. Specify desired `base compensation entry's` CompensationInfo.CompensationUnit.", +"items": { +"enum": [ +"COMPENSATION_UNIT_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"YEARLY", +"ONE_TIME", +"OTHER_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"Default value.", +"Hourly.", +"Daily.", +"Weekly", +"Monthly.", +"Yearly.", +"One time.", +"Other compensation units." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompensationHistogramRequest": { +"description": "Input only. Compensation based histogram request.", +"id": "CompensationHistogramRequest", +"properties": { +"bucketingOption": { +"$ref": "NumericBucketingOption", +"description": "Required. Numeric histogram options, like buckets, whether include min or max value." +}, +"type": { +"description": "Required. Type of the request, representing which field the histogramming should be performed over. A single request can only specify one histogram of each `CompensationHistogramRequestType`.", +"enum": [ +"COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", +"BASE", +"ANNUALIZED_BASE", +"ANNUALIZED_TOTAL" +], +"enumDescriptions": [ +"Default value. Invalid.", +"Histogram by job's base compensation. See CompensationEntry for definition of base compensation.", +"Histogram by job's annualized base compensation. See CompensationEntry for definition of annualized base compensation.", +"Histogram by job's annualized total compensation. See CompensationEntry for definition of annualized total compensation." +], +"type": "string" +} +}, +"type": "object" +}, +"CompensationHistogramResult": { +"description": "Output only. Compensation based histogram result.", +"id": "CompensationHistogramResult", +"properties": { +"result": { +"$ref": "NumericBucketingResult", +"description": "Histogram result." +}, +"type": { +"description": "Type of the request, corresponding to CompensationHistogramRequest.type.", +"enum": [ +"COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", +"BASE", +"ANNUALIZED_BASE", +"ANNUALIZED_TOTAL" +], +"enumDescriptions": [ +"Default value. Invalid.", +"Histogram by job's base compensation. See CompensationEntry for definition of base compensation.", +"Histogram by job's annualized base compensation. See CompensationEntry for definition of annualized base compensation.", +"Histogram by job's annualized total compensation. See CompensationEntry for definition of annualized total compensation." +], +"type": "string" +} +}, +"type": "object" +}, +"CompensationInfo": { +"description": "Job compensation details.", +"id": "CompensationInfo", +"properties": { +"annualizedBaseCompensationRange": { +"$ref": "CompensationRange", +"description": "Output only. Annualized base compensation range. Computed as base compensation entry's CompensationEntry.compensation times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization." +}, +"annualizedTotalCompensationRange": { +"$ref": "CompensationRange", +"description": "Output only. Annualized total compensation range. Computed as all compensation entries' CompensationEntry.compensation times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization." +}, +"entries": { +"description": "Optional. Job compensation information. At most one entry can be of type CompensationInfo.CompensationType.BASE, which is referred as ** base compensation entry ** for the job.", +"items": { +"$ref": "CompensationEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompensationRange": { +"description": "Compensation range.", +"id": "CompensationRange", +"properties": { +"maxCompensation": { +"$ref": "Money", +"description": "Optional. The maximum amount of compensation. If left empty, the value is set to a maximal compensation value and the currency code is set to match the currency code of min_compensation." +}, +"minCompensation": { +"$ref": "Money", +"description": "Optional. The minimum amount of compensation. If left empty, the value is set to zero and the currency code is set to match the currency code of max_compensation." +} +}, +"type": "object" +}, +"CompleteQueryResponse": { +"description": "Output only. Response of auto-complete query.", +"id": "CompleteQueryResponse", +"properties": { +"completionResults": { +"description": "Results of the matching job/company candidates.", +"items": { +"$ref": "CompletionResult" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +} +}, +"type": "object" +}, +"CompletionResult": { +"description": "Output only. Resource that represents completion results.", +"id": "CompletionResult", +"properties": { +"imageUri": { +"description": "The URI of the company image for CompletionType.COMPANY_NAME.", +"type": "string" +}, +"suggestion": { +"description": "The suggestion for the query.", +"type": "string" +}, +"type": { +"description": "The completion topic.", +"enum": [ +"COMPLETION_TYPE_UNSPECIFIED", +"JOB_TITLE", +"COMPANY_NAME", +"COMBINED" +], +"enumDescriptions": [ +"Default value.", +"Only suggest job titles.", +"Only suggest company names.", +"Suggest both job titles and company names." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateClientEventRequest": { +"description": "The report event request.", +"id": "CreateClientEventRequest", +"properties": { +"clientEvent": { +"$ref": "ClientEvent", +"description": "Required. Events issued when end user interacts with customer's application that uses Cloud Talent Solution." +} +}, +"type": "object" +}, +"CreateCompanyRequest": { +"description": "Input only. The Request of the CreateCompany method.", +"id": "CreateCompanyRequest", +"properties": { +"company": { +"$ref": "Company", +"description": "Required. The company to be created." +} +}, +"type": "object" +}, +"CreateJobRequest": { +"description": "Input only. Create job request.", +"id": "CreateJobRequest", +"properties": { +"job": { +"$ref": "Job", +"description": "Required. The Job to be created." +} +}, +"type": "object" +}, +"CustomAttribute": { +"description": "Custom attribute values that are either filterable or non-filterable.", +"id": "CustomAttribute", +"properties": { +"filterable": { +"description": "Optional. If the `filterable` flag is true, the custom field values may be used for custom attribute filters JobQuery.custom_attribute_filter. If false, these values may not be used for custom attribute filters. Default is false.", +"type": "boolean" +}, +"longValues": { +"description": "Optional but exactly one of string_values or long_values must be specified. This field is used to perform number range search. (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`. Currently at most 1 long_values is supported.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"stringValues": { +"description": "Optional but exactly one of string_values or long_values must be specified. This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or `CASE_INSENSITIVE_MATCH`) search. For filterable `string_value`s, a maximum total number of 200 values is allowed, with each `string_value` has a byte size of no more than 500B. For unfilterable `string_values`, the maximum total byte size of unfilterable `string_values` is 50KB. Empty string is not allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomAttributeHistogramRequest": { +"description": "Custom attributes histogram request. An error is thrown if neither string_value_histogram or long_value_histogram_bucketing_option has been defined.", +"id": "CustomAttributeHistogramRequest", +"properties": { +"key": { +"description": "Required. Specifies the custom field key to perform a histogram on. If specified without `long_value_histogram_bucketing_option`, histogram on string values of the given `key` is triggered, otherwise histogram is performed on long values.", +"type": "string" +}, +"longValueHistogramBucketingOption": { +"$ref": "NumericBucketingOption", +"description": "Optional. Specifies buckets used to perform a range histogram on Job's filterable long custom field values, or min/max value requirements." +}, +"stringValueHistogram": { +"description": "Optional. If set to true, the response includes the histogram value for each key as a string.", +"type": "boolean" +} +}, +"type": "object" +}, +"CustomAttributeHistogramResult": { +"description": "Output only. Custom attribute histogram result.", +"id": "CustomAttributeHistogramResult", +"properties": { +"key": { +"description": "Stores the key of custom attribute the histogram is performed on.", +"type": "string" +}, +"longValueHistogramResult": { +"$ref": "NumericBucketingResult", +"description": "Stores bucketed histogram counting result or min/max values for custom attribute long values associated with `key`." +}, +"stringValueHistogramResult": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "Stores a map from the values of string custom field associated with `key` to the number of jobs with that value in this histogram result.", +"type": "object" +} +}, +"type": "object" +}, +"CustomRankingInfo": { +"description": "Input only. Custom ranking information for SearchJobsRequest.", +"id": "CustomRankingInfo", +"properties": { +"importanceLevel": { +"description": "Required. Controls over how important the score of CustomRankingInfo.ranking_expression gets applied to job's final ranking position. An error is thrown if not specified.", +"enum": [ +"IMPORTANCE_LEVEL_UNSPECIFIED", +"NONE", +"LOW", +"MILD", +"MEDIUM", +"HIGH", +"EXTREME" +], +"enumDescriptions": [ +"Default value if the importance level is not specified.", +"The given ranking expression is of None importance, existing relevance score (determined by API algorithm) dominates job's final ranking position.", +"The given ranking expression is of Low importance in terms of job's final ranking position compared to existing relevance score (determined by API algorithm).", +"The given ranking expression is of Mild importance in terms of job's final ranking position compared to existing relevance score (determined by API algorithm).", +"The given ranking expression is of Medium importance in terms of job's final ranking position compared to existing relevance score (determined by API algorithm).", +"The given ranking expression is of High importance in terms of job's final ranking position compared to existing relevance score (determined by API algorithm).", +"The given ranking expression is of Extreme importance, and dominates job's final ranking position with existing relevance score (determined by API algorithm) ignored." +], +"type": "string" +}, +"rankingExpression": { +"description": "Required. Controls over how job documents get ranked on top of existing relevance score (determined by API algorithm). A combination of the ranking expression and relevance score is used to determine job's final ranking position. The syntax for this expression is a subset of Google SQL syntax. Supported operators are: +, -, *, /, where the left and right side of the operator is either a numeric Job.custom_attributes key, integer/double value or an expression that can be evaluated to a number. Parenthesis are supported to adjust calculation precedence. The expression must be < 200 characters in length. The expression is considered invalid for a job if the expression references custom attributes that are not populated on the job or if the expression results in a divide by zero. If an expression is invalid for a job, that job is demoted to the end of the results. Sample ranking expression (year + 25) * 0.25 - (freshness / 0.5)", +"type": "string" +} +}, +"type": "object" +}, +"DeviceInfo": { +"description": "Device information collected from the job seeker, candidate, or other entity conducting the job search. Providing this information improves the quality of the search results across devices.", +"id": "DeviceInfo", +"properties": { +"deviceType": { +"description": "Optional. Type of the device.", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"WEB", +"MOBILE_WEB", +"ANDROID", +"IOS", +"BOT", +"OTHER" +], +"enumDescriptions": [ +"The device type isn't specified.", +"A desktop web browser, such as, Chrome, Firefox, Safari, or Internet Explorer)", +"A mobile device web browser, such as a phone or tablet with a Chrome browser.", +"An Android device native application.", +"An iOS device native application.", +"A bot, as opposed to a device operated by human beings, such as a web crawler.", +"Other devices types." +], +"type": "string" +}, +"id": { +"description": "Optional. A device-specific ID. The ID must be a unique identifier that distinguishes the device from other devices.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"HistogramFacets": { +"description": "Input only. Histogram facets to be specified in SearchJobsRequest.", +"id": "HistogramFacets", +"properties": { +"compensationHistogramFacets": { +"description": "Optional. Specifies compensation field-based histogram requests. Duplicate values of CompensationHistogramRequest.type are not allowed.", +"items": { +"$ref": "CompensationHistogramRequest" +}, +"type": "array" +}, +"customAttributeHistogramFacets": { +"description": "Optional. Specifies the custom attributes histogram requests. Duplicate values of CustomAttributeHistogramRequest.key are not allowed.", +"items": { +"$ref": "CustomAttributeHistogramRequest" +}, +"type": "array" +}, +"simpleHistogramFacets": { +"description": "Optional. Specifies the simple type of histogram facets, for example, `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.", +"items": { +"enum": [ +"SEARCH_TYPE_UNSPECIFIED", +"COMPANY_ID", +"EMPLOYMENT_TYPE", +"COMPANY_SIZE", +"DATE_PUBLISHED", +"EDUCATION_LEVEL", +"EXPERIENCE_LEVEL", +"ADMIN_1", +"COUNTRY", +"CITY", +"LOCALE", +"LANGUAGE", +"CATEGORY", +"CITY_COORDINATE", +"ADMIN_1_COUNTRY", +"COMPANY_DISPLAY_NAME", +"BASE_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"The default value if search type is not specified.", +"Filter by the company id field.", +"Filter by the employment type field, such as `FULL_TIME` or `PART_TIME`.", +"Filter by the company size type field, such as `BIG`, `SMALL` or `BIGGER`.", +"Filter by the date published field. Possible return values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS (The past 3 days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The past 30 days) * PAST_YEAR (The past 365 days)", +"Filter by the required education level of the job.", +"Filter by the required experience level of the job.", +"Filter by Admin1, which is a global placeholder for referring to state, province, or the particular term a country uses to define the geographic structure below the country level. Examples include states codes such as \"CA\", \"IL\", \"NY\", and provinces, such as \"BC\".", +"Filter by the country code of job, such as US, JP, FR.", +"Filter by the \"city name\", \"Admin1 code\", for example, \"Mountain View, CA\" or \"New York, NY\".", +"Filter by the locale field of a job, such as \"en-US\", \"fr-FR\". This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).", +"Filter by the language code portion of the locale field, such as \"en\" or \"fr\".", +"Filter by the Category.", +"Filter by the city center GPS coordinate (latitude and longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, clients may need to refresh them periodically.", +"A combination of state or province code with a country code. This field differs from `JOB_ADMIN1`, which can be used in multiple countries.", +"Company display name.", +"Base compensation unit." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"HistogramQuery": { +"description": "Input Only. The histogram request.", +"id": "HistogramQuery", +"properties": { +"histogramQuery": { +"description": "An expression specifies a histogram request against matching resources (for example, jobs) for searches. Expression syntax is a aggregation function call with histogram facets and other options. Available aggregation function calls are: * `count(string_histogram_facet)`: Count the number of matching entity, for each distinct attribute value. * `count(numeric_histogram_facet, list of buckets)`: Count the number of matching entity within each bucket. A maximum of 200 histogram buckets are supported. Data types: * Histogram facet: facet names with format a-zA-Z+. * String: string like \"any string with backslash escape for quote(\\\").\" * Number: whole number and floating point number like 10, -1 and -0.01. * List: list of elements with comma(,) separator surrounded by square brackets. For example, [1, 2, 3] and [\"one\", \"two\", \"three\"]. Built-in constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX (maximum number similar to java Double.MAX_VALUE) Built-in functions: * bucket(start, end[, label]): bucket built-in function creates a bucket with range of start, end). Note that the end is exclusive. For example, bucket(1, MAX, \"positive number\") or bucket(1, 10). Job histogram facets: * company_id: histogram by [Job.distributor_company_id. * company_display_name: histogram by Job.company_display_name. * employment_type: histogram by Job.employment_types. For example, \"FULL_TIME\", \"PART_TIME\". * company_size (DEPRECATED): histogram by CompanySize, for example, \"SMALL\", \"MEDIUM\", \"BIG\". * publish_time_in_day: histogram by the Job.publish_time in days. Must specify list of numeric buckets in spec. * publish_time_in_month: histogram by the Job.publish_time in months. Must specify list of numeric buckets in spec. * publish_time_in_year: histogram by the Job.publish_time in years. Must specify list of numeric buckets in spec. * degree_type: histogram by the Job.degree_type. For example, \"Bachelors\", \"Masters\". * job_level: histogram by the Job.job_level. For example, \"Entry Level\". * country: histogram by the country code of jobs. For example, \"US\", \"FR\". * admin1: histogram by the admin1 code of jobs, which is a global placeholder referring to the state, province, or the particular term a country uses to define the geographic structure below the country level. For example, \"CA\", \"IL\". * city: histogram by a combination of the \"city name, admin1 code\". For example, \"Mountain View, CA\", \"New York, NY\". * admin1_country: histogram by a combination of the \"admin1 code, country\". For example, \"CA, US\", \"IL, US\". * city_coordinate: histogram by the city center's GPS coordinates (latitude and longitude). For example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, customers may need to refresh them periodically. * locale: histogram by the Job.language_code. For example, \"en-US\", \"fr-FR\". * language: histogram by the language subtag of the Job.language_code. For example, \"en\", \"fr\". * category: histogram by the JobCategory. For example, \"COMPUTER_AND_IT\", \"HEALTHCARE\". * base_compensation_unit: histogram by the CompensationUnit of base salary. For example, \"WEEKLY\", \"MONTHLY\". * base_compensation: histogram by the base salary. Must specify list of numeric buckets to group results by. * annualized_base_compensation: histogram by the base annualized salary. Must specify list of numeric buckets to group results by. * annualized_total_compensation: histogram by the total annualized salary. Must specify list of numeric buckets to group results by. * string_custom_attribute: histogram by string Job.custom_attributes. Values can be accessed via square bracket notations like string_custom_attribute[\"key1\"]. * numeric_custom_attribute: histogram by numeric Job.custom_attributes. Values can be accessed via square bracket notations like numeric_custom_attribute[\"key1\"]. Must specify list of numeric buckets to group results by. Example expressions: * count(admin1) * count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000), bucket(100000, MAX)]) * count(string_custom_attribute[\"some-string-custom-attribute\"]) * count(numeric_custom_attribute[\"some-numeric-custom-attribute\"], [bucket(MIN, 0, \"negative\"), bucket(0, MAX, \"non-negative\")])", +"type": "string" +} +}, +"type": "object" +}, +"HistogramQueryResult": { +"description": "Output only. Histogram result that matches HistogramSpec specified in searches.", +"id": "HistogramQueryResult", +"properties": { +"histogram": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "A map from the values of the facet associated with distinct values to the number of matching entries with corresponding value. The key format is: * (for string histogram) string values stored in the field. * (for named numeric bucket) name specified in `bucket()` function, like for `bucket(0, MAX, \"non-negative\")`, the key will be `non-negative`. * (for anonymous numeric bucket) range formatted as `-`, for example, `0-1000`, `MIN-0`, and `0-MAX`.", +"type": "object" +}, +"histogramQuery": { +"description": "Requested histogram expression.", +"type": "string" +} +}, +"type": "object" +}, +"HistogramResult": { +"description": "Output only. Result of a histogram call. The response contains the histogram map for the search type specified by HistogramResult.field. The response is a map of each filter value to the corresponding count of jobs for that filter.", +"id": "HistogramResult", +"properties": { +"searchType": { +"description": "The Histogram search filters.", +"enum": [ +"SEARCH_TYPE_UNSPECIFIED", +"COMPANY_ID", +"EMPLOYMENT_TYPE", +"COMPANY_SIZE", +"DATE_PUBLISHED", +"EDUCATION_LEVEL", +"EXPERIENCE_LEVEL", +"ADMIN_1", +"COUNTRY", +"CITY", +"LOCALE", +"LANGUAGE", +"CATEGORY", +"CITY_COORDINATE", +"ADMIN_1_COUNTRY", +"COMPANY_DISPLAY_NAME", +"BASE_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"The default value if search type is not specified.", +"Filter by the company id field.", +"Filter by the employment type field, such as `FULL_TIME` or `PART_TIME`.", +"Filter by the company size type field, such as `BIG`, `SMALL` or `BIGGER`.", +"Filter by the date published field. Possible return values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS (The past 3 days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The past 30 days) * PAST_YEAR (The past 365 days)", +"Filter by the required education level of the job.", +"Filter by the required experience level of the job.", +"Filter by Admin1, which is a global placeholder for referring to state, province, or the particular term a country uses to define the geographic structure below the country level. Examples include states codes such as \"CA\", \"IL\", \"NY\", and provinces, such as \"BC\".", +"Filter by the country code of job, such as US, JP, FR.", +"Filter by the \"city name\", \"Admin1 code\", for example, \"Mountain View, CA\" or \"New York, NY\".", +"Filter by the locale field of a job, such as \"en-US\", \"fr-FR\". This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).", +"Filter by the language code portion of the locale field, such as \"en\" or \"fr\".", +"Filter by the Category.", +"Filter by the city center GPS coordinate (latitude and longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, clients may need to refresh them periodically.", +"A combination of state or province code with a country code. This field differs from `JOB_ADMIN1`, which can be used in multiple countries.", +"Company display name.", +"Base compensation unit." +], +"type": "string" +}, +"values": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "A map from the values of field to the number of jobs with that value in this search result. Key: search type (filter names, such as the companyName). Values: the count of jobs that match the filter for this search.", +"type": "object" +} +}, +"type": "object" +}, +"HistogramResults": { +"description": "Output only. Histogram results that match HistogramFacets specified in SearchJobsRequest.", +"id": "HistogramResults", +"properties": { +"compensationHistogramResults": { +"description": "Specifies compensation field-based histogram results that match HistogramFacets.compensation_histogram_requests.", +"items": { +"$ref": "CompensationHistogramResult" +}, +"type": "array" +}, +"customAttributeHistogramResults": { +"description": "Specifies histogram results for custom attributes that match HistogramFacets.custom_attribute_histogram_facets.", +"items": { +"$ref": "CustomAttributeHistogramResult" +}, +"type": "array" +}, +"simpleHistogramResults": { +"description": "Specifies histogram results that matches HistogramFacets.simple_histogram_facets.", +"items": { +"$ref": "HistogramResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"Job": { +"description": "A Job resource represents a job posting (also referred to as a \"job listing\" or \"job requisition\"). A job belongs to a Company, which is the hiring entity responsible for the job.", +"id": "Job", +"properties": { +"addresses": { +"description": "Optional but strongly recommended for the best service experience. Location(s) where the employer is looking to hire for this job posting. Specifying the full street address(es) of the hiring location enables better API results, especially job searches by commute time. At most 50 locations are allowed for best search performance. If a job has more locations, it is suggested to split it into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', etc.) as multiple jobs with the same company_name, language_code and requisition_id are not allowed. If the original requisition_id must be preserved, a custom field should be used for storage. It is also suggested to group the locations that close to each other in the same job for better search experience. Jobs with multiple addresses must have their addresses with the same LocationType to allow location filtering to work properly. (For example, a Job with addresses \"1600 Amphitheatre Parkway, Mountain View, CA, USA\" and \"London, UK\" may not have location filters applied correctly at search time since the first is a LocationType.STREET_ADDRESS and the second is a LocationType.LOCALITY.) If a job needs to have multiple addresses, it is suggested to split it into multiple jobs with same LocationTypes. The maximum number of allowed characters is 500.", +"items": { +"type": "string" +}, +"type": "array" +}, +"applicationInfo": { +"$ref": "ApplicationInfo", +"description": "Required. At least one field within ApplicationInfo must be specified. Job application information." +}, +"companyDisplayName": { +"description": "Output only. Display name of the company listing the job.", +"type": "string" +}, +"companyName": { +"description": "Required. The resource name of the company listing the job, such as \"projects/api-test-project/companies/foo\".", +"type": "string" +}, +"compensationInfo": { +"$ref": "CompensationInfo", +"description": "Optional. Job compensation information." +}, +"customAttributes": { +"additionalProperties": { +"$ref": "CustomAttribute" +}, +"description": "Optional. A map of fields to hold both filterable and non-filterable custom job attributes that are not covered by the provided structured fields. The keys of the map are strings up to 64 bytes and must match the pattern: a-zA-Z*. For example, key0LikeThis or KEY_1_LIKE_THIS. At most 100 filterable and at most 100 unfilterable keys are supported. For filterable `string_values`, across all keys at most 200 values are allowed, with each string no more than 255 characters. For unfilterable `string_values`, the maximum total size of `string_values` across all keys is 50KB.", +"type": "object" +}, +"degreeTypes": { +"description": "Optional. The desired education degrees for the job, such as Bachelors, Masters.", +"items": { +"enum": [ +"DEGREE_TYPE_UNSPECIFIED", +"PRIMARY_EDUCATION", +"LOWER_SECONDARY_EDUCATION", +"UPPER_SECONDARY_EDUCATION", +"ADULT_REMEDIAL_EDUCATION", +"ASSOCIATES_OR_EQUIVALENT", +"BACHELORS_OR_EQUIVALENT", +"MASTERS_OR_EQUIVALENT", +"DOCTORAL_OR_EQUIVALENT" +], +"enumDescriptions": [ +"Default value. Represents no degree, or early childhood education. Maps to ISCED code 0. Ex) Kindergarten", +"Primary education which is typically the first stage of compulsory education. ISCED code 1. Ex) Elementary school", +"Lower secondary education; First stage of secondary education building on primary education, typically with a more subject-oriented curriculum. ISCED code 2. Ex) Middle school", +"Middle education; Second/final stage of secondary education preparing for tertiary education and/or providing skills relevant to employment. Usually with an increased range of subject options and streams. ISCED code 3. Ex) High school", +"Adult Remedial Education; Programmes providing learning experiences that build on secondary education and prepare for labour market entry and/or tertiary education. The content is broader than secondary but not as complex as tertiary education. ISCED code 4.", +"Associate's or equivalent; Short first tertiary programmes that are typically practically-based, occupationally-specific and prepare for labour market entry. These programmes may also provide a pathway to other tertiary programmes. ISCED code 5.", +"Bachelor's or equivalent; Programmes designed to provide intermediate academic and/or professional knowledge, skills and competencies leading to a first tertiary degree or equivalent qualification. ISCED code 6.", +"Master's or equivalent; Programmes designed to provide advanced academic and/or professional knowledge, skills and competencies leading to a second tertiary degree or equivalent qualification. ISCED code 7.", +"Doctoral or equivalent; Programmes designed primarily to lead to an advanced research qualification, usually concluding with the submission and defense of a substantive dissertation of publishable quality based on original research. ISCED code 8." +], +"type": "string" +}, +"type": "array" +}, +"department": { +"description": "Optional. The department or functional area within the company with the open position. The maximum number of allowed characters is 255.", +"type": "string" +}, +"derivedInfo": { +"$ref": "JobDerivedInfo", +"description": "Output only. Derived details about the job posting." +}, +"description": { +"description": "Required. The description of the job, which typically includes a multi-paragraph description of the company and related information. Separate fields are provided on the job object for responsibilities, qualifications, and other job characteristics. Use of these separate job fields is recommended. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 100,000.", +"type": "string" +}, +"employmentTypes": { +"description": "Optional. The employment type(s) of a job, for example, full time or part time.", +"items": { +"enum": [ +"EMPLOYMENT_TYPE_UNSPECIFIED", +"FULL_TIME", +"PART_TIME", +"CONTRACTOR", +"CONTRACT_TO_HIRE", +"TEMPORARY", +"INTERN", +"VOLUNTEER", +"PER_DIEM", +"FLY_IN_FLY_OUT", +"OTHER_EMPLOYMENT_TYPE" +], +"enumDescriptions": [ +"The default value if the employment type is not specified.", +"The job requires working a number of hours that constitute full time employment, typically 40 or more hours per week.", +"The job entails working fewer hours than a full time job, typically less than 40 hours a week.", +"The job is offered as a contracted, as opposed to a salaried employee, position.", +"The job is offered as a contracted position with the understanding that it's converted into a full-time position at the end of the contract. Jobs of this type are also returned by a search for EmploymentType.CONTRACTOR jobs.", +"The job is offered as a temporary employment opportunity, usually a short-term engagement.", +"The job is a fixed-term opportunity for students or entry-level job seekers to obtain on-the-job training, typically offered as a summer position.", +"The is an opportunity for an individual to volunteer, where there's no expectation of compensation for the provided services.", +"The job requires an employee to work on an as-needed basis with a flexible schedule.", +"The job involves employing people in remote areas and flying them temporarily to the work site instead of relocating employees and their families permanently.", +"The job does not fit any of the other listed types." +], +"type": "string" +}, +"type": "array" +}, +"incentives": { +"description": "Optional. A description of bonus, commission, and other compensation incentives associated with the job not including salary or pay. The maximum number of allowed characters is 10,000.", +"type": "string" +}, +"jobBenefits": { +"description": "Optional. The benefits included with the job.", +"items": { +"enum": [ +"JOB_BENEFIT_UNSPECIFIED", +"CHILD_CARE", +"DENTAL", +"DOMESTIC_PARTNER", +"FLEXIBLE_HOURS", +"MEDICAL", +"LIFE_INSURANCE", +"PARENTAL_LEAVE", +"RETIREMENT_PLAN", +"SICK_DAYS", +"VACATION", +"VISION" +], +"enumDescriptions": [ +"Default value if the type is not specified.", +"The job includes access to programs that support child care, such as daycare.", +"The job includes dental services covered by a dental insurance plan.", +"The job offers specific benefits to domestic partners.", +"The job allows for a flexible work schedule.", +"The job includes health services covered by a medical insurance plan.", +"The job includes a life insurance plan provided by the employer or available for purchase by the employee.", +"The job allows for a leave of absence to a parent to care for a newborn child.", +"The job includes a workplace retirement plan provided by the employer or available for purchase by the employee.", +"The job allows for paid time off due to illness.", +"The job includes paid time off for vacation.", +"The job includes vision services covered by a vision insurance plan." +], +"type": "string" +}, +"type": "array" +}, +"jobEndTime": { +"description": "Optional. The end timestamp of the job. Typically this field is used for contracting engagements. Invalid timestamps are ignored.", +"format": "google-datetime", +"type": "string" +}, +"jobLevel": { +"description": "Optional. The experience level associated with the job, such as \"Entry Level\".", +"enum": [ +"JOB_LEVEL_UNSPECIFIED", +"ENTRY_LEVEL", +"EXPERIENCED", +"MANAGER", +"DIRECTOR", +"EXECUTIVE" +], +"enumDescriptions": [ +"The default value if the level is not specified.", +"Entry-level individual contributors, typically with less than 2 years of experience in a similar role. Includes interns.", +"Experienced individual contributors, typically with 2+ years of experience in a similar role.", +"Entry- to mid-level managers responsible for managing a team of people.", +"Senior-level managers responsible for managing teams of managers.", +"Executive-level managers and above, including C-level positions." +], +"type": "string" +}, +"jobStartTime": { +"description": "Optional. The start timestamp of the job in UTC time zone. Typically this field is used for contracting engagements. Invalid timestamps are ignored.", +"format": "google-datetime", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language of the posting. This field is distinct from any requirements for fluency that are associated with the job. Language codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){: class=\"external\" target=\"_blank\" }. If this field is unspecified and Job.description is present, detected language code based on Job.description is assigned, otherwise defaults to 'en_US'.", +"type": "string" +}, +"name": { +"description": "Required during job update. The resource name for the job. This is generated by the service when a job is created. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\". Use of this field in job queries and API calls is preferred over the use of requisition_id since this value is unique.", +"type": "string" +}, +"postingCreateTime": { +"description": "Output only. The timestamp when this job posting was created.", +"format": "google-datetime", +"type": "string" +}, +"postingExpireTime": { +"description": "Optional but strongly recommended for the best service experience. The expiration timestamp of the job. After this timestamp, the job is marked as expired, and it no longer appears in search results. The expired job can't be deleted or listed by the DeleteJob and ListJobs APIs, but it can be retrieved with the GetJob API or updated with the UpdateJob API. An expired job can be updated and opened again by using a future expiration timestamp. Updating an expired job fails if there is another existing open job with same company_name, language_code and requisition_id. The expired jobs are retained in our system for 90 days. However, the overall expired job count cannot exceed 3 times the maximum of open jobs count over the past week, otherwise jobs with earlier expire time are cleaned first. Expired jobs are no longer accessible after they are cleaned out. Invalid timestamps are ignored, and treated as expire time not provided. Timestamp before the instant request is made is considered valid, the job will be treated as expired immediately. If this value is not provided at the time of job creation or is invalid, the job posting expires after 30 days from the job's creation time. For example, if the job was created on 2017/01/01 13:00AM UTC with an unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC. If this value is not provided on job update, it depends on the field masks set by UpdateJobRequest.update_mask. If the field masks include expiry_time, or the masks are empty meaning that every field is updated, the job posting expires after 30 days from the job's last update time. Otherwise the expiration date isn't updated.", +"format": "google-datetime", +"type": "string" +}, +"postingPublishTime": { +"description": "Optional. The timestamp this job posting was most recently published. The default value is the time the request arrives at the server. Invalid timestamps are ignored.", +"format": "google-datetime", +"type": "string" +}, +"postingRegion": { +"description": "Optional. The job PostingRegion (for example, state, country) throughout which the job is available. If this field is set, a LocationFilter in a search query within the job region finds this job posting if an exact location match isn't specified. If this field is set to PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses to the same location level as this field is strongly recommended.", +"enum": [ +"POSTING_REGION_UNSPECIFIED", +"ADMINISTRATIVE_AREA", +"NATION", +"TELECOMMUTE" +], +"enumDescriptions": [ +"If the region is unspecified, the job is only returned if it matches the LocationFilter.", +"In addition to exact location matching, job posting is returned when the LocationFilter in the search query is in the same administrative area as the returned job posting. For example, if a `ADMINISTRATIVE_AREA` job is posted in \"CA, USA\", it's returned if LocationFilter has \"Mountain View\". Administrative area refers to top-level administrative subdivision of this country. For example, US state, IT region, UK constituent nation and JP prefecture.", +"In addition to exact location matching, job is returned when LocationFilter in search query is in the same country as this job. For example, if a `NATION_WIDE` job is posted in \"USA\", it's returned if LocationFilter has 'Mountain View'.", +"Job allows employees to work remotely (telecommute). If locations are provided with this value, the job is considered as having a location, but telecommuting is allowed." +], +"type": "string" +}, +"postingUpdateTime": { +"description": "Output only. The timestamp when this job posting was last updated.", +"format": "google-datetime", +"type": "string" +}, +"processingOptions": { +"$ref": "ProcessingOptions", +"description": "Optional. Options for job processing." +}, +"promotionValue": { +"description": "Optional. A promotion value of the job, as determined by the client. The value determines the sort order of the jobs returned when searching for jobs using the featured jobs search call, with higher promotional values being returned first and ties being resolved by relevance sort. Only the jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH. Default value is 0, and negative values are treated as 0.", +"format": "int32", +"type": "integer" +}, +"qualifications": { +"description": "Optional. A description of the qualifications required to perform the job. The use of this field is recommended as an alternative to using the more general description field. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 10,000.", +"type": "string" +}, +"requisitionId": { +"description": "Required. The requisition ID, also referred to as the posting ID, assigned by the client to identify a job. This field is intended to be used by clients for client identification and tracking of postings. A job is not allowed to be created if there is another job with the same [company_name], language_code and requisition_id. The maximum number of allowed characters is 255.", +"type": "string" +}, +"responsibilities": { +"description": "Optional. A description of job responsibilities. The use of this field is recommended as an alternative to using the more general description field. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 10,000.", +"type": "string" +}, +"title": { +"description": "Required. The title of the job, such as \"Software Engineer\" The maximum number of allowed characters is 500.", +"type": "string" +}, +"visibility": { +"deprecated": true, +"description": "Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not specified.", +"enum": [ +"VISIBILITY_UNSPECIFIED", +"ACCOUNT_ONLY", +"SHARED_WITH_GOOGLE", +"SHARED_WITH_PUBLIC" +], +"enumDescriptions": [ +"Default value.", +"The resource is only visible to the GCP account who owns it.", +"The resource is visible to the owner and may be visible to other applications and processes at Google.", +"The resource is visible to the owner and may be visible to all other API clients." +], +"type": "string" +} +}, +"type": "object" +}, +"JobDerivedInfo": { +"description": "Output only. Derived details about the job posting.", +"id": "JobDerivedInfo", +"properties": { +"jobCategories": { +"description": "Job categories derived from Job.title and Job.description.", +"items": { +"enum": [ +"JOB_CATEGORY_UNSPECIFIED", +"ACCOUNTING_AND_FINANCE", +"ADMINISTRATIVE_AND_OFFICE", +"ADVERTISING_AND_MARKETING", +"ANIMAL_CARE", +"ART_FASHION_AND_DESIGN", +"BUSINESS_OPERATIONS", +"CLEANING_AND_FACILITIES", +"COMPUTER_AND_IT", +"CONSTRUCTION", +"CUSTOMER_SERVICE", +"EDUCATION", +"ENTERTAINMENT_AND_TRAVEL", +"FARMING_AND_OUTDOORS", +"HEALTHCARE", +"HUMAN_RESOURCES", +"INSTALLATION_MAINTENANCE_AND_REPAIR", +"LEGAL", +"MANAGEMENT", +"MANUFACTURING_AND_WAREHOUSE", +"MEDIA_COMMUNICATIONS_AND_WRITING", +"OIL_GAS_AND_MINING", +"PERSONAL_CARE_AND_SERVICES", +"PROTECTIVE_SERVICES", +"REAL_ESTATE", +"RESTAURANT_AND_HOSPITALITY", +"SALES_AND_RETAIL", +"SCIENCE_AND_ENGINEERING", +"SOCIAL_SERVICES_AND_NON_PROFIT", +"SPORTS_FITNESS_AND_RECREATION", +"TRANSPORTATION_AND_LOGISTICS" +], +"enumDescriptions": [ +"The default value if the category isn't specified.", +"An accounting and finance job, such as an Accountant.", +"An administrative and office job, such as an Administrative Assistant.", +"An advertising and marketing job, such as Marketing Manager.", +"An animal care job, such as Veterinarian.", +"An art, fashion, or design job, such as Designer.", +"A business operations job, such as Business Operations Manager.", +"A cleaning and facilities job, such as Custodial Staff.", +"A computer and IT job, such as Systems Administrator.", +"A construction job, such as General Laborer.", +"A customer service job, such s Cashier.", +"An education job, such as School Teacher.", +"An entertainment and travel job, such as Flight Attendant.", +"A farming or outdoor job, such as Park Ranger.", +"A healthcare job, such as Registered Nurse.", +"A human resources job, such as Human Resources Director.", +"An installation, maintenance, or repair job, such as Electrician.", +"A legal job, such as Law Clerk.", +"A management job, often used in conjunction with another category, such as Store Manager.", +"A manufacturing or warehouse job, such as Assembly Technician.", +"A media, communications, or writing job, such as Media Relations.", +"An oil, gas or mining job, such as Offshore Driller.", +"A personal care and services job, such as Hair Stylist.", +"A protective services job, such as Security Guard.", +"A real estate job, such as Buyer's Agent.", +"A restaurant and hospitality job, such as Restaurant Server.", +"A sales and/or retail job, such Sales Associate.", +"A science and engineering job, such as Lab Technician.", +"A social services or non-profit job, such as Case Worker.", +"A sports, fitness, or recreation job, such as Personal Trainer.", +"A transportation or logistics job, such as Truck Driver." +], +"type": "string" +}, +"type": "array" +}, +"locations": { +"description": "Structured locations of the job, resolved from Job.addresses. locations are exactly matched to Job.addresses in the same order.", +"items": { +"$ref": "Location" +}, +"type": "array" +} +}, +"type": "object" +}, +"JobEvent": { +"description": "An event issued when a job seeker interacts with the application that implements Cloud Talent Solution.", +"id": "JobEvent", +"properties": { +"jobs": { +"description": "Required. The job name(s) associated with this event. For example, if this is an impression event, this field contains the identifiers of all jobs shown to the job seeker. If this was a view event, this field contains the identifier of the viewed job.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Required. The type of the event (see JobEventType).", +"enum": [ +"JOB_EVENT_TYPE_UNSPECIFIED", +"IMPRESSION", +"VIEW", +"VIEW_REDIRECT", +"APPLICATION_START", +"APPLICATION_FINISH", +"APPLICATION_QUICK_SUBMISSION", +"APPLICATION_REDIRECT", +"APPLICATION_START_FROM_SEARCH", +"APPLICATION_REDIRECT_FROM_SEARCH", +"APPLICATION_COMPANY_SUBMIT", +"BOOKMARK", +"NOTIFICATION", +"HIRED", +"SENT_CV", +"INTERVIEW_GRANTED", +"NOT_INTERESTED" +], +"enumDescriptions": [ +"The event is unspecified by other provided values.", +"The job seeker or other entity interacting with the service has had a job rendered in their view, such as in a list of search results in a compressed or clipped format. This event is typically associated with the viewing of a jobs list on a single page by a job seeker.", +"The job seeker, or other entity interacting with the service, has viewed the details of a job, including the full description. This event doesn't apply to the viewing a snippet of a job appearing as a part of the job search results. Viewing a snippet is associated with an impression).", +"The job seeker or other entity interacting with the service performed an action to view a job and was redirected to a different website for job.", +"The job seeker or other entity interacting with the service began the process or demonstrated the intention of applying for a job.", +"The job seeker or other entity interacting with the service submitted an application for a job.", +"The job seeker or other entity interacting with the service submitted an application for a job with a single click without entering information. If a job seeker performs this action, send only this event to the service. Do not also send JobEventType.APPLICATION_START or JobEventType.APPLICATION_FINISH events.", +"The job seeker or other entity interacting with the service performed an action to apply to a job and was redirected to a different website to complete the application.", +"The job seeker or other entity interacting with the service began the process or demonstrated the intention of applying for a job from the search results page without viewing the details of the job posting. If sending this event, JobEventType.VIEW event shouldn't be sent.", +"The job seeker, or other entity interacting with the service, performs an action with a single click from the search results page to apply to a job (without viewing the details of the job posting), and is redirected to a different website to complete the application. If a candidate performs this action, send only this event to the service. Do not also send JobEventType.APPLICATION_START, JobEventType.APPLICATION_FINISH or JobEventType.VIEW events.", +"This event should be used when a company submits an application on behalf of a job seeker. This event is intended for use by staffing agencies attempting to place candidates.", +"The job seeker or other entity interacting with the service demonstrated an interest in a job by bookmarking or saving it.", +"The job seeker or other entity interacting with the service was sent a notification, such as an email alert or device notification, containing one or more jobs listings generated by the service.", +"The job seeker or other entity interacting with the service was employed by the hiring entity (employer). Send this event only if the job seeker was hired through an application that was initiated by a search conducted through the Cloud Talent Solution service.", +"A recruiter or staffing agency submitted an application on behalf of the candidate after interacting with the service to identify a suitable job posting.", +"The entity interacting with the service (for example, the job seeker), was granted an initial interview by the hiring entity (employer). This event should only be sent if the job seeker was granted an interview as part of an application that was initiated by a search conducted through / recommendation provided by the Cloud Talent Solution service.", +"The job seeker or other entity interacting with the service showed no interest in the job." +], +"type": "string" +} +}, +"type": "object" +}, +"JobQuery": { +"description": "Input only. The query required to perform a search query.", +"id": "JobQuery", +"properties": { +"commuteFilter": { +"$ref": "CommuteFilter", +"description": "Optional. Allows filtering jobs by commute time with different travel methods (for example, driving or public transit). Note: This only works with COMMUTE MODE. When specified, [JobQuery.location_filters] is ignored. Currently we don't support sorting by commute time." +}, +"companyDisplayNames": { +"description": "Optional. This filter specifies the company Company.display_name of the jobs to search against. The company name must match the value exactly. Alternatively, the value being searched for can be wrapped in different match operators. `SUBSTRING_MATCH([value])` The company name must contain a case insensitive substring match of the value. Using this function may increase latency. Sample Value: `SUBSTRING_MATCH(google)` `MULTI_WORD_TOKEN_MATCH([value])` The value will be treated as a multi word token and the company name must contain a case insensitive match of the value. Using this function may increase latency. Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"companyNames": { +"description": "Optional. This filter specifies the company entities to search against. If a value isn't specified, jobs are searched for against all companies. If multiple values are specified, jobs are searched against the companies specified. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\". At most 20 company filters are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"compensationFilter": { +"$ref": "CompensationFilter", +"description": "Optional. This search filter is applied only to Job.compensation_info. For example, if the filter is specified as \"Hourly job with per-hour compensation > $15\", only jobs meeting these criteria are searched. If a filter isn't defined, all open jobs are searched." +}, +"customAttributeFilter": { +"description": "Optional. This filter specifies a structured syntax to match against the Job.custom_attributes marked as `filterable`. The syntax for this expression is a subset of SQL syntax. Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the left of the operator is a custom field key and the right of the operator is a number or a quoted string. You must escape backslash (\\\\) and quote (\\\") characters. Supported functions are `LOWER([field_name])` to perform a case insensitive match and `EMPTY([field_name])` to filter on the existence of a key. Boolean expressions (AND/OR/NOT) are supported up to 3 levels of nesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100 comparisons or functions are allowed in the expression. The expression must be < 10000 bytes in length. Sample Query: `(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND driving_years > 10`", +"type": "string" +}, +"disableSpellCheck": { +"description": "Optional. This flag controls the spell-check feature. If false, the service attempts to correct a misspelled query, for example, \"enginee\" is corrected to \"engineer\". Defaults to false: a spell check is performed.", +"type": "boolean" +}, +"employmentTypes": { +"description": "Optional. The employment type filter specifies the employment type of jobs to search against, such as EmploymentType.FULL_TIME. If a value is not specified, jobs in the search results includes any employment type. If multiple values are specified, jobs in the search results include any of the specified employment types.", +"items": { +"enum": [ +"EMPLOYMENT_TYPE_UNSPECIFIED", +"FULL_TIME", +"PART_TIME", +"CONTRACTOR", +"CONTRACT_TO_HIRE", +"TEMPORARY", +"INTERN", +"VOLUNTEER", +"PER_DIEM", +"FLY_IN_FLY_OUT", +"OTHER_EMPLOYMENT_TYPE" +], +"enumDescriptions": [ +"The default value if the employment type is not specified.", +"The job requires working a number of hours that constitute full time employment, typically 40 or more hours per week.", +"The job entails working fewer hours than a full time job, typically less than 40 hours a week.", +"The job is offered as a contracted, as opposed to a salaried employee, position.", +"The job is offered as a contracted position with the understanding that it's converted into a full-time position at the end of the contract. Jobs of this type are also returned by a search for EmploymentType.CONTRACTOR jobs.", +"The job is offered as a temporary employment opportunity, usually a short-term engagement.", +"The job is a fixed-term opportunity for students or entry-level job seekers to obtain on-the-job training, typically offered as a summer position.", +"The is an opportunity for an individual to volunteer, where there's no expectation of compensation for the provided services.", +"The job requires an employee to work on an as-needed basis with a flexible schedule.", +"The job involves employing people in remote areas and flying them temporarily to the work site instead of relocating employees and their families permanently.", +"The job does not fit any of the other listed types." +], +"type": "string" +}, +"type": "array" +}, +"excludedJobs": { +"description": "Optional. This filter specifies a list of job names to be excluded during search. At most 400 excluded job names are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"jobCategories": { +"description": "Optional. The category filter specifies the categories of jobs to search against. See Category for more information. If a value is not specified, jobs from any category are searched against. If multiple values are specified, jobs from any of the specified categories are searched against.", +"items": { +"enum": [ +"JOB_CATEGORY_UNSPECIFIED", +"ACCOUNTING_AND_FINANCE", +"ADMINISTRATIVE_AND_OFFICE", +"ADVERTISING_AND_MARKETING", +"ANIMAL_CARE", +"ART_FASHION_AND_DESIGN", +"BUSINESS_OPERATIONS", +"CLEANING_AND_FACILITIES", +"COMPUTER_AND_IT", +"CONSTRUCTION", +"CUSTOMER_SERVICE", +"EDUCATION", +"ENTERTAINMENT_AND_TRAVEL", +"FARMING_AND_OUTDOORS", +"HEALTHCARE", +"HUMAN_RESOURCES", +"INSTALLATION_MAINTENANCE_AND_REPAIR", +"LEGAL", +"MANAGEMENT", +"MANUFACTURING_AND_WAREHOUSE", +"MEDIA_COMMUNICATIONS_AND_WRITING", +"OIL_GAS_AND_MINING", +"PERSONAL_CARE_AND_SERVICES", +"PROTECTIVE_SERVICES", +"REAL_ESTATE", +"RESTAURANT_AND_HOSPITALITY", +"SALES_AND_RETAIL", +"SCIENCE_AND_ENGINEERING", +"SOCIAL_SERVICES_AND_NON_PROFIT", +"SPORTS_FITNESS_AND_RECREATION", +"TRANSPORTATION_AND_LOGISTICS" +], +"enumDescriptions": [ +"The default value if the category isn't specified.", +"An accounting and finance job, such as an Accountant.", +"An administrative and office job, such as an Administrative Assistant.", +"An advertising and marketing job, such as Marketing Manager.", +"An animal care job, such as Veterinarian.", +"An art, fashion, or design job, such as Designer.", +"A business operations job, such as Business Operations Manager.", +"A cleaning and facilities job, such as Custodial Staff.", +"A computer and IT job, such as Systems Administrator.", +"A construction job, such as General Laborer.", +"A customer service job, such s Cashier.", +"An education job, such as School Teacher.", +"An entertainment and travel job, such as Flight Attendant.", +"A farming or outdoor job, such as Park Ranger.", +"A healthcare job, such as Registered Nurse.", +"A human resources job, such as Human Resources Director.", +"An installation, maintenance, or repair job, such as Electrician.", +"A legal job, such as Law Clerk.", +"A management job, often used in conjunction with another category, such as Store Manager.", +"A manufacturing or warehouse job, such as Assembly Technician.", +"A media, communications, or writing job, such as Media Relations.", +"An oil, gas or mining job, such as Offshore Driller.", +"A personal care and services job, such as Hair Stylist.", +"A protective services job, such as Security Guard.", +"A real estate job, such as Buyer's Agent.", +"A restaurant and hospitality job, such as Restaurant Server.", +"A sales and/or retail job, such Sales Associate.", +"A science and engineering job, such as Lab Technician.", +"A social services or non-profit job, such as Case Worker.", +"A sports, fitness, or recreation job, such as Personal Trainer.", +"A transportation or logistics job, such as Truck Driver." +], +"type": "string" +}, +"type": "array" +}, +"languageCodes": { +"description": "Optional. This filter specifies the locale of jobs to search against, for example, \"en-US\". If a value isn't specified, the search results can contain jobs in any locale. Language codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). At most 10 language code filters are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"locationFilters": { +"description": "Optional. The location filter specifies geo-regions containing the jobs to search against. See LocationFilter for more information. If a location value isn't specified, jobs fitting the other search criteria are retrieved regardless of where they're located. If multiple values are specified, jobs are retrieved from any of the specified locations. If different values are specified for the LocationFilter.distance_in_miles parameter, the maximum provided distance is used for all locations. At most 5 location filters are allowed.", +"items": { +"$ref": "LocationFilter" +}, +"type": "array" +}, +"publishTimeRange": { +"$ref": "TimestampRange", +"description": "Optional. Jobs published within a range specified by this filter are searched against." +}, +"query": { +"description": "Optional. The query string that matches against the job title, description, and location fields. The maximum number of allowed characters is 255.", +"type": "string" +}, +"queryLanguageCode": { +"description": "The language code of query. For example, \"en-US\". This field helps to better interpret the query. If a value isn't specified, the query language code is automatically detected, which may not be accurate. Language code should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).", +"type": "string" +} +}, +"type": "object" +}, +"LatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "LatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ListCompaniesResponse": { +"description": "Output only. The List companies response object.", +"id": "ListCompaniesResponse", +"properties": { +"companies": { +"description": "Companies for the current client.", +"items": { +"$ref": "Company" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "Output only. List jobs response.", +"id": "ListJobsResponse", +"properties": { +"jobs": { +"description": "The Jobs for a given company. The maximum number of items returned is based on the limit field provided in the request.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"Location": { +"description": "Output only. A resource that represents a location with full geographic information.", +"id": "Location", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "An object representing a latitude/longitude pair." +}, +"locationType": { +"description": "The type of a location, which corresponds to the address lines field of PostalAddress. For example, \"Downtown, Atlanta, GA, USA\" has a type of LocationType#NEIGHBORHOOD, and \"Kansas City, KS, USA\" has a type of LocationType#LOCALITY.", +"enum": [ +"LOCATION_TYPE_UNSPECIFIED", +"COUNTRY", +"ADMINISTRATIVE_AREA", +"SUB_ADMINISTRATIVE_AREA", +"LOCALITY", +"POSTAL_CODE", +"SUB_LOCALITY", +"SUB_LOCALITY_1", +"SUB_LOCALITY_2", +"NEIGHBORHOOD", +"STREET_ADDRESS" +], +"enumDescriptions": [ +"Default value if the type is not specified.", +"A country level location.", +"A state or equivalent level location.", +"A county or equivalent level location.", +"A city or equivalent level location.", +"A postal code level location.", +"A sublocality is a subdivision of a locality, for example a city borough, ward, or arrondissement. Sublocalities are usually recognized by a local political authority. For example, Manhattan and Brooklyn are recognized as boroughs by the City of New York, and are therefore modeled as sublocalities.", +"A district or equivalent level location.", +"A smaller district or equivalent level display.", +"A neighborhood level location.", +"A street address level location." +], +"type": "string" +}, +"postalAddress": { +"$ref": "PostalAddress", +"description": "Postal address of the location that includes human readable information, such as postal delivery and payments addresses. Given a postal address, a postal service can deliver items to a premises, P.O. Box, or other delivery location." +}, +"radiusInMiles": { +"description": "Radius in miles of the job location. This value is derived from the location bounding box in which a circle with the specified radius centered from LatLng covers the area associated with the job location. For example, currently, \"Mountain View, CA, USA\" has a radius of 6.17 miles.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LocationFilter": { +"description": "Input only. Geographic region of the search.", +"id": "LocationFilter", +"properties": { +"address": { +"description": "Optional. The address name, such as \"Mountain View\" or \"Bay Area\".", +"type": "string" +}, +"distanceInMiles": { +"description": "Optional. The distance_in_miles is applied when the location being searched for is identified as a city or smaller. When the location being searched for is a state or larger, this field is ignored.", +"format": "double", +"type": "number" +}, +"latLng": { +"$ref": "LatLng", +"description": "Optional. The latitude and longitude of the geographic center from which to search. This field's ignored if `address` is provided." +}, +"regionCode": { +"description": "Optional. CLDR region code of the country/region. This field may be used in two ways: 1) If telecommute preference is not set, this field is used address ambiguity of the user-input address. For example, \"Liverpool\" may refer to \"Liverpool, NY, US\" or \"Liverpool, UK\". This region code biases the address resolution toward a specific country or territory. If this field is not set, address resolution is biased toward the United States by default. 2) If telecommute preference is set to TELECOMMUTE_ALLOWED, the telecommute location filter will be limited to the region specified in this field. If this field is not set, the telecommute job locations will not be limited. See https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"telecommutePreference": { +"description": "Optional. Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location). Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, the telecommute status of the jobs is ignored. Jobs that have PostingRegion.TELECOMMUTE and have additional Job.addresses may still be matched based on other location filters using address or latlng. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response.", +"enum": [ +"TELECOMMUTE_PREFERENCE_UNSPECIFIED", +"TELECOMMUTE_EXCLUDED", +"TELECOMMUTE_ALLOWED", +"TELECOMMUTE_JOBS_EXCLUDED" +], +"enumDeprecated": [ +false, +true, +false, +false +], +"enumDescriptions": [ +"Default value if the telecommute preference is not specified.", +"Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", +"Allow telecommute jobs.", +"Exclude telecommute jobs." +], +"type": "string" +} +}, +"type": "object" +}, +"MatchingJob": { +"description": "Output only. Job entry with metadata inside SearchJobsResponse.", +"id": "MatchingJob", +"properties": { +"commuteInfo": { +"$ref": "CommuteInfo", +"description": "Commute information which is generated based on specified CommuteFilter." +}, +"job": { +"$ref": "Job", +"description": "Job resource that matches the specified SearchJobsRequest." +}, +"jobSummary": { +"description": "A summary of the job with core information that's displayed on the search results listing page.", +"type": "string" +}, +"jobTitleSnippet": { +"description": "Contains snippets of text from the Job.job_title field most closely matching a search query's keywords, if available. The matching query keywords are enclosed in HTML bold tags.", +"type": "string" +}, +"searchTextSnippet": { +"description": "Contains snippets of text from the Job.description and similar fields that most closely match a search query's keywords, if available. All HTML tags in the original fields are stripped when returned in this field, and matching query keywords are enclosed in HTML bold tags.", +"type": "string" +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"NumericBucketingOption": { +"description": "Input only. Use this field to specify bucketing option for the histogram search response.", +"id": "NumericBucketingOption", +"properties": { +"bucketBounds": { +"description": "Required. Two adjacent values form a histogram bucket. Values should be in ascending order. For example, if [5, 10, 15] are provided, four buckets are created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20 [buckets_bound is supported.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +}, +"requiresMinMax": { +"description": "Optional. If set to true, the histogram result includes minimum/maximum value of the numeric field.", +"type": "boolean" +} +}, +"type": "object" +}, +"NumericBucketingResult": { +"description": "Output only. Custom numeric bucketing result.", +"id": "NumericBucketingResult", +"properties": { +"counts": { +"description": "Count within each bucket. Its size is the length of NumericBucketingOption.bucket_bounds plus 1.", +"items": { +"$ref": "BucketizedCount" +}, +"type": "array" +}, +"maxValue": { +"description": "Stores the maximum value of the numeric field. Is populated only if [NumericBucketingOption.requires_min_max] is set to true.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "Stores the minimum value of the numeric field. Will be populated only if [NumericBucketingOption.requires_min_max] is set to true.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"PostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "PostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"ProcessingOptions": { +"description": "Input only. Options for job processing.", +"id": "ProcessingOptions", +"properties": { +"disableStreetAddressResolution": { +"description": "Optional. If set to `true`, the service does not attempt to resolve a more precise address for the job.", +"type": "boolean" +}, +"htmlSanitization": { +"description": "Optional. Option for job HTML content sanitization. Applied fields are: * description * applicationInfo.instruction * incentives * qualifications * responsibilities HTML tags in these fields may be stripped if sanitiazation is not disabled. Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.", +"enum": [ +"HTML_SANITIZATION_UNSPECIFIED", +"HTML_SANITIZATION_DISABLED", +"SIMPLE_FORMATTING_ONLY" +], +"enumDescriptions": [ +"Default value.", +"Disables sanitization on HTML input.", +"Sanitizes HTML input, only accepts bold, italic, ordered list, and unordered list markup tags." +], +"type": "string" +} +}, +"type": "object" +}, +"RequestMetadata": { +"description": "Input only. Meta information related to the job searcher or entity conducting the job search. This information is used to improve the performance of the service.", +"id": "RequestMetadata", +"properties": { +"deviceInfo": { +"$ref": "DeviceInfo", +"description": "Optional. The type of device used by the job seeker at the time of the call to the service." +}, +"domain": { +"description": "Required. The client-defined scope or source of the service call, which typically is the domain on which the service has been implemented and is currently being run. For example, if the service is being run by client *Foo, Inc.*, on job board www.foo.com and career site www.bar.com, then this field is set to \"foo.com\" for use on the job board, and \"bar.com\" for use on the career site. If this field isn't available for some reason, send \"UNKNOWN\". Any improvements to the model for a particular tenant site rely on this field being set correctly to a domain. The maximum number of allowed characters is 255.", +"type": "string" +}, +"sessionId": { +"description": "Required. A unique session identification string. A session is defined as the duration of an end user's interaction with the service over a certain period. Obfuscate this field for privacy concerns before providing it to the service. If this field is not available for some reason, send \"UNKNOWN\". Note that any improvements to the model for a particular tenant site, rely on this field being set correctly to some unique session_id. The maximum number of allowed characters is 255.", +"type": "string" +}, +"userId": { +"description": "Required. A unique user identification string, as determined by the client. To have the strongest positive impact on search quality make sure the client-level is unique. Obfuscate this field for privacy concerns before providing it to the service. If this field is not available for some reason, send \"UNKNOWN\". Note that any improvements to the model for a particular tenant site, rely on this field being set correctly to a unique user_id. The maximum number of allowed characters is 255.", +"type": "string" +} +}, +"type": "object" +}, +"ResponseMetadata": { +"description": "Output only. Additional information returned to client, such as debugging information.", +"id": "ResponseMetadata", +"properties": { +"requestId": { +"description": "A unique id associated with this call. This id is logged for tracking purposes.", +"type": "string" +} +}, +"type": "object" +}, +"SearchJobsRequest": { +"description": "Input only. The Request body of the `SearchJobs` call.", +"id": "SearchJobsRequest", +"properties": { +"customRankingInfo": { +"$ref": "CustomRankingInfo", +"description": "Optional. Controls over how job documents get ranked on top of existing relevance score (determined by API algorithm)." +}, +"disableKeywordMatch": { +"description": "Optional. Controls whether to disable exact keyword match on Job.job_title, Job.description, Job.company_display_name, Job.locations, Job.qualifications. When disable keyword match is turned off, a keyword match returns jobs that do not match given category filters when there are matching keywords. For example, the query \"program manager,\" a result is returned even if the job posting has the title \"software developer,\" which does not fall into \"program manager\" ontology, but does have \"program manager\" appearing in its description. For queries like \"cloud\" that does not contain title or location specific ontology, jobs with \"cloud\" keyword matches are returned regardless of this flag's value. Please use Company.keyword_searchable_custom_fields or Company.keyword_searchable_custom_attributes if company specific globally matched custom field/attribute string values is needed. Enabling keyword match improves recall of subsequent search requests. Defaults to false.", +"type": "boolean" +}, +"diversificationLevel": { +"description": "Optional. Controls whether highly similar jobs are returned next to each other in the search results. Jobs are identified as highly similar based on their titles, job categories, and locations. Highly similar results are clustered so that only one representative job of the cluster is displayed to the job seeker higher up in the results, with the other jobs being displayed lower down in the results. Defaults to DiversificationLevel.SIMPLE if no value is specified.", +"enum": [ +"DIVERSIFICATION_LEVEL_UNSPECIFIED", +"DISABLED", +"SIMPLE" +], +"enumDescriptions": [ +"The diversification level isn't specified. By default, jobs with this enum are ordered according to SIMPLE diversifying behavior.", +"Disables diversification. Jobs that would normally be pushed to the last page would not have their positions altered. This may result in highly similar jobs appearing in sequence in the search results.", +"Default diversifying behavior. The result list is ordered so that highly similar results are pushed to the end of the last page of search results." +], +"type": "string" +}, +"enableBroadening": { +"description": "Optional. Controls whether to broaden the search when it produces sparse results. Broadened queries append results to the end of the matching results list. Defaults to false.", +"type": "boolean" +}, +"histogramFacets": { +"$ref": "HistogramFacets", +"description": "Optional. Histogram requests for jobs matching JobQuery." +}, +"histogramQueries": { +"description": "Optional. Expression based histogram requests for jobs matching JobQuery.", +"items": { +"$ref": "HistogramQuery" +}, +"type": "array" +}, +"jobQuery": { +"$ref": "JobQuery", +"description": "Optional. Query used to search against jobs, such as keyword, location filters, etc." +}, +"jobView": { +"description": "Optional. The desired job attributes returned for jobs in the search response. Defaults to JobView.SMALL if no value is specified.", +"enum": [ +"JOB_VIEW_UNSPECIFIED", +"JOB_VIEW_ID_ONLY", +"JOB_VIEW_MINIMAL", +"JOB_VIEW_SMALL", +"JOB_VIEW_FULL" +], +"enumDescriptions": [ +"Default value.", +"A ID only view of job, with following attributes: Job.name, Job.requisition_id, Job.language_code.", +"A minimal view of the job, with the following attributes: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.language_code.", +"A small view of the job, with the following attributes in the search results: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.visibility, Job.language_code, Job.description.", +"All available attributes are included in the search results." +], +"type": "string" +}, +"offset": { +"description": "Optional. An integer that specifies the current offset (that is, starting result location, amongst the jobs deemed by the API as relevant) in search results. This field is only considered if page_token is unset. The maximum allowed value is 5000. Otherwise an error is thrown. For example, 0 means to return results starting from the first matching job, and 10 means to return from the 11th job. This can be used for pagination, (for example, pageSize = 10 and offset = 10 means to return from the second page).", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "Optional. The criteria determining how search results are sorted. Default is \"relevance desc\". Supported options are: * `\"relevance desc\"`: By relevance descending, as determined by the API algorithms. Relevance thresholding of query results is only available with this ordering. * `\"posting_publish_time desc\"`: By Job.posting_publish_time descending. * `\"posting_update_time desc\"`: By Job.posting_update_time descending. * `\"title\"`: By Job.title ascending. * `\"title desc\"`: By Job.title descending. * `\"annualized_base_compensation\"`: By job's CompensationInfo.annualized_base_compensation_range ascending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"annualized_base_compensation desc\"`: By job's CompensationInfo.annualized_base_compensation_range descending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"annualized_total_compensation\"`: By job's CompensationInfo.annualized_total_compensation_range ascending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"annualized_total_compensation desc\"`: By job's CompensationInfo.annualized_total_compensation_range descending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"custom_ranking desc\"`: By the relevance score adjusted to the SearchJobsRequest.custom_ranking_info.ranking_expression with weight factor assigned by SearchJobsRequest.custom_ranking_info.importance_level in descending order. * Location sorting: Use the special syntax to order jobs by distance: \"`distance_from('Hawaii')`\": Order by distance from Hawaii. \"`distance_from(19.89, 155.5)`\": Order by distance from a coordinate. \"`distance_from('Hawaii'), distance_from('Puerto Rico')`\": Order by multiple locations. See details below. \"`distance_from('Hawaii'), distance_from(19.89, 155.5)`\": Order by multiple locations. See details below. The string can have a maximum of 256 characters. When multiple distance centers are provided, a job that is close to any of the distance centers would have a high rank. When a job has multiple locations, the job location closest to one of the distance centers will be used. Jobs that don't have locations will be ranked at the bottom. Distance is calculated with a precision of 11.3 meters (37.4 feet). Diversification strategy is still applied unless explicitly disabled in diversification_level.", +"type": "string" +}, +"pageSize": { +"description": "Optional. A limit on the number of jobs returned in the search results. Increasing this value above the default value of 10 can increase search response time. The value can be between 1 and 100.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The token specifying the current offset within search results. See SearchJobsResponse.next_page_token for an explanation of how to obtain the next set of query results.", +"type": "string" +}, +"requestMetadata": { +"$ref": "RequestMetadata", +"description": "Required. The meta information collected about the job searcher, used to improve the search quality of the service. The identifiers (such as `user_id`) are provided by users, and must be unique and consistent." +}, +"requirePreciseResultSize": { +"deprecated": true, +"description": "This field is deprecated.", +"type": "boolean" +}, +"searchMode": { +"description": "Optional. Mode of a search. Defaults to SearchMode.JOB_SEARCH.", +"enum": [ +"SEARCH_MODE_UNSPECIFIED", +"JOB_SEARCH", +"FEATURED_JOB_SEARCH" +], +"enumDescriptions": [ +"The mode of the search method isn't specified. The default search behavior is identical to JOB_SEARCH search behavior.", +"The job search matches against all jobs, and featured jobs (jobs with promotionValue > 0) are not specially handled.", +"The job search matches only against featured jobs (jobs with a promotionValue > 0). This method doesn't return any jobs having a promotionValue <= 0. The search results order is determined by the promotionValue (jobs with a higher promotionValue are returned higher up in the search results), with relevance being used as a tiebreaker." +], +"type": "string" +} +}, +"type": "object" +}, +"SearchJobsResponse": { +"description": "Output only. Response for SearchJob method.", +"id": "SearchJobsResponse", +"properties": { +"broadenedQueryJobsCount": { +"description": "If query broadening is enabled, we may append additional results from the broadened query. This number indicates how many of the jobs returned in the jobs field are from the broadened query. These results are always at the end of the jobs list. In particular, a value of 0, or if the field isn't set, all the jobs in the jobs list are from the original (without broadening) query. If this field is non-zero, subsequent requests with offset after this result set should contain all broadened results.", +"format": "int32", +"type": "integer" +}, +"estimatedTotalSize": { +"description": "An estimation of the number of jobs that match the specified query. This number is not guaranteed to be accurate. For accurate results, see SearchJobsResponse.total_size.", +"format": "int32", +"type": "integer" +}, +"histogramQueryResults": { +"description": "The histogram results that match with specified SearchJobsRequest.histogram_queries.", +"items": { +"$ref": "HistogramQueryResult" +}, +"type": "array" +}, +"histogramResults": { +"$ref": "HistogramResults", +"description": "The histogram results that match specified SearchJobsRequest.histogram_facets." +}, +"locationFilters": { +"description": "The location filters that the service applied to the specified query. If any filters are lat-lng based, the JobLocation.location_type is JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"matchingJobs": { +"description": "The Job entities that match the specified SearchJobsRequest.", +"items": { +"$ref": "MatchingJob" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +}, +"nextPageToken": { +"description": "The token that specifies the starting position of the next page of results. This field is empty if there are no more results.", +"type": "string" +}, +"spellCorrection": { +"$ref": "SpellingCorrection", +"description": "The spell checking result, and correction." +}, +"totalSize": { +"description": "The precise result count with limit 100,000.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SpellingCorrection": { +"description": "Output only. Spell check result.", +"id": "SpellingCorrection", +"properties": { +"corrected": { +"description": "Indicates if the query was corrected by the spell checker.", +"type": "boolean" +}, +"correctedText": { +"description": "Correction output consisting of the corrected keyword string.", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimestampRange": { +"description": "Message representing a period of time between two timestamps.", +"id": "TimestampRange", +"properties": { +"endTime": { +"description": "End of the period.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Begin of the period.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdateCompanyRequest": { +"description": "Input only. Request for updating a specified company.", +"id": "UpdateCompanyRequest", +"properties": { +"company": { +"$ref": "Company", +"description": "Required. The company resource to replace the current resource in the system." +}, +"updateMask": { +"description": "Optional but strongly recommended for the best service experience. If update_mask is provided, only the specified fields in company are updated. Otherwise all the fields are updated. A field mask to specify the company fields to be updated. Only top level fields of Company are supported.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateJobRequest": { +"description": "Input only. Update job request.", +"id": "UpdateJobRequest", +"properties": { +"job": { +"$ref": "Job", +"description": "Required. The Job to be updated." +}, +"updateMask": { +"description": "Optional but strongly recommended to be provided for the best service experience. If update_mask is provided, only the specified fields in job are updated. Otherwise all the fields are updated. A field mask to restrict the fields that are updated. Only top level fields of Job are supported.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Talent Solution API", +"version": "v3p1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/kmsinventory.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/kmsinventory.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..54034e64bc707d06f289814c37e0eff034580035 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/kmsinventory.v1.json @@ -0,0 +1,899 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://kmsinventory.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Kmsinventory", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/kms/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "kmsinventory:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://kmsinventory.mtls.googleapis.com/", +"name": "kmsinventory", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"protectedResources": { +"methods": { +"search": { +"description": "Returns metadata about the resources protected by the given Cloud KMS CryptoKey in the given Cloud organization.", +"flatPath": "v1/organizations/{organizationsId}/protectedResources:search", +"httpMethod": "GET", +"id": "kmsinventory.organizations.protectedResources.search", +"parameterOrder": [ +"scope" +], +"parameters": { +"cryptoKey": { +"description": "Required. The resource name of the CryptoKey.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of resources to return. The service may return fewer than this value. If unspecified, at most 500 resources will be returned. The maximum value is 500; values above 500 will be coerced to 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous KeyTrackingService.SearchProtectedResources call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to KeyTrackingService.SearchProtectedResources must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"resourceTypes": { +"description": "Optional. A list of resource types that this request searches for. If empty, it will search all the [trackable resource types](https://cloud.google.com/kms/docs/view-key-usage#tracked-resource-types). Regular expressions are also supported. For example: * `compute.googleapis.com.*` snapshots resources whose type starts with `compute.googleapis.com`. * `.*Image` snapshots resources whose type ends with `Image`. * `.*Image.*` snapshots resources whose type contains `Image`. See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported regular expression syntax. If the regular expression does not match any supported resource type, an INVALID_ARGUMENT error will be returned.", +"location": "query", +"repeated": true, +"type": "string" +}, +"scope": { +"description": "Required. Resource name of the organization. Example: organizations/123", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+scope}/protectedResources:search", +"response": { +"$ref": "GoogleCloudKmsInventoryV1SearchProtectedResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"cryptoKeys": { +"methods": { +"list": { +"description": "Returns cryptographic keys managed by Cloud KMS in a given Cloud project. Note that this data is sourced from snapshots, meaning it may not completely reflect the actual state of key metadata at call time.", +"flatPath": "v1/projects/{projectsId}/cryptoKeys", +"httpMethod": "GET", +"id": "kmsinventory.projects.cryptoKeys.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of keys to return. The service may return fewer than this value. If unspecified, at most 1000 keys will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Pass this into a subsequent request in order to receive the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Google Cloud project for which to retrieve key metadata, in the format `projects/*`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/cryptoKeys", +"response": { +"$ref": "GoogleCloudKmsInventoryV1ListCryptoKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"keyRings": { +"resources": { +"cryptoKeys": { +"methods": { +"getProtectedResourcesSummary": { +"description": "Returns aggregate information about the resources protected by the given Cloud KMS CryptoKey. Only resources within the same Cloud organization as the key will be returned. The project that holds the key must be part of an organization in order for this call to succeed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/protectedResourcesSummary", +"httpMethod": "GET", +"id": "kmsinventory.projects.locations.keyRings.cryptoKeys.getProtectedResourcesSummary", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the CryptoKey.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/protectedResourcesSummary", +"response": { +"$ref": "GoogleCloudKmsInventoryV1ProtectedResourcesSummary" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240630", +"rootUrl": "https://kmsinventory.googleapis.com/", +"schemas": { +"GoogleCloudKmsInventoryV1ListCryptoKeysResponse": { +"description": "Response message for KeyDashboardService.ListCryptoKeys.", +"id": "GoogleCloudKmsInventoryV1ListCryptoKeysResponse", +"properties": { +"cryptoKeys": { +"description": "The list of CryptoKeys.", +"items": { +"$ref": "GoogleCloudKmsV1CryptoKey" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The page token returned from the previous response if the next page is desired.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudKmsInventoryV1ProtectedResource": { +"description": "Metadata about a resource protected by a Cloud KMS key.", +"id": "GoogleCloudKmsInventoryV1ProtectedResource", +"properties": { +"cloudProduct": { +"description": "The Cloud product that owns the resource. Example: `compute`", +"type": "string" +}, +"createTime": { +"description": "Output only. The time at which this resource was created. The granularity is in seconds. Timestamp.nanos will always be 0.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cryptoKeyVersion": { +"description": "The name of the Cloud KMS [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions?hl=en) used to protect this resource via CMEK. This field is empty if the Google Cloud product owning the resource does not provide key version data to Asset Inventory. If there are multiple key versions protecting the resource, then this is same value as the first element of crypto_key_versions.", +"type": "string" +}, +"cryptoKeyVersions": { +"description": "The names of the Cloud KMS [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions?hl=en) used to protect this resource via CMEK. This field is empty if the Google Cloud product owning the resource does not provide key versions data to Asset Inventory. The first element of this field is stored in crypto_key_version.", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "A key-value pair of the resource's labels (v1) to their values.", +"type": "object" +}, +"location": { +"description": "Location can be `global`, regional like `us-east1`, or zonal like `us-west1-b`.", +"type": "string" +}, +"name": { +"description": "The full resource name of the resource. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.", +"type": "string" +}, +"project": { +"description": "Format: `projects/{PROJECT_NUMBER}`.", +"type": "string" +}, +"projectId": { +"description": "The ID of the project that owns the resource.", +"type": "string" +}, +"resourceType": { +"description": "Example: `compute.googleapis.com/Disk`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudKmsInventoryV1ProtectedResourcesSummary": { +"description": "Aggregate information about the resources protected by a Cloud KMS key in the same Cloud organization as the key.", +"id": "GoogleCloudKmsInventoryV1ProtectedResourcesSummary", +"properties": { +"cloudProducts": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "The number of resources protected by the key grouped by Cloud product.", +"type": "object" +}, +"locations": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "The number of resources protected by the key grouped by region.", +"type": "object" +}, +"name": { +"description": "The full name of the ProtectedResourcesSummary resource. Example: projects/test-project/locations/us/keyRings/test-keyring/cryptoKeys/test-key/protectedResourcesSummary", +"type": "string" +}, +"projectCount": { +"description": "The number of distinct Cloud projects in the same Cloud organization as the key that have resources protected by the key.", +"format": "int32", +"type": "integer" +}, +"resourceCount": { +"description": "The total number of protected resources in the same Cloud organization as the key.", +"format": "int64", +"type": "string" +}, +"resourceTypes": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "The number of resources protected by the key grouped by resource type.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudKmsInventoryV1SearchProtectedResourcesResponse": { +"description": "Response message for KeyTrackingService.SearchProtectedResources.", +"id": "GoogleCloudKmsInventoryV1SearchProtectedResourcesResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"protectedResources": { +"description": "Protected resources for this page.", +"items": { +"$ref": "GoogleCloudKmsInventoryV1ProtectedResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudKmsV1CryptoKey": { +"description": "A CryptoKey represents a logical key that can be used for cryptographic operations. A CryptoKey is made up of zero or more versions, which represent the actual key material used in cryptographic operations.", +"id": "GoogleCloudKmsV1CryptoKey", +"properties": { +"createTime": { +"description": "Output only. The time at which this CryptoKey was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cryptoKeyBackend": { +"description": "Immutable. The resource name of the backend environment where the key material for all CryptoKeyVersions associated with this CryptoKey reside and where all related cryptographic operations are performed. Only applicable if CryptoKeyVersions have a ProtectionLevel of EXTERNAL_VPC, with the resource name in the format `projects/*/locations/*/ekmConnections/*`. Note, this list is non-exhaustive and may apply to additional ProtectionLevels in the future.", +"type": "string" +}, +"destroyScheduledDuration": { +"description": "Immutable. The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED. If not specified at creation time, the default duration is 30 days.", +"format": "google-duration", +"type": "string" +}, +"importOnly": { +"description": "Immutable. Whether this key may contain imported versions only.", +"type": "boolean" +}, +"keyAccessJustificationsPolicy": { +"$ref": "GoogleCloudKmsV1KeyAccessJustificationsPolicy", +"description": "Optional. The policy used for Key Access Justifications Policy Enforcement. If this field is present and this key is enrolled in Key Access Justifications Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and sign operations, and the operation will fail if rejected by the policy. The policy is defined by specifying zero or more allowed justification codes. https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes By default, this field is absent, and all justification codes are allowed." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels with user-defined metadata. For more information, see [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys).", +"type": "object" +}, +"name": { +"description": "Output only. The resource name for this CryptoKey in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", +"readOnly": true, +"type": "string" +}, +"nextRotationTime": { +"description": "At next_rotation_time, the Key Management Service will automatically: 1. Create a new version of this CryptoKey. 2. Mark the new version as primary. Key rotations performed manually via CreateCryptoKeyVersion and UpdateCryptoKeyPrimaryVersion do not affect next_rotation_time. Keys with purpose ENCRYPT_DECRYPT support automatic rotation. For other keys, this field must be omitted.", +"format": "google-datetime", +"type": "string" +}, +"primary": { +"$ref": "GoogleCloudKmsV1CryptoKeyVersion", +"description": "Output only. A copy of the \"primary\" CryptoKeyVersion that will be used by Encrypt when this CryptoKey is given in EncryptRequest.name. The CryptoKey's primary version can be updated via UpdateCryptoKeyPrimaryVersion. Keys with purpose ENCRYPT_DECRYPT may have a primary. For other keys, this field will be omitted.", +"readOnly": true +}, +"purpose": { +"description": "Immutable. The immutable purpose of this CryptoKey.", +"enum": [ +"CRYPTO_KEY_PURPOSE_UNSPECIFIED", +"ENCRYPT_DECRYPT", +"ASYMMETRIC_SIGN", +"ASYMMETRIC_DECRYPT", +"RAW_ENCRYPT_DECRYPT", +"MAC" +], +"enumDescriptions": [ +"Not specified.", +"CryptoKeys with this purpose may be used with Encrypt and Decrypt.", +"CryptoKeys with this purpose may be used with AsymmetricSign and GetPublicKey.", +"CryptoKeys with this purpose may be used with AsymmetricDecrypt and GetPublicKey.", +"CryptoKeys with this purpose may be used with RawEncrypt and RawDecrypt. This purpose is meant to be used for interoperable symmetric encryption and does not support automatic CryptoKey rotation.", +"CryptoKeys with this purpose may be used with MacSign." +], +"type": "string" +}, +"rotationPeriod": { +"description": "next_rotation_time will be advanced by this period when the service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours. If rotation_period is set, next_rotation_time must also be set. Keys with purpose ENCRYPT_DECRYPT support automatic rotation. For other keys, this field must be omitted.", +"format": "google-duration", +"type": "string" +}, +"versionTemplate": { +"$ref": "GoogleCloudKmsV1CryptoKeyVersionTemplate", +"description": "A template describing settings for new CryptoKeyVersion instances. The properties of new CryptoKeyVersion instances created by either CreateCryptoKeyVersion or auto-rotation are controlled by this template." +} +}, +"type": "object" +}, +"GoogleCloudKmsV1CryptoKeyVersion": { +"description": "A CryptoKeyVersion represents an individual cryptographic key, and the associated key material. An ENABLED version can be used for cryptographic operations. For security reasons, the raw cryptographic key material represented by a CryptoKeyVersion can never be viewed or exported. It can only be used to encrypt, decrypt, or sign data when an authorized user or application invokes Cloud KMS.", +"id": "GoogleCloudKmsV1CryptoKeyVersion", +"properties": { +"algorithm": { +"description": "Output only. The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.", +"enum": [ +"CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", +"GOOGLE_SYMMETRIC_ENCRYPTION", +"AES_128_GCM", +"AES_256_GCM", +"AES_128_CBC", +"AES_256_CBC", +"AES_128_CTR", +"AES_256_CTR", +"RSA_SIGN_PSS_2048_SHA256", +"RSA_SIGN_PSS_3072_SHA256", +"RSA_SIGN_PSS_4096_SHA256", +"RSA_SIGN_PSS_4096_SHA512", +"RSA_SIGN_PKCS1_2048_SHA256", +"RSA_SIGN_PKCS1_3072_SHA256", +"RSA_SIGN_PKCS1_4096_SHA256", +"RSA_SIGN_PKCS1_4096_SHA512", +"RSA_SIGN_RAW_PKCS1_2048", +"RSA_SIGN_RAW_PKCS1_3072", +"RSA_SIGN_RAW_PKCS1_4096", +"RSA_DECRYPT_OAEP_2048_SHA256", +"RSA_DECRYPT_OAEP_3072_SHA256", +"RSA_DECRYPT_OAEP_4096_SHA256", +"RSA_DECRYPT_OAEP_4096_SHA512", +"RSA_DECRYPT_OAEP_2048_SHA1", +"RSA_DECRYPT_OAEP_3072_SHA1", +"RSA_DECRYPT_OAEP_4096_SHA1", +"EC_SIGN_P256_SHA256", +"EC_SIGN_P384_SHA384", +"EC_SIGN_SECP256K1_SHA256", +"EC_SIGN_ED25519", +"HMAC_SHA256", +"HMAC_SHA1", +"HMAC_SHA384", +"HMAC_SHA512", +"HMAC_SHA224", +"EXTERNAL_SYMMETRIC_ENCRYPTION" +], +"enumDescriptions": [ +"Not specified.", +"Creates symmetric encryption keys.", +"AES-GCM (Galois Counter Mode) using 128-bit keys.", +"AES-GCM (Galois Counter Mode) using 256-bit keys.", +"AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", +"AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", +"AES-CTR (Counter Mode) using 128-bit keys.", +"AES-CTR (Counter Mode) using 256-bit keys.", +"RSASSA-PSS 2048 bit key with a SHA256 digest.", +"RSASSA-PSS 3072 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA512 digest.", +"RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.", +"RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.", +"RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.", +"RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.", +"RSAES-OAEP 2048 bit key with a SHA256 digest.", +"RSAES-OAEP 3072 bit key with a SHA256 digest.", +"RSAES-OAEP 4096 bit key with a SHA256 digest.", +"RSAES-OAEP 4096 bit key with a SHA512 digest.", +"RSAES-OAEP 2048 bit key with a SHA1 digest.", +"RSAES-OAEP 3072 bit key with a SHA1 digest.", +"RSAES-OAEP 4096 bit key with a SHA1 digest.", +"ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", +"ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", +"ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", +"EdDSA on the Curve25519 in pure mode (taking data as input).", +"HMAC-SHA256 signing with a 256 bit key.", +"HMAC-SHA1 signing with a 160 bit key.", +"HMAC-SHA384 signing with a 384 bit key.", +"HMAC-SHA512 signing with a 512 bit key.", +"HMAC-SHA224 signing with a 224 bit key.", +"Algorithm representing symmetric encryption by an external key manager." +], +"readOnly": true, +"type": "string" +}, +"attestation": { +"$ref": "GoogleCloudKmsV1KeyOperationAttestation", +"description": "Output only. Statement that was generated and signed by the HSM at key creation time. Use this statement to verify attributes of the key as stored on the HSM, independently of Google. Only provided for key versions with protection_level HSM.", +"readOnly": true +}, +"createTime": { +"description": "Output only. The time at which this CryptoKeyVersion was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destroyEventTime": { +"description": "Output only. The time this CryptoKeyVersion's key material was destroyed. Only present if state is DESTROYED.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destroyTime": { +"description": "Output only. The time this CryptoKeyVersion's key material is scheduled for destruction. Only present if state is DESTROY_SCHEDULED.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"externalDestructionFailureReason": { +"description": "Output only. The root cause of the most recent external destruction failure. Only present if state is EXTERNAL_DESTRUCTION_FAILED.", +"readOnly": true, +"type": "string" +}, +"externalProtectionLevelOptions": { +"$ref": "GoogleCloudKmsV1ExternalProtectionLevelOptions", +"description": "ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels." +}, +"generateTime": { +"description": "Output only. The time this CryptoKeyVersion's key material was generated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"generationFailureReason": { +"description": "Output only. The root cause of the most recent generation failure. Only present if state is GENERATION_FAILED.", +"readOnly": true, +"type": "string" +}, +"importFailureReason": { +"description": "Output only. The root cause of the most recent import failure. Only present if state is IMPORT_FAILED.", +"readOnly": true, +"type": "string" +}, +"importJob": { +"description": "Output only. The name of the ImportJob used in the most recent import of this CryptoKeyVersion. Only present if the underlying key material was imported.", +"readOnly": true, +"type": "string" +}, +"importTime": { +"description": "Output only. The time at which this CryptoKeyVersion's key material was most recently imported.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name for this CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.", +"readOnly": true, +"type": "string" +}, +"protectionLevel": { +"description": "Output only. The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion.", +"enum": [ +"PROTECTION_LEVEL_UNSPECIFIED", +"SOFTWARE", +"HSM", +"EXTERNAL", +"EXTERNAL_VPC" +], +"enumDescriptions": [ +"Not specified.", +"Crypto operations are performed in software.", +"Crypto operations are performed in a Hardware Security Module.", +"Crypto operations are performed by an external key manager.", +"Crypto operations are performed in an EKM-over-VPC backend." +], +"readOnly": true, +"type": "string" +}, +"reimportEligible": { +"description": "Output only. Whether or not this key version is eligible for reimport, by being specified as a target in ImportCryptoKeyVersionRequest.crypto_key_version.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "The current state of the CryptoKeyVersion.", +"enum": [ +"CRYPTO_KEY_VERSION_STATE_UNSPECIFIED", +"PENDING_GENERATION", +"ENABLED", +"DISABLED", +"DESTROYED", +"DESTROY_SCHEDULED", +"PENDING_IMPORT", +"IMPORT_FAILED", +"GENERATION_FAILED", +"PENDING_EXTERNAL_DESTRUCTION", +"EXTERNAL_DESTRUCTION_FAILED" +], +"enumDescriptions": [ +"Not specified.", +"This version is still being generated. It may not be used, enabled, disabled, or destroyed yet. Cloud KMS will automatically mark this version ENABLED as soon as the version is ready.", +"This version may be used for cryptographic operations.", +"This version may not be used, but the key material is still available, and the version can be placed back into the ENABLED state.", +"This version is destroyed, and the key material is no longer stored. This version may only become ENABLED again if this version is reimport_eligible and the original key material is reimported with a call to KeyManagementService.ImportCryptoKeyVersion.", +"This version is scheduled for destruction, and will be destroyed soon. Call RestoreCryptoKeyVersion to put it back into the DISABLED state.", +"This version is still being imported. It may not be used, enabled, disabled, or destroyed yet. Cloud KMS will automatically mark this version ENABLED as soon as the version is ready.", +"This version was not imported successfully. It may not be used, enabled, disabled, or destroyed. The submitted key material has been discarded. Additional details can be found in CryptoKeyVersion.import_failure_reason.", +"This version was not generated successfully. It may not be used, enabled, disabled, or destroyed. Additional details can be found in CryptoKeyVersion.generation_failure_reason.", +"This version was destroyed, and it may not be used or enabled again. Cloud KMS is waiting for the corresponding key material residing in an external key manager to be destroyed.", +"This version was destroyed, and it may not be used or enabled again. However, Cloud KMS could not confirm that the corresponding key material residing in an external key manager was destroyed. Additional details can be found in CryptoKeyVersion.external_destruction_failure_reason." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudKmsV1CryptoKeyVersionTemplate": { +"description": "A CryptoKeyVersionTemplate specifies the properties to use when creating a new CryptoKeyVersion, either manually with CreateCryptoKeyVersion or automatically as a result of auto-rotation.", +"id": "GoogleCloudKmsV1CryptoKeyVersionTemplate", +"properties": { +"algorithm": { +"description": "Required. Algorithm to use when creating a CryptoKeyVersion based on this template. For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both this field is omitted and CryptoKey.purpose is ENCRYPT_DECRYPT.", +"enum": [ +"CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", +"GOOGLE_SYMMETRIC_ENCRYPTION", +"AES_128_GCM", +"AES_256_GCM", +"AES_128_CBC", +"AES_256_CBC", +"AES_128_CTR", +"AES_256_CTR", +"RSA_SIGN_PSS_2048_SHA256", +"RSA_SIGN_PSS_3072_SHA256", +"RSA_SIGN_PSS_4096_SHA256", +"RSA_SIGN_PSS_4096_SHA512", +"RSA_SIGN_PKCS1_2048_SHA256", +"RSA_SIGN_PKCS1_3072_SHA256", +"RSA_SIGN_PKCS1_4096_SHA256", +"RSA_SIGN_PKCS1_4096_SHA512", +"RSA_SIGN_RAW_PKCS1_2048", +"RSA_SIGN_RAW_PKCS1_3072", +"RSA_SIGN_RAW_PKCS1_4096", +"RSA_DECRYPT_OAEP_2048_SHA256", +"RSA_DECRYPT_OAEP_3072_SHA256", +"RSA_DECRYPT_OAEP_4096_SHA256", +"RSA_DECRYPT_OAEP_4096_SHA512", +"RSA_DECRYPT_OAEP_2048_SHA1", +"RSA_DECRYPT_OAEP_3072_SHA1", +"RSA_DECRYPT_OAEP_4096_SHA1", +"EC_SIGN_P256_SHA256", +"EC_SIGN_P384_SHA384", +"EC_SIGN_SECP256K1_SHA256", +"EC_SIGN_ED25519", +"HMAC_SHA256", +"HMAC_SHA1", +"HMAC_SHA384", +"HMAC_SHA512", +"HMAC_SHA224", +"EXTERNAL_SYMMETRIC_ENCRYPTION" +], +"enumDescriptions": [ +"Not specified.", +"Creates symmetric encryption keys.", +"AES-GCM (Galois Counter Mode) using 128-bit keys.", +"AES-GCM (Galois Counter Mode) using 256-bit keys.", +"AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", +"AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", +"AES-CTR (Counter Mode) using 128-bit keys.", +"AES-CTR (Counter Mode) using 256-bit keys.", +"RSASSA-PSS 2048 bit key with a SHA256 digest.", +"RSASSA-PSS 3072 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA512 digest.", +"RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.", +"RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.", +"RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.", +"RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.", +"RSAES-OAEP 2048 bit key with a SHA256 digest.", +"RSAES-OAEP 3072 bit key with a SHA256 digest.", +"RSAES-OAEP 4096 bit key with a SHA256 digest.", +"RSAES-OAEP 4096 bit key with a SHA512 digest.", +"RSAES-OAEP 2048 bit key with a SHA1 digest.", +"RSAES-OAEP 3072 bit key with a SHA1 digest.", +"RSAES-OAEP 4096 bit key with a SHA1 digest.", +"ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", +"ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", +"ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", +"EdDSA on the Curve25519 in pure mode (taking data as input).", +"HMAC-SHA256 signing with a 256 bit key.", +"HMAC-SHA1 signing with a 160 bit key.", +"HMAC-SHA384 signing with a 384 bit key.", +"HMAC-SHA512 signing with a 512 bit key.", +"HMAC-SHA224 signing with a 224 bit key.", +"Algorithm representing symmetric encryption by an external key manager." +], +"type": "string" +}, +"protectionLevel": { +"description": "ProtectionLevel to use when creating a CryptoKeyVersion based on this template. Immutable. Defaults to SOFTWARE.", +"enum": [ +"PROTECTION_LEVEL_UNSPECIFIED", +"SOFTWARE", +"HSM", +"EXTERNAL", +"EXTERNAL_VPC" +], +"enumDescriptions": [ +"Not specified.", +"Crypto operations are performed in software.", +"Crypto operations are performed in a Hardware Security Module.", +"Crypto operations are performed by an external key manager.", +"Crypto operations are performed in an EKM-over-VPC backend." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudKmsV1ExternalProtectionLevelOptions": { +"description": "ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.", +"id": "GoogleCloudKmsV1ExternalProtectionLevelOptions", +"properties": { +"ekmConnectionKeyPath": { +"description": "The path to the external key material on the EKM when using EkmConnection e.g., \"v0/my/key\". Set this field instead of external_key_uri when using an EkmConnection.", +"type": "string" +}, +"externalKeyUri": { +"description": "The URI for an external resource that this CryptoKeyVersion represents.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudKmsV1KeyAccessJustificationsPolicy": { +"description": "A KeyAccessJustificationsPolicy specifies zero or more allowed AccessReason values for encrypt, decrypt, and sign operations on a CryptoKey.", +"id": "GoogleCloudKmsV1KeyAccessJustificationsPolicy", +"properties": { +"allowedAccessReasons": { +"description": "The list of allowed reasons for access to a CryptoKey. Zero allowed access reasons means all encrypt, decrypt, and sign operations for the CryptoKey associated with this policy will fail.", +"items": { +"enum": [ +"REASON_UNSPECIFIED", +"CUSTOMER_INITIATED_SUPPORT", +"GOOGLE_INITIATED_SERVICE", +"THIRD_PARTY_DATA_REQUEST", +"GOOGLE_INITIATED_REVIEW", +"CUSTOMER_INITIATED_ACCESS", +"GOOGLE_INITIATED_SYSTEM_OPERATION", +"REASON_NOT_EXPECTED", +"MODIFIED_CUSTOMER_INITIATED_ACCESS", +"MODIFIED_GOOGLE_INITIATED_SYSTEM_OPERATION", +"GOOGLE_RESPONSE_TO_PRODUCTION_ALERT", +"CUSTOMER_AUTHORIZED_WORKFLOW_SERVICING" +], +"enumDescriptions": [ +"Unspecified access reason.", +"Customer-initiated support.", +"Google-initiated access for system management and troubleshooting.", +"Google-initiated access in response to a legal request or legal process.", +"Google-initiated access for security, fraud, abuse, or compliance purposes.", +"Customer uses their account to perform any access to their own data which their IAM policy authorizes.", +"Google systems access customer data to help optimize the structure of the data or quality for future uses by the customer.", +"No reason is expected for this key request.", +"Customer uses their account to perform any access to their own data which their IAM policy authorizes, and one of the following is true: * A Google administrator has reset the root-access account associated with the user's organization within the past 7 days. * A Google-initiated emergency access operation has interacted with a resource in the same project or folder as the currently accessed resource within the past 7 days.", +"Google systems access customer data to help optimize the structure of the data or quality for future uses by the customer, and one of the following is true: * A Google administrator has reset the root-access account associated with the user's organization within the past 7 days. * A Google-initiated emergency access operation has interacted with a resource in the same project or folder as the currently accessed resource within the past 7 days.", +"Google-initiated access to maintain system reliability.", +"One of the following operations is being executed while simultaneously encountering an internal technical issue which prevented a more precise justification code from being generated: * Your account has been used to perform any access to your own data which your IAM policy authorizes. * An automated Google system operates on encrypted customer data which your IAM policy authorizes. * Customer-initiated Google support access. * Google-initiated support access to protect system reliability." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudKmsV1KeyOperationAttestation": { +"description": "Contains an HSM-generated attestation about a key operation. For more information, see [Verifying attestations] (https://cloud.google.com/kms/docs/attest-key).", +"id": "GoogleCloudKmsV1KeyOperationAttestation", +"properties": { +"certChains": { +"$ref": "GoogleCloudKmsV1KeyOperationAttestationCertificateChains", +"description": "Output only. The certificate chains needed to validate the attestation", +"readOnly": true +}, +"content": { +"description": "Output only. The attestation data provided by the HSM when the key operation was performed.", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"format": { +"description": "Output only. The format of the attestation data.", +"enum": [ +"ATTESTATION_FORMAT_UNSPECIFIED", +"CAVIUM_V1_COMPRESSED", +"CAVIUM_V2_COMPRESSED" +], +"enumDescriptions": [ +"Not specified.", +"Cavium HSM attestation compressed with gzip. Note that this format is defined by Cavium and subject to change at any time. See https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html.", +"Cavium HSM attestation V2 compressed with gzip. This is a new format introduced in Cavium's version 3.2-08." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudKmsV1KeyOperationAttestationCertificateChains": { +"description": "Certificate chains needed to verify the attestation. Certificates in chains are PEM-encoded and are ordered based on https://tools.ietf.org/html/rfc5246#section-7.4.2.", +"id": "GoogleCloudKmsV1KeyOperationAttestationCertificateChains", +"properties": { +"caviumCerts": { +"description": "Cavium certificate chain corresponding to the attestation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"googleCardCerts": { +"description": "Google card certificate chain corresponding to the attestation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"googlePartitionCerts": { +"description": "Google partition certificate chain corresponding to the attestation.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "KMS Inventory API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/libraryagent.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/libraryagent.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..78548039b50a8bce101fa2bdce5bf0a12dc689fa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/libraryagent.v1.json @@ -0,0 +1,364 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://libraryagent.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Libraryagent", +"description": "A simple Google Example Library API.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/docs/quota", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "libraryagent:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://libraryagent.mtls.googleapis.com/", +"name": "libraryagent", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"shelves": { +"methods": { +"get": { +"description": "Gets a shelf. Returns NOT_FOUND if the shelf does not exist.", +"flatPath": "v1/shelves/{shelvesId}", +"httpMethod": "GET", +"id": "libraryagent.shelves.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the shelf to retrieve.", +"location": "path", +"pattern": "^shelves/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleExampleLibraryagentV1Shelf" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists shelves. The order is unspecified but deterministic. Newly created shelves will not necessarily be added to the end of this list.", +"flatPath": "v1/shelves", +"httpMethod": "GET", +"id": "libraryagent.shelves.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Requested page size. Server may return fewer shelves than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListShelvesResponse.next_page_token returned from the previous call to `ListShelves` method.", +"location": "query", +"type": "string" +} +}, +"path": "v1/shelves", +"response": { +"$ref": "GoogleExampleLibraryagentV1ListShelvesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"books": { +"methods": { +"borrow": { +"description": "Borrow a book from the library. Returns the book if it is borrowed successfully. Returns NOT_FOUND if the book does not exist in the library. Returns quota exceeded error if the amount of books borrowed exceeds allocation quota in any dimensions.", +"flatPath": "v1/shelves/{shelvesId}/books/{booksId}:borrow", +"httpMethod": "POST", +"id": "libraryagent.shelves.books.borrow", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the book to borrow.", +"location": "path", +"pattern": "^shelves/[^/]+/books/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:borrow", +"response": { +"$ref": "GoogleExampleLibraryagentV1Book" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a book. Returns NOT_FOUND if the book does not exist.", +"flatPath": "v1/shelves/{shelvesId}/books/{booksId}", +"httpMethod": "GET", +"id": "libraryagent.shelves.books.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the book to retrieve.", +"location": "path", +"pattern": "^shelves/[^/]+/books/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleExampleLibraryagentV1Book" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists books in a shelf. The order is unspecified but deterministic. Newly created books will not necessarily be added to the end of this list. Returns NOT_FOUND if the shelf does not exist.", +"flatPath": "v1/shelves/{shelvesId}/books", +"httpMethod": "GET", +"id": "libraryagent.shelves.books.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. Server may return fewer books than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListBooksResponse.next_page_token. returned from the previous call to `ListBooks` method.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the shelf whose books we'd like to list.", +"location": "path", +"pattern": "^shelves/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/books", +"response": { +"$ref": "GoogleExampleLibraryagentV1ListBooksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"return": { +"description": "Return a book to the library. Returns the book if it is returned to the library successfully. Returns error if the book does not belong to the library or the users didn't borrow before.", +"flatPath": "v1/shelves/{shelvesId}/books/{booksId}:return", +"httpMethod": "POST", +"id": "libraryagent.shelves.books.return", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the book to return.", +"location": "path", +"pattern": "^shelves/[^/]+/books/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:return", +"response": { +"$ref": "GoogleExampleLibraryagentV1Book" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://libraryagent.googleapis.com/", +"schemas": { +"GoogleExampleLibraryagentV1Book": { +"description": "A single book in the library.", +"id": "GoogleExampleLibraryagentV1Book", +"properties": { +"author": { +"description": "The name of the book author.", +"type": "string" +}, +"name": { +"description": "The resource name of the book. Book names have the form `shelves/{shelf_id}/books/{book_id}`. The name is ignored when creating a book.", +"type": "string" +}, +"read": { +"description": "Value indicating whether the book has been read.", +"type": "boolean" +}, +"title": { +"description": "The title of the book.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleExampleLibraryagentV1ListBooksResponse": { +"description": "Response message for LibraryAgent.ListBooks.", +"id": "GoogleExampleLibraryagentV1ListBooksResponse", +"properties": { +"books": { +"description": "The list of books.", +"items": { +"$ref": "GoogleExampleLibraryagentV1Book" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this value in the ListBooksRequest.page_token field in the subsequent call to `ListBooks` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleExampleLibraryagentV1ListShelvesResponse": { +"description": "Response message for LibraryAgent.ListShelves.", +"id": "GoogleExampleLibraryagentV1ListShelvesResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this value in the ListShelvesRequest.page_token field in the subsequent call to `ListShelves` method to retrieve the next page of results.", +"type": "string" +}, +"shelves": { +"description": "The list of shelves.", +"items": { +"$ref": "GoogleExampleLibraryagentV1Shelf" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleExampleLibraryagentV1Shelf": { +"description": "A Shelf contains a collection of books with a theme.", +"id": "GoogleExampleLibraryagentV1Shelf", +"properties": { +"name": { +"description": "Output only. The resource name of the shelf. Shelf names have the form `shelves/{shelf_id}`. The name is ignored when creating a shelf.", +"type": "string" +}, +"theme": { +"description": "The theme of the shelf", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Library Agent API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json new file mode 100644 index 0000000000000000000000000000000000000000..c09dd0ac73ab94f2d930f04c4fd615b96d682254 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json @@ -0,0 +1,1219 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://lifesciences.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Life Sciences", +"description": "Cloud Life Sciences is a suite of services and tools for managing, processing, and transforming life sciences data.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/life-sciences", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "lifesciences:v2beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://lifesciences.mtls.googleapis.com/", +"name": "lifesciences", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "lifesciences.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v2beta/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "lifesciences.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission: * `lifesciences.operations.cancel`", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "lifesciences.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission: * `lifesciences.operations.get`", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "lifesciences.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission: * `lifesciences.operations.list`", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "lifesciences.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A string for filtering Operations. The following filter fields are supported: * createTime: The time this job was created * events: The set of event (names) that have occurred while running the pipeline. The : operator can be used to determine if a particular event has occurred. * error: If the pipeline is running, this value is NULL. Once the pipeline finishes, the value is the standard Google error code. * labels.key or labels.\"key with space\" where key is a label key. * done: If the pipeline is running, this value is false. Once the pipeline finishes, the value is true.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. The maximum value is 256.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"pipelines": { +"methods": { +"run": { +"description": "Runs a pipeline. The returned Operation's metadata field will contain a google.cloud.lifesciences.v2beta.Metadata object describing the status of the pipeline execution. The response field will contain a google.cloud.lifesciences.v2beta.RunPipelineResponse object if the pipeline completes successfully. **Note:** Before you can use this method, the *Life Sciences Service Agent* must have access to your project. This is done automatically when the Cloud Life Sciences API is first enabled, but if you delete this permission you must disable and re-enable the API to grant the Life Sciences Service Agent the required permissions. Authorization requires the following [Google IAM](https://cloud.google.com/iam/) permission: * `lifesciences.workflows.run`", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/pipelines:run", +"httpMethod": "POST", +"id": "lifesciences.projects.locations.pipelines.run", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The project and location that this request should be executed against.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/pipelines:run", +"request": { +"$ref": "RunPipelineRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20240614", +"rootUrl": "https://lifesciences.googleapis.com/", +"schemas": { +"Accelerator": { +"description": "Carries information about an accelerator that can be attached to a VM.", +"id": "Accelerator", +"properties": { +"count": { +"description": "How many accelerators of this type to attach.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "The accelerator type string (for example, \"nvidia-tesla-t4\"). Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is attached, the required runtime libraries will be made available to all containers under `/usr/local/nvidia`. The driver version to install must be specified using the NVIDIA driver version parameter on the virtual machine specification. Note that attaching a GPU increases the worker VM startup time by a few minutes.", +"type": "string" +} +}, +"type": "object" +}, +"Action": { +"description": "Specifies a single action that runs a Docker container.", +"id": "Action", +"properties": { +"alwaysRun": { +"description": "By default, after an action fails, no further actions are run. This flag indicates that this action must be run even if the pipeline has already failed. This is useful for actions that copy output files off of the VM or for debugging. Note that no actions will be run if image prefetching fails.", +"type": "boolean" +}, +"blockExternalNetwork": { +"description": "Prevents the container from accessing the external network.", +"type": "boolean" +}, +"commands": { +"description": "If specified, overrides the `CMD` specified in the container. If the container also has an `ENTRYPOINT` the values are used as entrypoint arguments. Otherwise, they are used as a command and arguments to run inside the container.", +"items": { +"type": "string" +}, +"type": "array" +}, +"containerName": { +"description": "An optional name for the container. The container hostname will be set to this name, making it useful for inter-container communication. The name must contain only upper and lowercase alphanumeric characters and hyphens and cannot start with a hyphen.", +"type": "string" +}, +"credentials": { +"$ref": "Secret", +"description": "If the specified image is hosted on a private registry other than Google Container Registry, the credentials required to pull the image must be specified here as an encrypted secret. The secret must decrypt to a JSON-encoded dictionary containing both `username` and `password` keys." +}, +"disableImagePrefetch": { +"description": "All container images are typically downloaded before any actions are executed. This helps prevent typos in URIs or issues like lack of disk space from wasting large amounts of compute resources. If set, this flag prevents the worker from downloading the image until just before the action is executed.", +"type": "boolean" +}, +"disableStandardErrorCapture": { +"description": "A small portion of the container's standard error stream is typically captured and returned inside the `ContainerStoppedEvent`. Setting this flag disables this functionality.", +"type": "boolean" +}, +"enableFuse": { +"description": "Enable access to the FUSE device for this action. Filesystems can then be mounted into disks shared with other actions. The other actions do not need the `enable_fuse` flag to access the mounted filesystem. This has the effect of causing the container to be executed with `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it only for containers you trust.", +"type": "boolean" +}, +"encryptedEnvironment": { +"$ref": "Secret", +"description": "The encrypted environment to pass into the container. This environment is merged with values specified in the google.cloud.lifesciences.v2beta.Pipeline message, overwriting any duplicate values. The secret must decrypt to a JSON-encoded dictionary where key-value pairs serve as environment variable names and their values. The decoded environment variables can overwrite the values specified by the `environment` field." +}, +"entrypoint": { +"description": "If specified, overrides the `ENTRYPOINT` specified in the container.", +"type": "string" +}, +"environment": { +"additionalProperties": { +"type": "string" +}, +"description": "The environment to pass into the container. This environment is merged with values specified in the google.cloud.lifesciences.v2beta.Pipeline message, overwriting any duplicate values. In addition to the values passed here, a few other values are automatically injected into the environment. These cannot be hidden or overwritten. `GOOGLE_PIPELINE_FAILED` will be set to \"1\" if the pipeline failed because an action has exited with a non-zero status (and did not have the `IGNORE_EXIT_STATUS` flag set). This can be used to determine if additional debug or logging actions should execute. `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last non-background action that executed. This can be used by workflow engine authors to determine whether an individual action has succeeded or failed.", +"type": "object" +}, +"ignoreExitStatus": { +"description": "Normally, a non-zero exit status causes the pipeline to fail. This flag allows execution of other actions to continue instead.", +"type": "boolean" +}, +"imageUri": { +"description": "Required. The URI to pull the container image from. Note that all images referenced by actions in the pipeline are pulled before the first action runs. If multiple actions reference the same image, it is only pulled once, ensuring that the same image is used for all actions in a single pipeline. The image URI can be either a complete host and image specification (e.g., quay.io/biocontainers/samtools), a library and image name (e.g., google/cloud-sdk) or a bare image name ('bash') to pull from the default library. No schema is required in any of these cases. If the specified image is not public, the service account specified for the Virtual Machine must have access to pull the images from GCR, or appropriate credentials must be specified in the google.cloud.lifesciences.v2beta.Action.credentials field.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels to associate with the action. This field is provided to assist workflow engine authors in identifying actions (for example, to indicate what sort of action they perform, such as localization or debugging). They are returned in the operation metadata, but are otherwise ignored.", +"type": "object" +}, +"mounts": { +"description": "A list of mounts to make available to the action. In addition to the values specified here, every action has a special virtual disk mounted under `/google` that contains log files and other operational components. - /google/logs All logs written during the pipeline execution. - /google/logs/output The combined standard output and standard error of all actions run as part of the pipeline execution. - /google/logs/action/*/stdout The complete contents of each individual action's standard output. - /google/logs/action/*/stderr The complete contents of each individual action's standard error output. ", +"items": { +"$ref": "Mount" +}, +"type": "array" +}, +"pidNamespace": { +"description": "An optional identifier for a PID namespace to run the action inside. Multiple actions should use the same string to share a namespace. If unspecified, a separate isolated namespace is used.", +"type": "string" +}, +"portMappings": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "A map of containers to host port mappings for this container. If the container already specifies exposed ports, use the `PUBLISH_EXPOSED_PORTS` flag instead. The host port number must be less than 65536. If it is zero, an unused random port is assigned. To determine the resulting port number, consult the `ContainerStartedEvent` in the operation metadata.", +"type": "object" +}, +"publishExposedPorts": { +"description": "Exposes all ports specified by `EXPOSE` statements in the container. To discover the host side port numbers, consult the `ACTION_STARTED` event in the operation metadata.", +"type": "boolean" +}, +"runInBackground": { +"description": "This flag allows an action to continue running in the background while executing subsequent actions. This is useful to provide services to other actions (or to provide debugging support tools like SSH servers).", +"type": "boolean" +}, +"timeout": { +"description": "The maximum amount of time to give the action to complete. If the action fails to complete before the timeout, it will be terminated and the exit status will be non-zero. The pipeline will continue or terminate based on the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS` flags.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ContainerKilledEvent": { +"description": "An event generated when a container is forcibly terminated by the worker. Currently, this only occurs when the container outlives the timeout specified by the user.", +"id": "ContainerKilledEvent", +"properties": { +"actionId": { +"description": "The numeric ID of the action that started the container.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ContainerStartedEvent": { +"description": "An event generated when a container starts.", +"id": "ContainerStartedEvent", +"properties": { +"actionId": { +"description": "The numeric ID of the action that started this container.", +"format": "int32", +"type": "integer" +}, +"ipAddress": { +"description": "The public IP address that can be used to connect to the container. This field is only populated when at least one port mapping is present. If the instance was created with a private address, this field will be empty even if port mappings exist.", +"type": "string" +}, +"portMappings": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "The container-to-host port mappings installed for this container. This set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag as well as any specified in the `Action` definition.", +"type": "object" +} +}, +"type": "object" +}, +"ContainerStoppedEvent": { +"description": "An event generated when a container exits.", +"id": "ContainerStoppedEvent", +"properties": { +"actionId": { +"description": "The numeric ID of the action that started this container.", +"format": "int32", +"type": "integer" +}, +"exitStatus": { +"description": "The exit status of the container.", +"format": "int32", +"type": "integer" +}, +"stderr": { +"description": "The tail end of any content written to standard error by the container. If the content emits large amounts of debugging noise or contains sensitive information, you can prevent the content from being printed by setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag. Note that only a small amount of the end of the stream is captured here. The entire stream is stored in the `/google/logs` directory mounted into each action, and can be copied off the machine as described elsewhere.", +"type": "string" +} +}, +"type": "object" +}, +"DelayedEvent": { +"description": "An event generated whenever a resource limitation or transient error delays execution of a pipeline that was otherwise ready to run.", +"id": "DelayedEvent", +"properties": { +"cause": { +"description": "A textual description of the cause of the delay. The string can change without notice because it is often generated by another service (such as Compute Engine).", +"type": "string" +}, +"metrics": { +"description": "If the delay was caused by a resource shortage, this field lists the Compute Engine metrics that are preventing this operation from running (for example, `CPUS` or `INSTANCES`). If the particular metric is not known, a single `UNKNOWN` metric will be present.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Disk": { +"description": "Carries information about a disk that can be attached to a VM. See https://cloud.google.com/compute/docs/disks/performance for more information about disk type, size, and performance considerations. Specify either `Volume` or `Disk`, but not both.", +"id": "Disk", +"properties": { +"name": { +"description": "A user-supplied name for the disk. Used when mounting the disk into actions. The name must contain only upper and lowercase alphanumeric characters and hyphens and cannot start with a hyphen.", +"type": "string" +}, +"sizeGb": { +"description": "The size, in GB, of the disk to attach. If the size is not specified, a default is chosen to ensure reasonable I/O performance. If the disk type is specified as `local-ssd`, multiple local drives are automatically combined to provide the requested size. Note, however, that each physical SSD is 375GB in size, and no more than 8 drives can be attached to a single instance.", +"format": "int32", +"type": "integer" +}, +"sourceImage": { +"description": "An optional image to put on the disk before attaching it to the VM.", +"type": "string" +}, +"type": { +"description": "The Compute Engine disk type. If unspecified, `pd-standard` is used.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Event": { +"description": "Carries information about events that occur during pipeline execution.", +"id": "Event", +"properties": { +"containerKilled": { +"$ref": "ContainerKilledEvent", +"description": "See google.cloud.lifesciences.v2beta.ContainerKilledEvent." +}, +"containerStarted": { +"$ref": "ContainerStartedEvent", +"description": "See google.cloud.lifesciences.v2beta.ContainerStartedEvent." +}, +"containerStopped": { +"$ref": "ContainerStoppedEvent", +"description": "See google.cloud.lifesciences.v2beta.ContainerStoppedEvent." +}, +"delayed": { +"$ref": "DelayedEvent", +"description": "See google.cloud.lifesciences.v2beta.DelayedEvent." +}, +"description": { +"description": "A human-readable description of the event. Note that these strings can change at any time without notice. Any application logic must use the information in the `details` field.", +"type": "string" +}, +"failed": { +"$ref": "FailedEvent", +"description": "See google.cloud.lifesciences.v2beta.FailedEvent." +}, +"pullStarted": { +"$ref": "PullStartedEvent", +"description": "See google.cloud.lifesciences.v2beta.PullStartedEvent." +}, +"pullStopped": { +"$ref": "PullStoppedEvent", +"description": "See google.cloud.lifesciences.v2beta.PullStoppedEvent." +}, +"timestamp": { +"description": "The time at which the event occurred.", +"format": "google-datetime", +"type": "string" +}, +"unexpectedExitStatus": { +"$ref": "UnexpectedExitStatusEvent", +"description": "See google.cloud.lifesciences.v2beta.UnexpectedExitStatusEvent." +}, +"workerAssigned": { +"$ref": "WorkerAssignedEvent", +"description": "See google.cloud.lifesciences.v2beta.WorkerAssignedEvent." +}, +"workerReleased": { +"$ref": "WorkerReleasedEvent", +"description": "See google.cloud.lifesciences.v2beta.WorkerReleasedEvent." +} +}, +"type": "object" +}, +"ExistingDisk": { +"description": "Configuration for an existing disk to be attached to the VM.", +"id": "ExistingDisk", +"properties": { +"disk": { +"description": "If `disk` contains slashes, the Cloud Life Sciences API assumes that it is a complete URL for the disk. If `disk` does not contain slashes, the Cloud Life Sciences API assumes that the disk is a zonal disk and a URL will be generated of the form `zones//disks/`, where `` is the zone in which the instance is allocated. The disk must be ext4 formatted. If all `Mount` references to this disk have the `read_only` flag set to true, the disk will be attached in `read-only` mode and can be shared with other instances. Otherwise, the disk will be available for writing but cannot be shared.", +"type": "string" +} +}, +"type": "object" +}, +"FailedEvent": { +"description": "An event generated when the execution of a pipeline has failed. Note that other events can continue to occur after this event.", +"id": "FailedEvent", +"properties": { +"cause": { +"description": "The human-readable description of the cause of the failure.", +"type": "string" +}, +"code": { +"description": "The Google standard error code that best describes this failure.", +"enum": [ +"OK", +"CANCELLED", +"UNKNOWN", +"INVALID_ARGUMENT", +"DEADLINE_EXCEEDED", +"NOT_FOUND", +"ALREADY_EXISTS", +"PERMISSION_DENIED", +"UNAUTHENTICATED", +"RESOURCE_EXHAUSTED", +"FAILED_PRECONDITION", +"ABORTED", +"OUT_OF_RANGE", +"UNIMPLEMENTED", +"INTERNAL", +"UNAVAILABLE", +"DATA_LOSS" +], +"enumDescriptions": [ +"Not an error; returned on success. HTTP Mapping: 200 OK", +"The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", +"Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", +"The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", +"The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", +"Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", +"The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", +"The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", +"The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", +"Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", +"The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", +"The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", +"The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", +"The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", +"Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", +"The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", +"Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" +], +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Metadata": { +"description": "Carries information about the pipeline execution that is returned in the long running operation's metadata field.", +"id": "Metadata", +"properties": { +"createTime": { +"description": "The time at which the operation was created by the API.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time at which execution was completed and resources were cleaned up.", +"format": "google-datetime", +"type": "string" +}, +"events": { +"description": "The list of events that have happened so far during the execution of this operation.", +"items": { +"$ref": "Event" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The user-defined labels associated with this operation.", +"type": "object" +}, +"pipeline": { +"$ref": "Pipeline", +"description": "The pipeline this operation represents." +}, +"pubSubTopic": { +"description": "The name of the Cloud Pub/Sub topic where notifications of operation status changes are sent.", +"type": "string" +}, +"startTime": { +"description": "The first time at which resources were allocated to execute the pipeline.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Mount": { +"description": "Carries information about a particular disk mount inside a container.", +"id": "Mount", +"properties": { +"disk": { +"description": "The name of the disk to mount, as specified in the resources section.", +"type": "string" +}, +"path": { +"description": "The path to mount the disk inside the container.", +"type": "string" +}, +"readOnly": { +"description": "If true, the disk is mounted read-only inside the container.", +"type": "boolean" +} +}, +"type": "object" +}, +"NFSMount": { +"description": "Configuration for an `NFSMount` to be attached to the VM.", +"id": "NFSMount", +"properties": { +"target": { +"description": "A target NFS mount. The target must be specified as `address:/mount\".", +"type": "string" +} +}, +"type": "object" +}, +"Network": { +"description": "VM networking options.", +"id": "Network", +"properties": { +"network": { +"description": "The network name to attach the VM's network interface to. The value will be prefixed with `global/networks/` unless it contains a `/`, in which case it is assumed to be a fully specified network resource URL. If unspecified, the global default network is used.", +"type": "string" +}, +"subnetwork": { +"description": "If the specified network is configured for custom subnet creation, the name of the subnetwork to attach the instance to must be specified here. The value is prefixed with `regions/*/subnetworks/` unless it contains a `/`, in which case it is assumed to be a fully specified subnetwork resource URL. If the `*` character appears in the value, it is replaced with the region that the virtual machine has been allocated in.", +"type": "string" +}, +"usePrivateAddress": { +"description": "If set to true, do not attach a public IP address to the VM. Note that without a public IP address, additional configuration is required to allow the VM to access Google services. See https://cloud.google.com/vpc/docs/configure-private-google-access for more information.", +"type": "boolean" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "An Metadata object. This will always be returned with the Operation.", +"type": "object" +}, +"name": { +"description": "The server-assigned name for the operation. This may be passed to the other operation methods to retrieve information about the operation's status.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "An Empty object.", +"type": "object" +} +}, +"type": "object" +}, +"PersistentDisk": { +"description": "Configuration for a persistent disk to be attached to the VM. See https://cloud.google.com/compute/docs/disks/performance for more information about disk type, size, and performance considerations.", +"id": "PersistentDisk", +"properties": { +"sizeGb": { +"description": "The size, in GB, of the disk to attach. If the size is not specified, a default is chosen to ensure reasonable I/O performance. If the disk type is specified as `local-ssd`, multiple local drives are automatically combined to provide the requested size. Note, however, that each physical SSD is 375GB in size, and no more than 8 drives can be attached to a single instance.", +"format": "int32", +"type": "integer" +}, +"sourceImage": { +"description": "An image to put on the disk before attaching it to the VM.", +"type": "string" +}, +"type": { +"description": "The Compute Engine disk type. If unspecified, `pd-standard` is used.", +"type": "string" +} +}, +"type": "object" +}, +"Pipeline": { +"description": "Specifies a series of actions to execute, expressed as Docker containers.", +"id": "Pipeline", +"properties": { +"actions": { +"description": "The list of actions to execute, in the order they are specified.", +"items": { +"$ref": "Action" +}, +"type": "array" +}, +"encryptedEnvironment": { +"$ref": "Secret", +"description": "The encrypted environment to pass into every action. Each action can also specify its own encrypted environment. The secret must decrypt to a JSON-encoded dictionary where key-value pairs serve as environment variable names and their values. The decoded environment variables can overwrite the values specified by the `environment` field." +}, +"environment": { +"additionalProperties": { +"type": "string" +}, +"description": "The environment to pass into every action. Each action can also specify additional environment variables but cannot delete an entry from this map (though they can overwrite it with a different value).", +"type": "object" +}, +"resources": { +"$ref": "Resources", +"description": "The resources required for execution." +}, +"timeout": { +"description": "The maximum amount of time to give the pipeline to complete. This includes the time spent waiting for a worker to be allocated. If the pipeline fails to complete before the timeout, it will be cancelled and the error code will be set to DEADLINE_EXCEEDED. If unspecified, it will default to 7 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"PullStartedEvent": { +"description": "An event generated when the worker starts pulling an image.", +"id": "PullStartedEvent", +"properties": { +"imageUri": { +"description": "The URI of the image that was pulled.", +"type": "string" +} +}, +"type": "object" +}, +"PullStoppedEvent": { +"description": "An event generated when the worker stops pulling an image.", +"id": "PullStoppedEvent", +"properties": { +"imageUri": { +"description": "The URI of the image that was pulled.", +"type": "string" +} +}, +"type": "object" +}, +"Resources": { +"description": "The system resources for the pipeline run. At least one zone or region must be specified or the pipeline run will fail.", +"id": "Resources", +"properties": { +"regions": { +"description": "The list of regions allowed for VM allocation. If set, the `zones` field must not be set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"virtualMachine": { +"$ref": "VirtualMachine", +"description": "The virtual machine specification." +}, +"zones": { +"description": "The list of zones allowed for VM allocation. If set, the `regions` field must not be set.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RunPipelineRequest": { +"description": "The arguments to the `RunPipeline` method. The requesting user must have the `iam.serviceAccounts.actAs` permission for the Cloud Life Sciences service account or the request will fail.", +"id": "RunPipelineRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels to associate with the returned operation. These labels are not propagated to any Google Cloud Platform resources used by the operation, and can be modified at any time. To associate labels with resources created while executing the operation, see the appropriate resource message (for example, `VirtualMachine`).", +"type": "object" +}, +"pipeline": { +"$ref": "Pipeline", +"description": "Required. The description of the pipeline to run." +}, +"pubSubTopic": { +"description": "The name of an existing Pub/Sub topic. The server will publish messages to this topic whenever the status of the operation changes. The Life Sciences Service Agent account must have publisher permissions to the specified topic or notifications will not be sent.", +"type": "string" +} +}, +"type": "object" +}, +"RunPipelineResponse": { +"description": "The response to the RunPipeline method, returned in the operation's result field on success.", +"id": "RunPipelineResponse", +"properties": {}, +"type": "object" +}, +"Secret": { +"description": "Holds encrypted information that is only decrypted and stored in RAM by the worker VM when running the pipeline.", +"id": "Secret", +"properties": { +"cipherText": { +"description": "The value of the cipherText response from the `encrypt` method. This field is intentionally unaudited.", +"type": "string" +}, +"keyName": { +"description": "The name of the Cloud KMS key that will be used to decrypt the secret value. The VM service account must have the required permissions and authentication scopes to invoke the `decrypt` method on the specified key.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceAccount": { +"description": "Carries information about a Google Cloud service account.", +"id": "ServiceAccount", +"properties": { +"email": { +"description": "Email address of the service account. If not specified, the default Compute Engine service account for the project will be used.", +"type": "string" +}, +"scopes": { +"description": "List of scopes to be enabled for this service account on the VM, in addition to the cloud-platform API scope that will be added by default.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"UnexpectedExitStatusEvent": { +"description": "An event generated when the execution of a container results in a non-zero exit status that was not otherwise ignored. Execution will continue, but only actions that are flagged as `ALWAYS_RUN` will be executed. Other actions will be skipped.", +"id": "UnexpectedExitStatusEvent", +"properties": { +"actionId": { +"description": "The numeric ID of the action that started the container.", +"format": "int32", +"type": "integer" +}, +"exitStatus": { +"description": "The exit status of the container.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"VirtualMachine": { +"description": "Carries information about a Compute Engine VM resource.", +"id": "VirtualMachine", +"properties": { +"accelerators": { +"description": "The list of accelerators to attach to the VM.", +"items": { +"$ref": "Accelerator" +}, +"type": "array" +}, +"bootDiskSizeGb": { +"description": "The size of the boot disk, in GB. The boot disk must be large enough to accommodate all of the Docker images from each action in the pipeline at the same time. If not specified, a small but reasonable default value is used.", +"format": "int32", +"type": "integer" +}, +"bootImage": { +"description": "The host operating system image to use. Currently, only Container-Optimized OS images can be used. The default value is `projects/cos-cloud/global/images/family/cos-stable`, which selects the latest stable release of Container-Optimized OS. This option is provided to allow testing against the beta release of the operating system to ensure that the new version does not interact negatively with production pipelines. To test a pipeline against the beta release of Container-Optimized OS, use the value `projects/cos-cloud/global/images/family/cos-beta`.", +"type": "string" +}, +"cpuPlatform": { +"description": "The CPU platform to request. An instance based on a newer platform can be allocated, but never one with fewer capabilities. The value of this parameter must be a valid Compute Engine CPU platform name (such as \"Intel Skylake\"). This parameter is only useful for carefully optimized work loads where the CPU platform has a significant impact. For more information about the effect of this parameter, see https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.", +"type": "string" +}, +"disks": { +"description": "The list of disks to create and attach to the VM. Specify either the `volumes[]` field or the `disks[]` field, but not both.", +"items": { +"$ref": "Disk" +}, +"type": "array" +}, +"dockerCacheImages": { +"description": "The Compute Engine Disk Images to use as a Docker cache. The disks will be mounted into the Docker folder in a way that the images present in the cache will not need to be pulled. The digests of the cached images must match those of the tags used or the latest version will still be pulled. The root directory of the ext4 image must contain `image` and `overlay2` directories copied from the Docker directory of a VM where the desired Docker images have already been pulled. Any images pulled that are not cached will be stored on the first cache disk instead of the boot disk. Only a single image is supported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"enableStackdriverMonitoring": { +"description": "Whether Stackdriver monitoring should be enabled on the VM.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional set of labels to apply to the VM and any attached disk resources. These labels must adhere to the [name and value restrictions](https://cloud.google.com/compute/docs/labeling-resources) on VM labels imposed by Compute Engine. Labels keys with the prefix 'google-' are reserved for use by Google. Labels applied at creation time to the VM. Applied on a best-effort basis to attached disk resources shortly after VM creation.", +"type": "object" +}, +"machineType": { +"description": "Required. The machine type of the virtual machine to create. Must be the short name of a standard machine type (such as \"n1-standard-1\") or a custom machine type (such as \"custom-1-4096\", where \"1\" indicates the number of vCPUs and \"4096\" indicates the memory in MB). See [Creating an instance with a custom machine type](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create) for more specifications on creating a custom machine type.", +"type": "string" +}, +"network": { +"$ref": "Network", +"description": "The VM network configuration." +}, +"nvidiaDriverVersion": { +"deprecated": true, +"description": "The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator. The version specified here must be compatible with the GPU libraries contained in the container being executed, and must be one of the drivers hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.", +"type": "string" +}, +"preemptible": { +"description": "If true, allocate a preemptible VM.", +"type": "boolean" +}, +"reservation": { +"description": "If specified, the VM will only be allocated inside the matching reservation. It will fail if the VM parameters don't match the reservation.", +"type": "string" +}, +"serviceAccount": { +"$ref": "ServiceAccount", +"description": "The service account to install on the VM. This account does not need any permissions other than those required by the pipeline." +}, +"volumes": { +"description": "The list of disks and other storage to create or attach to the VM. Specify either the `volumes[]` field or the `disks[]` field, but not both.", +"items": { +"$ref": "Volume" +}, +"type": "array" +} +}, +"type": "object" +}, +"Volume": { +"description": "Carries information about storage that can be attached to a VM. Specify either `Volume` or `Disk`, but not both.", +"id": "Volume", +"properties": { +"existingDisk": { +"$ref": "ExistingDisk", +"description": "Configuration for a existing disk." +}, +"nfsMount": { +"$ref": "NFSMount", +"description": "Configuration for an NFS mount." +}, +"persistentDisk": { +"$ref": "PersistentDisk", +"description": "Configuration for a persistent disk." +}, +"volume": { +"description": "A user-supplied name for the volume. Used when mounting the volume into `Actions`. The name must contain only upper and lowercase alphanumeric characters and hyphens and cannot start with a hyphen.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerAssignedEvent": { +"description": "An event generated after a worker VM has been assigned to run the pipeline.", +"id": "WorkerAssignedEvent", +"properties": { +"instance": { +"description": "The worker's instance name.", +"type": "string" +}, +"machineType": { +"description": "The machine type that was assigned for the worker.", +"type": "string" +}, +"zone": { +"description": "The zone the worker is running in.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerReleasedEvent": { +"description": "An event generated when the worker VM that was assigned to the pipeline has been released (deleted).", +"id": "WorkerReleasedEvent", +"properties": { +"instance": { +"description": "The worker's instance name.", +"type": "string" +}, +"zone": { +"description": "The zone the worker was running in.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Life Sciences API", +"version": "v2beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/memcache.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/memcache.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..1f563c150494a273773fba80cba6e16bf0f7022b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/memcache.v1.json @@ -0,0 +1,2247 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://memcache.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Memorystore for Memcached", +"description": "Google Cloud Memorystore for Memcached API is used for creating and managing Memcached instances in GCP.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/memorystore/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "memcache:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://memcache.mtls.googleapis.com/", +"name": "memcache", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "memcache.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "memcache.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"applyParameters": { +"description": "`ApplyParameters` restarts the set of specified nodes in order to update them to the current set of parameters for the Memcached Instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:applyParameters", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.applyParameters", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Memcached instance for which parameter group updates should be applied.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:applyParameters", +"request": { +"$ref": "ApplyParametersRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new Instance in a given location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The logical name of the Memcached instance in the user project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-40 characters. * Must end with a number or a letter. * Must be unique within the user project / location. If any of the above are not met, the API raises an invalid argument error.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "memcache.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Memcached instance resource name in the format: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "memcache.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Memcached instance resource name in the format: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Instances in a given location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "memcache.projects.locations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter. For example, exclude all Memcached instances with name as my-instance by specifying `\"name != my-instance\"`.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the `page_size` value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing Instance in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "memcache.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Memcached instances are managed and addressed at the regional level so `location_id` here refers to a Google Cloud region; however, users may choose which zones Memcached nodes should be provisioned in within an instance. Refer to zones field for more details.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. * `displayName`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rescheduleMaintenance": { +"description": "Reschedules upcoming maintenance event.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rescheduleMaintenance", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.rescheduleMaintenance", +"parameterOrder": [ +"instance" +], +"parameters": { +"instance": { +"description": "Required. Memcache instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+instance}:rescheduleMaintenance", +"request": { +"$ref": "RescheduleMaintenanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateParameters": { +"description": "Updates the defined Memcached parameters for an existing instance. This method only stages the parameters, it must be followed by `ApplyParameters` to apply the parameters to nodes of the Memcached instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:updateParameters", +"httpMethod": "PATCH", +"id": "memcache.projects.locations.instances.updateParameters", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Memcached instance for which the parameters should be updated.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:updateParameters", +"request": { +"$ref": "UpdateParametersRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrades the Memcache instance to a newer memcached engine version specified in the request.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Memcache instance resource name using the form: `projects/{project}/locations/{location}/instances/{instance}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:upgrade", +"request": { +"$ref": "GoogleCloudMemcacheV1UpgradeInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "memcache.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "memcache.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "memcache.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "memcache.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241010", +"rootUrl": "https://memcache.googleapis.com/", +"schemas": { +"ApplyParametersRequest": { +"description": "Request for ApplyParameters.", +"id": "ApplyParametersRequest", +"properties": { +"applyAll": { +"description": "Whether to apply instance-level parameter group to all nodes. If set to true, users are restricted from specifying individual nodes, and `ApplyParameters` updates all nodes within the instance.", +"type": "boolean" +}, +"nodeIds": { +"description": "Nodes to which the instance-level parameter group is applied.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AssetLocation": { +"description": "Provides the mapping of a cloud asset to a direct physical location or to a proxy that defines the location on its behalf.", +"id": "AssetLocation", +"properties": { +"ccfeRmsPath": { +"description": "Spanner path of the CCFE RMS database. It is only applicable for CCFE tenants that use CCFE RMS for storing resource metadata.", +"type": "string" +}, +"expected": { +"$ref": "IsolationExpectations", +"description": "Defines the customer expectation around ZI/ZS for this asset and ZI/ZS state of the region at the time of asset creation." +}, +"extraParameters": { +"description": "Defines extra parameters required for specific asset types.", +"items": { +"$ref": "ExtraParameter" +}, +"type": "array" +}, +"locationData": { +"description": "Contains all kinds of physical location definitions for this asset.", +"items": { +"$ref": "LocationData" +}, +"type": "array" +}, +"parentAsset": { +"description": "Defines parents assets if any in order to allow later generation of child_asset_location data via child assets.", +"items": { +"$ref": "CloudAsset" +}, +"type": "array" +} +}, +"type": "object" +}, +"BlobstoreLocation": { +"description": "Policy ID that identified data placement in Blobstore as per go/blobstore-user-guide#data-metadata-placement-and-failure-domains", +"id": "BlobstoreLocation", +"properties": { +"policyId": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloudAsset": { +"id": "CloudAsset", +"properties": { +"assetName": { +"type": "string" +}, +"assetType": { +"type": "string" +} +}, +"type": "object" +}, +"CloudAssetComposition": { +"id": "CloudAssetComposition", +"properties": { +"childAsset": { +"items": { +"$ref": "CloudAsset" +}, +"type": "array" +} +}, +"type": "object" +}, +"DailyCycle": { +"description": "Time window specified for daily operations.", +"id": "DailyCycle", +"properties": { +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the day to start the operations." +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DenyMaintenancePeriod": { +"description": "DenyMaintenancePeriod definition. Maintenance is forbidden within the deny period. The start_date must be less than the end_date.", +"id": "DenyMaintenancePeriod", +"properties": { +"endDate": { +"$ref": "Date", +"description": "Deny period end date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be before the end." +}, +"startDate": { +"$ref": "Date", +"description": "Deny period start date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be the same or after the start." +}, +"time": { +"$ref": "TimeOfDay", +"description": "Time in UTC when the Blackout period starts on start_date and ends on end_date. This can be: * Full time. * All zeros for 00:00:00 UTC" +} +}, +"type": "object" +}, +"DirectLocationAssignment": { +"id": "DirectLocationAssignment", +"properties": { +"location": { +"items": { +"$ref": "LocationAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ExtraParameter": { +"description": "Defines parameters that should only be used for specific asset types.", +"id": "ExtraParameter", +"properties": { +"regionalMigDistributionPolicy": { +"$ref": "RegionalMigDistributionPolicy", +"description": "Details about zones used by regional compute.googleapis.com/InstanceGroupManager to create instances." +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1LocationMetadata": { +"description": "Metadata for the given google.cloud.location.Location.", +"id": "GoogleCloudMemcacheV1LocationMetadata", +"properties": { +"availableZones": { +"additionalProperties": { +"$ref": "GoogleCloudMemcacheV1ZoneMetadata" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by GCE. These keys can be specified in the `zones` field when creating a Memcached instance.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1MaintenancePolicy": { +"description": "Maintenance policy per instance.", +"id": "GoogleCloudMemcacheV1MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the policy was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyMaintenanceWindow": { +"description": "Required. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_windows is expected to be one.", +"items": { +"$ref": "WeeklyMaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMemcacheV1OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time when the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1UpgradeInstanceRequest": { +"description": "Request for UpgradeInstance.", +"id": "GoogleCloudMemcacheV1UpgradeInstanceRequest", +"properties": { +"memcacheVersion": { +"description": "Required. Specifies the target version of memcached engine to upgrade to.", +"enum": [ +"MEMCACHE_VERSION_UNSPECIFIED", +"MEMCACHE_1_5", +"MEMCACHE_1_6_15" +], +"enumDescriptions": [ +"Memcache version is not specified by customer", +"Memcached 1.5 version.", +"Memcached 1.6.15 version." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1ZoneMetadata": { +"id": "GoogleCloudMemcacheV1ZoneMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1Instance": { +"description": "Instance represents the interface for SLM services to actuate the state of control plane resources. Example Instance in JSON, where consumer-project-number=123456, producer-project-id=cloud-sql: ```json Instance: { \"name\": \"projects/123456/locations/us-east1/instances/prod-instance\", \"create_time\": { \"seconds\": 1526406431, }, \"labels\": { \"env\": \"prod\", \"foo\": \"bar\" }, \"state\": READY, \"software_versions\": { \"software_update\": \"cloud-sql-09-28-2018\", }, \"maintenance_policy_names\": { \"UpdatePolicy\": \"projects/123456/locations/us-east1/maintenancePolicies/prod-update-policy\", } \"tenant_project_id\": \"cloud-sql-test-tenant\", \"producer_metadata\": { \"cloud-sql-tier\": \"basic\", \"cloud-sql-instance-size\": \"1G\", }, \"provisioned_resources\": [ { \"resource-type\": \"compute-instance\", \"resource-url\": \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\", } ], \"maintenance_schedules\": { \"csa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, }, \"ncsa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, } }, \"consumer_defined_name\": \"my-sql-instance1\", } ``` LINT.IfChange", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", +"properties": { +"consumerDefinedName": { +"description": "consumer_defined_name is the name of the instance set by the service consumers. Generally this is different from the `name` field which reperesents the system-assigned id of the instance which the service consumers do not recognize. This is a required field for tenants onboarding to Maintenance Window notifications (go/slm-rollout-maintenance-policies#prerequisites).", +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"instanceType": { +"description": "Optional. The instance_type of this instance of format: projects/{project_number}/locations/{location_id}/instanceTypes/{instance_type_id}. Instance Type represents a high-level tier or SKU of the service that this instance belong to. When enabled(eg: Maintenance Rollout), Rollout uses 'instance_type' along with 'software_versions' to determine whether instance needs an update or not.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"maintenancePolicyNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", +"type": "object" +}, +"maintenanceSchedules": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule" +}, +"description": "The MaintenanceSchedule contains the scheduling information of published maintenance schedule with same key as software_versions.", +"type": "object" +}, +"maintenanceSettings": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"description": "Optional. The MaintenanceSettings associated with instance." +}, +"name": { +"description": "Unique name of the resource. It uses the form: `projects/{project_number}/locations/{location_id}/instances/{instance_id}` Note: This name is passed, stored and logged across the rollout system. So use of consumer project_id or any other consumer PII in the name is strongly discouraged for wipeout (go/wipeout) compliance. See go/elysium/project_ids#storage-guidance for more details.", +"type": "string" +}, +"notificationParameters": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" +}, +"description": "Optional. notification_parameter are information that service producers may like to include that is not relevant to Rollout. This parameter will only be passed to Gamma and Cloud Logging for notification/logging purpose.", +"type": "object" +}, +"producerMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Custom string attributes used primarily to expose producer-specific information in monitoring dashboards. See go/get-instance-metadata.", +"readOnly": true, +"type": "object" +}, +"provisionedResources": { +"description": "Output only. The list of data plane resources provisioned for this instance, e.g. compute VMs. See go/get-instance-metadata.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource" +}, +"readOnly": true, +"type": "array" +}, +"slmInstanceTemplate": { +"description": "Link to the SLM instance template. Only populated when updating SLM instances via SSA's Actuation service adaptor. Service producers with custom control plane (e.g. Cloud SQL) doesn't need to populate this field. Instead they should use software_versions.", +"type": "string" +}, +"sloMetadata": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"description": "Output only. SLO metadata for instance classification in the Standardized dataplane SLO platform. See go/cloud-ssa-standard-slo for feature description.", +"readOnly": true +}, +"softwareVersions": { +"additionalProperties": { +"type": "string" +}, +"description": "Software versions that are used to deploy this instance. This can be mutated by rollout services.", +"type": "object" +}, +"state": { +"description": "Output only. Current lifecycle state of the resource (e.g. if it's being created or ready to use).", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"REPAIRING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state.", +"Instance is being created.", +"Instance has been created and is ready to use.", +"Instance is being updated.", +"Instance is unheathy and under repair.", +"Instance is being deleted.", +"Instance encountered an error and is in indeterministic state." +], +"readOnly": true, +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. ID of the associated GCP tenant project. See go/get-instance-metadata.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule": { +"description": "Maintenance schedule which is exposed to customer and potentially end user, indicating published upcoming future maintenance schedule", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", +"properties": { +"canReschedule": { +"deprecated": true, +"description": "This field is deprecated, and will be always set to true since reschedule can happen multiple times now. This field should not be removed until all service producers remove this for their customers.", +"type": "boolean" +}, +"endTime": { +"description": "The scheduled end time for the maintenance.", +"format": "google-datetime", +"type": "string" +}, +"rolloutManagementPolicy": { +"description": "The rollout management policy this maintenance schedule is associated with. When doing reschedule update request, the reschedule should be against this given policy.", +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "schedule_deadline_time is the time deadline any schedule start time cannot go beyond, including reschedule. It's normally the initial schedule start time plus maintenance window length (1 day or 1 week). Maintenance cannot be scheduled to start beyond this deadline.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The scheduled start time for the maintenance.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings": { +"description": "Maintenance settings associated with instance. Allows service producers and end users to assign settings that controls maintenance on this instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"properties": { +"exclude": { +"description": "Optional. Exclude instance from maintenance. When true, rollout service will not attempt maintenance on the instance. Rollout service will include the instance in reported rollout progress as not attempted.", +"type": "boolean" +}, +"isRollback": { +"description": "Optional. If the update call is triggered from rollback, set the value as true.", +"type": "boolean" +}, +"maintenancePolicies": { +"additionalProperties": { +"$ref": "MaintenancePolicy" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata": { +"description": "Node information for custom per-node SLO implementations. SSA does not support per-node SLO, but producers can populate per-node information in SloMetadata for custom precomputations. SSA Eligibility Exporter will emit per-node metric based on this information.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata", +"properties": { +"location": { +"description": "The location of the node, if different from instance location.", +"type": "string" +}, +"nodeId": { +"description": "The id of the node. This should be equal to SaasInstanceNode.node_id.", +"type": "string" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "If present, this will override eligibility for the node coming from instance or exclusions for specified SLIs." +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { +"description": "Contains notification related data.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", +"properties": { +"values": { +"description": "Optional. Array of string values. e.g. instance's replica information.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { +"description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"properties": { +"eligibilities": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility" +}, +"description": "An entry in the eligibilities map specifies an eligibility for a particular SLI for the given instance. The SLI key in the name must be a valid SLI name specified in the Eligibility Exporter binary flags otherwise an error will be emitted by Eligibility Exporter and the oncaller will be alerted. If an SLI has been defined in the binary flags but the eligibilities map does not contain it, the corresponding SLI time series will not be emitted by the Eligibility Exporter. This ensures a smooth rollout and compatibility between the data produced by different versions of the Eligibility Exporters. If eligibilities map contains a key for an SLI which has not been declared in the binary flags, there will be an error message emitted in the Eligibility Exporter log and the metric for the SLI in question will not be emitted.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource": { +"description": "Describes provisioned dataplane resources.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource", +"properties": { +"resourceType": { +"description": "Type of the resource. This can be either a GCP resource or a custom one (e.g. another cloud provider's VM). For GCP compute resources use singular form of the names listed in GCP compute API documentation (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with 'compute-', for example: 'compute-instance', 'compute-disk', 'compute-autoscaler'.", +"type": "string" +}, +"resourceUrl": { +"description": "URL identifying the resource, e.g. \"https://www.googleapis.com/compute/v1/projects/...)\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility": { +"description": "SloEligibility is a tuple containing eligibility value: true if an instance is eligible for SLO calculation or false if it should be excluded from all SLO-related calculations along with a user-defined reason.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility", +"properties": { +"eligible": { +"description": "Whether an instance is eligible or ineligible.", +"type": "boolean" +}, +"reason": { +"description": "User-defined reason for the current value of instance eligibility. Usually, this can be directly mapped to the internal state. An empty reason is allowed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata": { +"description": "SloMetadata contains resources required for proper SLO classification of the instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"properties": { +"nodes": { +"description": "Optional. List of nodes. Some producers need to use per-node metadata to calculate SLO. This field allows such producers to publish per-node SLO meta data, which will be consumed by SSA Eligibility Exporter and published in the form of per node metric to Monarch.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata" +}, +"type": "array" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "Optional. Multiple per-instance SLI eligibilities which apply for individual SLIs." +}, +"tier": { +"description": "Name of the SLO tier the Instance belongs to. This name will be expected to match the tiers specified in the service SLO configuration. Field is mandatory and must not be empty.", +"type": "string" +} +}, +"type": "object" +}, +"Instance": { +"description": "A Memorystore for Memcached instance", +"id": "Instance", +"properties": { +"authorizedNetwork": { +"description": "The full name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. If left unspecified, the `default` network will be used.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"discoveryEndpoint": { +"description": "Output only. Endpoint for the Discovery API.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "User provided name for the instance, which is only used for display purposes. Cannot be more than 80 characters.", +"type": "string" +}, +"instanceMessages": { +"description": "List of messages that describe the current state of the Memcached instance.", +"items": { +"$ref": "InstanceMessage" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources", +"type": "object" +}, +"maintenancePolicy": { +"$ref": "GoogleCloudMemcacheV1MaintenancePolicy", +"description": "The maintenance policy for the instance. If not provided, the maintenance event will be performed based on Memorystore internal rollout schedule." +}, +"maintenanceSchedule": { +"$ref": "MaintenanceSchedule", +"description": "Output only. Published maintenance schedule.", +"readOnly": true +}, +"memcacheFullVersion": { +"description": "Output only. The full version of memcached server running on this instance. System automatically determines the full memcached version for an instance based on the input MemcacheVersion. The full version format will be \"memcached-1.5.16\".", +"readOnly": true, +"type": "string" +}, +"memcacheNodes": { +"description": "Output only. List of Memcached nodes. Refer to Node message for more details.", +"items": { +"$ref": "Node" +}, +"readOnly": true, +"type": "array" +}, +"memcacheVersion": { +"description": "The major version of Memcached software. If not provided, latest supported version will be used. Currently the latest supported major version is `MEMCACHE_1_5`. The minor version will be automatically determined by our system based on the latest supported minor version.", +"enum": [ +"MEMCACHE_VERSION_UNSPECIFIED", +"MEMCACHE_1_5", +"MEMCACHE_1_6_15" +], +"enumDescriptions": [ +"Memcache version is not specified by customer", +"Memcached 1.5 version.", +"Memcached 1.6.15 version." +], +"type": "string" +}, +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Memcached instances are managed and addressed at the regional level so `location_id` here refers to a Google Cloud region; however, users may choose which zones Memcached nodes should be provisioned in within an instance. Refer to zones field for more details.", +"type": "string" +}, +"nodeConfig": { +"$ref": "NodeConfig", +"description": "Required. Configuration for Memcached nodes." +}, +"nodeCount": { +"description": "Required. Number of nodes in the Memcached instance.", +"format": "int32", +"type": "integer" +}, +"parameters": { +"$ref": "MemcacheParameters", +"description": "User defined parameters to apply to the memcached process on each node." +}, +"reservedIpRangeId": { +"description": "Optional. Contains the id of allocated IP address ranges associated with the private service access connection for example, \"test-default\" associated with IP range 10.0.0.0/29.", +"items": { +"type": "string" +}, +"type": "array" +}, +"satisfiesPzi": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of this Memcached instance.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"PERFORMING_MAINTENANCE", +"MEMCACHE_VERSION_UPGRADING" +], +"enumDescriptions": [ +"State not set.", +"Memcached instance is being created.", +"Memcached instance has been created and ready to be used.", +"Memcached instance is updating configuration such as maintenance policy and schedule.", +"Memcached instance is being deleted.", +"Memcached instance is going through maintenance, e.g. data plane rollout.", +"Memcached instance is undergoing memcached engine version upgrade." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the instance was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"zones": { +"description": "Zones in which Memcached nodes should be provisioned. Memcached nodes will be equally distributed across these zones. If not provided, the service will by default create nodes in all zones in the region for the instance.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InstanceMessage": { +"id": "InstanceMessage", +"properties": { +"code": { +"description": "A code that correspond to one type of user-facing message.", +"enum": [ +"CODE_UNSPECIFIED", +"ZONE_DISTRIBUTION_UNBALANCED" +], +"enumDescriptions": [ +"Message Code not set.", +"Memcached nodes are distributed unevenly." +], +"type": "string" +}, +"message": { +"description": "Message on memcached instance which will be exposed to users.", +"type": "string" +} +}, +"type": "object" +}, +"IsolationExpectations": { +"id": "IsolationExpectations", +"properties": { +"requirementOverride": { +"$ref": "RequirementOverride", +"description": "Explicit overrides for ZI and ZS requirements to be used for resources that should be excluded from ZI/ZS verification logic." +}, +"ziOrgPolicy": { +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"ziRegionPolicy": { +"enum": [ +"ZI_REGION_POLICY_UNSPECIFIED", +"ZI_REGION_POLICY_UNKNOWN", +"ZI_REGION_POLICY_NOT_SET", +"ZI_REGION_POLICY_FAIL_OPEN", +"ZI_REGION_POLICY_FAIL_CLOSED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"ziRegionState": { +"enum": [ +"ZI_REGION_UNSPECIFIED", +"ZI_REGION_UNKNOWN", +"ZI_REGION_NOT_ENABLED", +"ZI_REGION_ENABLED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zoneIsolation": { +"deprecated": true, +"description": "Deprecated: use zi_org_policy, zi_region_policy and zi_region_state instead for setting ZI expectations as per go/zicy-publish-physical-location.", +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"zoneSeparation": { +"deprecated": true, +"description": "Deprecated: use zs_org_policy, and zs_region_stateinstead for setting Zs expectations as per go/zicy-publish-physical-location.", +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zsOrgPolicy": { +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zsRegionState": { +"enum": [ +"ZS_REGION_UNSPECIFIED", +"ZS_REGION_UNKNOWN", +"ZS_REGION_NOT_ENABLED", +"ZS_REGION_ENABLED" +], +"enumDescriptions": [ +"", +"To be used if tracking of the asset ZS-bit is not available", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Response for ListInstances.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "A list of Memcached instances in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated.", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"LocationAssignment": { +"id": "LocationAssignment", +"properties": { +"location": { +"type": "string" +}, +"locationType": { +"enum": [ +"UNSPECIFIED", +"CLUSTER", +"POP", +"CLOUD_ZONE", +"CLOUD_REGION", +"MULTI_REGION_GEO", +"MULTI_REGION_JURISDICTION", +"GLOBAL", +"OTHER" +], +"enumDescriptions": [ +"", +"1-10: Physical failure domains.", +"", +"11-20: Logical failure domains.", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"LocationData": { +"id": "LocationData", +"properties": { +"blobstoreLocation": { +"$ref": "BlobstoreLocation" +}, +"childAssetLocation": { +"$ref": "CloudAssetComposition" +}, +"directLocation": { +"$ref": "DirectLocationAssignment" +}, +"gcpProjectProxy": { +"$ref": "TenantProjectProxy" +}, +"placerLocation": { +"$ref": "PlacerLocation" +}, +"spannerLocation": { +"$ref": "SpannerLocation" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "Metadata for the given google.cloud.location.Location.", +"id": "LocationMetadata", +"properties": { +"availableZones": { +"additionalProperties": { +"$ref": "ZoneMetadata" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by GCE. These keys can be specified in the `zones` field when creating a Memcached instance.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "Defines policies to service maintenance events.", +"id": "MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the resource was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"name": { +"description": "Required. MaintenancePolicy name using the form: `projects/{project_id}/locations/{location_id}/maintenancePolicies/{maintenance_policy_id}` where {project_id} refers to a GCP consumer project ID, {location_id} refers to a GCP region/zone, {maintenance_policy_id} must be 1-63 characters long and match the regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.", +"type": "string" +}, +"state": { +"description": "Optional. The state of the policy.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"DELETING" +], +"enumDescriptions": [ +"Unspecified state.", +"Resource is ready to be used.", +"Resource is being deleted. It can no longer be attached to instances." +], +"type": "string" +}, +"updatePolicy": { +"$ref": "UpdatePolicy", +"description": "Maintenance policy applicable to instance update." +}, +"updateTime": { +"description": "Output only. The time when the resource was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceSchedule": { +"description": "Upcoming maintenance schedule.", +"id": "MaintenanceSchedule", +"properties": { +"endTime": { +"description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow definition.", +"id": "MaintenanceWindow", +"properties": { +"dailyCycle": { +"$ref": "DailyCycle", +"description": "Daily cycle." +}, +"weeklyCycle": { +"$ref": "WeeklyCycle", +"description": "Weekly cycle." +} +}, +"type": "object" +}, +"MemcacheParameters": { +"id": "MemcacheParameters", +"properties": { +"id": { +"description": "Output only. The unique ID associated with this set of parameters. Users can use this id to determine if the parameters associated with the instance differ from the parameters associated with the nodes. A discrepancy between parameter ids can inform users that they may need to take action to apply parameters on nodes.", +"readOnly": true, +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "string" +}, +"description": "User defined set of parameters to use in the memcached process.", +"type": "object" +} +}, +"type": "object" +}, +"Node": { +"id": "Node", +"properties": { +"host": { +"description": "Output only. Hostname or IP address of the Memcached node used by the clients to connect to the Memcached server on this node.", +"readOnly": true, +"type": "string" +}, +"memcacheFullVersion": { +"description": "Output only. The full version of memcached server running on this node. e.g. - memcached-1.5.16", +"readOnly": true, +"type": "string" +}, +"memcacheVersion": { +"description": "Output only. Major version of memcached server running on this node, e.g. MEMCACHE_1_5", +"enum": [ +"MEMCACHE_VERSION_UNSPECIFIED", +"MEMCACHE_1_5", +"MEMCACHE_1_6_15" +], +"enumDescriptions": [ +"Memcache version is not specified by customer", +"Memcached 1.5 version.", +"Memcached 1.6.15 version." +], +"readOnly": true, +"type": "string" +}, +"nodeId": { +"description": "Output only. Identifier of the Memcached node. The node id does not include project or location like the Memcached instance name.", +"readOnly": true, +"type": "string" +}, +"parameters": { +"$ref": "MemcacheParameters", +"description": "User defined parameters currently applied to the node." +}, +"port": { +"description": "Output only. The port number of the Memcached server on this node.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"state": { +"description": "Output only. Current state of the Memcached node.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Node state is not set.", +"Node is being created.", +"Node has been created and ready to be used.", +"Node is being deleted.", +"Node is being updated." +], +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Output only. Location (GCP Zone) for the Memcached node.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NodeConfig": { +"description": "Configuration for a Memcached Node.", +"id": "NodeConfig", +"properties": { +"cpuCount": { +"description": "Required. Number of cpus per Memcached node.", +"format": "int32", +"type": "integer" +}, +"memorySizeMb": { +"description": "Required. Memory size in MiB for each Memcached node.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time when the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PlacerLocation": { +"description": "Message describing that the location of the customer resource is tied to placer allocations", +"id": "PlacerLocation", +"properties": { +"placerConfig": { +"description": "Directory with a config related to it in placer (e.g. \"/placer/prod/home/my-root/my-dir\")", +"type": "string" +} +}, +"type": "object" +}, +"RegionalMigDistributionPolicy": { +"description": "To be used for specifying the intended distribution of regional compute.googleapis.com/InstanceGroupManager instances", +"id": "RegionalMigDistributionPolicy", +"properties": { +"targetShape": { +"description": "The shape in which the group converges around distribution of resources. Instance of proto2 enum", +"format": "int32", +"type": "integer" +}, +"zones": { +"description": "Cloud zones used by regional MIG to create instances.", +"items": { +"$ref": "ZoneConfiguration" +}, +"type": "array" +} +}, +"type": "object" +}, +"RequirementOverride": { +"id": "RequirementOverride", +"properties": { +"ziOverride": { +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"zsOverride": { +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"RescheduleMaintenanceRequest": { +"description": "Request for RescheduleMaintenance.", +"id": "RescheduleMaintenanceRequest", +"properties": { +"rescheduleType": { +"description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", +"enum": [ +"RESCHEDULE_TYPE_UNSPECIFIED", +"IMMEDIATE", +"NEXT_AVAILABLE_WINDOW", +"SPECIFIC_TIME" +], +"enumDescriptions": [ +"Not set.", +"If the user wants to schedule the maintenance to happen now.", +"If the user wants to use the existing maintenance policy to find the next available window.", +"If the user wants to reschedule the maintenance to a specific time." +], +"type": "string" +}, +"scheduleTime": { +"description": "Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Schedule": { +"description": "Configure the schedule.", +"id": "Schedule", +"properties": { +"day": { +"description": "Allows to define schedule that runs specified day of the week.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the window to start the operations." +} +}, +"type": "object" +}, +"SpannerLocation": { +"id": "SpannerLocation", +"properties": { +"backupName": { +"description": "Set of backups used by the resource with name in the same format as what is available at http://table/spanner_automon.backup_metadata", +"items": { +"type": "string" +}, +"type": "array" +}, +"dbName": { +"description": "Set of databases used by the resource in format /span//", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TenantProjectProxy": { +"id": "TenantProjectProxy", +"properties": { +"projectNumbers": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpdateParametersRequest": { +"description": "Request for UpdateParameters.", +"id": "UpdateParametersRequest", +"properties": { +"parameters": { +"$ref": "MemcacheParameters", +"description": "The parameters to apply to the instance." +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdatePolicy": { +"description": "Maintenance policy applicable to instance updates.", +"id": "UpdatePolicy", +"properties": { +"channel": { +"description": "Optional. Relative scheduling channel applied to resource.", +"enum": [ +"UPDATE_CHANNEL_UNSPECIFIED", +"EARLIER", +"LATER", +"WEEK1", +"WEEK2", +"WEEK5" +], +"enumDescriptions": [ +"Unspecified channel.", +"Early channel within a customer project.", +"Later channel within a customer project.", +"! ! The follow channels can ONLY be used if you adopt the new MW system! ! ! NOTE: all WEEK channels are assumed to be under a weekly window. ! There is currently no dedicated channel definitions for Daily windows. ! If you use Daily window, the system will assume a 1d (24Hours) advanced ! notification period b/w EARLY and LATER. ! We may consider support more flexible daily channel specifications in ! the future. WEEK1 == EARLIER with minimum 7d advanced notification. {7d, 14d} The system will treat them equally and will use WEEK1 whenever it can. New customers are encouraged to use this channel annotation.", +"WEEK2 == LATER with minimum 14d advanced notification {14d, 21d}.", +"WEEK5 == 40d support. minimum 35d advanced notification {35d, 42d}." +], +"type": "string" +}, +"denyMaintenancePeriods": { +"description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", +"items": { +"$ref": "DenyMaintenancePeriod" +}, +"type": "array" +}, +"window": { +"$ref": "MaintenanceWindow", +"description": "Optional. Maintenance window that is applied to resources covered by this policy." +} +}, +"type": "object" +}, +"WeeklyCycle": { +"description": "Time window specified for weekly operations.", +"id": "WeeklyCycle", +"properties": { +"schedule": { +"description": "User can specify multiple windows in a week. Minimum of 1 window.", +"items": { +"$ref": "Schedule" +}, +"type": "array" +} +}, +"type": "object" +}, +"WeeklyMaintenanceWindow": { +"description": "Time window specified for weekly operations.", +"id": "WeeklyMaintenanceWindow", +"properties": { +"day": { +"description": "Required. Allows to define schedule that runs specified day of the week.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"duration": { +"description": "Required. Duration of the time window.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. Start time of the window in UTC." +} +}, +"type": "object" +}, +"ZoneConfiguration": { +"id": "ZoneConfiguration", +"properties": { +"zone": { +"type": "string" +} +}, +"type": "object" +}, +"ZoneMetadata": { +"id": "ZoneMetadata", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Memorystore for Memcached API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.conversions_v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.conversions_v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..10d9b5c57f26951ed83e9c4c2ca6bf9fdc756bb9 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.conversions_v1beta.json @@ -0,0 +1,642 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/content": { +"description": "Manage your product listings and accounts for Google Shopping" +} +} +} +}, +"basePath": "", +"baseUrl": "https://merchantapi.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Merchant", +"description": "Programmatically manage your Merchant Center Accounts.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.devsite.corp.google.com/merchant/api", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "merchantapi:conversions_v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://merchantapi.mtls.googleapis.com/", +"name": "merchantapi", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"conversionSources": { +"methods": { +"create": { +"description": "Creates a new conversion source.", +"flatPath": "conversions/v1beta/accounts/{accountsId}/conversionSources", +"httpMethod": "POST", +"id": "merchantapi.accounts.conversionSources.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The merchant account that will own the new conversion source. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "conversions/v1beta/{+parent}/conversionSources", +"request": { +"$ref": "ConversionSource" +}, +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Archives an existing conversion source. If the conversion source is a Merchant Center Destination, it will be recoverable for 30 days. If the conversion source is a Google Analytics Link, it will be deleted immediately and can be restored by creating a new one.", +"flatPath": "conversions/v1beta/accounts/{accountsId}/conversionSources/{conversionSourcesId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.conversionSources.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversion source to be deleted. Format: accounts/{account}/conversionSources/{conversion_source}", +"location": "path", +"pattern": "^accounts/[^/]+/conversionSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "conversions/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Fetches a conversion source.", +"flatPath": "conversions/v1beta/accounts/{accountsId}/conversionSources/{conversionSourcesId}", +"httpMethod": "GET", +"id": "merchantapi.accounts.conversionSources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversion source to be fetched. Format: accounts/{account}/conversionSources/{conversion_source}", +"location": "path", +"pattern": "^accounts/[^/]+/conversionSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "conversions/v1beta/{+name}", +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Retrieves the list of conversion sources the caller has access to.", +"flatPath": "conversions/v1beta/accounts/{accountsId}/conversionSources", +"httpMethod": "GET", +"id": "merchantapi.accounts.conversionSources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of conversion sources to return in a page. If no `page_size` is specified, `100` is used as the default value. The maximum value is `200`. Values above `200` will be coerced to `200`. Regardless of pagination, at most `200` conversion sources are returned in total.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The merchant account who owns the collection of conversion sources. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Optional. Show deleted (archived) option.", +"location": "query", +"type": "boolean" +} +}, +"path": "conversions/v1beta/{+parent}/conversionSources", +"response": { +"$ref": "ListConversionSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates information of an existing conversion source. Available only for Merchant Center Destination conversion sources.", +"flatPath": "conversions/v1beta/accounts/{accountsId}/conversionSources/{conversionSourcesId}", +"httpMethod": "PATCH", +"id": "merchantapi.accounts.conversionSources.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. Generated by the Content API upon creation of a new `ConversionSource`. Format: [a-z]{4}:.+ The four characters before the colon represent the type of conversio source. Content after the colon represents the ID of the conversion source within that type. The ID of two different conversion sources might be the same across different types. The following type prefixes are supported: - galk: For GoogleAnalyticsLink sources. - mcdn: For MerchantCenterDestination sources.", +"location": "path", +"pattern": "^accounts/[^/]+/conversionSources/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. List of fields being updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "conversions/v1beta/{+name}", +"request": { +"$ref": "ConversionSource" +}, +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"undelete": { +"description": "Re-enables an archived conversion source. Only Available for Merchant Center Destination conversion sources.", +"flatPath": "conversions/v1beta/accounts/{accountsId}/conversionSources/{conversionSourcesId}:undelete", +"httpMethod": "POST", +"id": "merchantapi.accounts.conversionSources.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the conversion source to be undeleted. Format: accounts/{account}/conversionSources/{conversion_source}", +"location": "path", +"pattern": "^accounts/[^/]+/conversionSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "conversions/v1beta/{+name}:undelete", +"request": { +"$ref": "UndeleteConversionSourceRequest" +}, +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +} +}, +"revision": "20241119", +"rootUrl": "https://merchantapi.googleapis.com/", +"schemas": { +"AttributionSettings": { +"description": "Represents attribution settings for conversion sources receiving pre-attribution data.", +"id": "AttributionSettings", +"properties": { +"attributionLookbackWindowDays": { +"description": "Required. Lookback windows (in days) used for attribution in this source. Supported values are 7, 30, 40.", +"format": "int32", +"type": "integer" +}, +"attributionModel": { +"description": "Required. Attribution model.", +"enum": [ +"ATTRIBUTION_MODEL_UNSPECIFIED", +"CROSS_CHANNEL_LAST_CLICK", +"ADS_PREFERRED_LAST_CLICK", +"CROSS_CHANNEL_DATA_DRIVEN", +"CROSS_CHANNEL_FIRST_CLICK", +"CROSS_CHANNEL_LINEAR", +"CROSS_CHANNEL_POSITION_BASED", +"CROSS_CHANNEL_TIME_DECAY" +], +"enumDescriptions": [ +"Unspecified model.", +"Cross-channel Last Click model.", +"Ads-preferred Last Click model.", +"Cross-channel Data Driven model.", +"Cross-channel First Click model.", +"Cross-channel Linear model.", +"Cross-channel Position Based model.", +"Cross-channel Time Decay model." +], +"type": "string" +}, +"conversionType": { +"description": "Immutable. Unordered list. List of different conversion types a conversion event can be classified as. A standard \"purchase\" type will be automatically created if this list is empty at creation time.", +"items": { +"$ref": "ConversionType" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConversionSource": { +"description": "Represents a conversion source owned by a Merchant account. A merchant account can have up to 200 conversion sources.", +"id": "ConversionSource", +"properties": { +"controller": { +"description": "Output only. Controller of the conversion source.", +"enum": [ +"CONTROLLER_UNSPECIFIED", +"MERCHANT", +"YOUTUBE_AFFILIATES" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Controlled by the Merchant who owns the Conversion Source.", +"Controlled by the YT Affiliates program." +], +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time when an archived conversion source becomes permanently deleted and is no longer available to undelete.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"googleAnalyticsLink": { +"$ref": "GoogleAnalyticsLink", +"description": "Immutable. Conversion Source of type \"Link to Google Analytics Property\"." +}, +"merchantCenterDestination": { +"$ref": "MerchantCenterDestination", +"description": "Conversion Source of type \"Merchant Center Tag Destination\"." +}, +"name": { +"description": "Output only. Identifier. Generated by the Content API upon creation of a new `ConversionSource`. Format: [a-z]{4}:.+ The four characters before the colon represent the type of conversio source. Content after the colon represents the ID of the conversion source within that type. The ID of two different conversion sources might be the same across different types. The following type prefixes are supported: - galk: For GoogleAnalyticsLink sources. - mcdn: For MerchantCenterDestination sources.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of this conversion source. Can't be edited through the API.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"ARCHIVED", +"PENDING" +], +"enumDescriptions": [ +"Conversion source has unspecified state.", +"Conversion source is fully functional.", +"Conversion source has been archived in the last 30 days and not currently functional. Can be restored using the undelete method.", +"Conversion source creation has started but not fully finished yet." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConversionType": { +"description": "Message representing a types of conversion events", +"id": "ConversionType", +"properties": { +"name": { +"description": "Output only. Conversion event name, as it'll be reported by the client.", +"readOnly": true, +"type": "string" +}, +"report": { +"description": "Output only. Option indicating if the type should be included in Merchant Center reporting.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GoogleAnalyticsLink": { +"description": "\"Google Analytics Link\" sources can be used to get conversion data from an existing Google Analytics property into the linked Merchant Center account.", +"id": "GoogleAnalyticsLink", +"properties": { +"attributionSettings": { +"$ref": "AttributionSettings", +"description": "Output only. Attribution settings for the linked Google Analytics property.", +"readOnly": true +}, +"property": { +"description": "Output only. Name of the Google Analytics property the merchant is linked to.", +"readOnly": true, +"type": "string" +}, +"propertyId": { +"description": "Required. Immutable. ID of the Google Analytics property the merchant is linked to.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ListConversionSourcesResponse": { +"description": "Response message for the ListConversionSources method.", +"id": "ListConversionSourcesResponse", +"properties": { +"conversionSources": { +"description": "List of conversion sources.", +"items": { +"$ref": "ConversionSource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to be used to fetch the next results page.", +"type": "string" +} +}, +"type": "object" +}, +"MerchantCenterDestination": { +"description": "\"Merchant Center Destination\" sources can be used to send conversion events from an online store using a Google tag directly to a Merchant Center account where the source is created.", +"id": "MerchantCenterDestination", +"properties": { +"attributionSettings": { +"$ref": "AttributionSettings", +"description": "Required. Attribution settings being used for the Merchant Center Destination." +}, +"currencyCode": { +"description": "Required. Three-letter currency code (ISO 4217). The currency code defines in which currency the conversions sent to this destination will be reported in Merchant Center.", +"type": "string" +}, +"destination": { +"description": "Output only. Merchant Center Destination ID.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Merchant-specified display name for the destination. This is the name that identifies the conversion source within the Merchant Center UI. Limited to 64 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ProductChange": { +"description": "The change that happened to the product including old value, new value, country code as the region code and reporting context.", +"id": "ProductChange", +"properties": { +"newValue": { +"description": "The new value of the changed resource or attribute.", +"type": "string" +}, +"oldValue": { +"description": "The old value of the changed resource or attribute.", +"type": "string" +}, +"regionCode": { +"description": "Countries that have the change (if applicable)", +"type": "string" +}, +"reportingContext": { +"description": "Reporting contexts that have the change (if applicable)", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"type": "string" +} +}, +"type": "object" +}, +"ProductStatusChangeMessage": { +"description": "The message that the merchant will receive to notify about product status change event", +"id": "ProductStatusChangeMessage", +"properties": { +"account": { +"description": "The target account that owns the entity that changed. Format : `accounts/{merchant_id}`", +"type": "string" +}, +"attribute": { +"description": "The attribute in the resource that changed, in this case it will be always `Status`.", +"enum": [ +"ATTRIBUTE_UNSPECIFIED", +"STATUS" +], +"enumDescriptions": [ +"Unspecified attribute", +"Status of the changed entity" +], +"type": "string" +}, +"changes": { +"description": "A message to describe the change that happened to the product", +"items": { +"$ref": "ProductChange" +}, +"type": "array" +}, +"expirationTime": { +"description": "The product expiration time. This field will not bet set if the notification is sent for a product deletion event.", +"format": "google-datetime", +"type": "string" +}, +"managingAccount": { +"description": "The account that manages the merchant's account. can be the same as merchant id if it is standalone account. Format : `accounts/{service_provider_id}`", +"type": "string" +}, +"resource": { +"description": "The product name. Format: `{product.name=accounts/{account}/products/{product}}`", +"type": "string" +}, +"resourceId": { +"description": "The product id.", +"type": "string" +}, +"resourceType": { +"description": "The resource that changed, in this case it will always be `Product`.", +"enum": [ +"RESOURCE_UNSPECIFIED", +"PRODUCT" +], +"enumDescriptions": [ +"Unspecified resource", +"Resource type : product" +], +"type": "string" +} +}, +"type": "object" +}, +"UndeleteConversionSourceRequest": { +"description": "Request message for the UndeleteConversionSource method.", +"id": "UndeleteConversionSourceRequest", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Merchant API", +"version": "conversions_v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.inventories_v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.inventories_v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..c9d96637fe993e6c24a8b6210be1480c2b047597 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.inventories_v1beta.json @@ -0,0 +1,657 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/content": { +"description": "Manage your product listings and accounts for Google Shopping" +} +} +} +}, +"basePath": "", +"baseUrl": "https://merchantapi.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Merchant", +"description": "Programmatically manage your Merchant Center Accounts.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.devsite.corp.google.com/merchant/api", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "merchantapi:inventories_v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://merchantapi.mtls.googleapis.com/", +"name": "merchantapi", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"products": { +"resources": { +"localInventories": { +"methods": { +"delete": { +"description": "Deletes the specified `LocalInventory` from the given product in your merchant account. It might take a up to an hour for the `LocalInventory` to be deleted from the specific product. Once you have received a successful delete response, wait for that period before attempting a delete again.", +"flatPath": "inventories/v1beta/accounts/{accountsId}/products/{productsId}/localInventories/{localInventoriesId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.products.localInventories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the local inventory for the given product to delete. Format: `accounts/{account}/products/{product}/localInventories/{store_code}`", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+/localInventories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "inventories/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Inserts a `LocalInventory` resource to a product in your merchant account. Replaces the full `LocalInventory` resource if an entry with the same `storeCode` already exists for the product. It might take up to 30 minutes for the new or updated `LocalInventory` resource to appear in products.", +"flatPath": "inventories/v1beta/accounts/{accountsId}/products/{productsId}/localInventories:insert", +"httpMethod": "POST", +"id": "merchantapi.accounts.products.localInventories.insert", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The account and product where this inventory will be inserted. Format: `accounts/{account}/products/{product}`", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "inventories/v1beta/{+parent}/localInventories:insert", +"request": { +"$ref": "LocalInventory" +}, +"response": { +"$ref": "LocalInventory" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the `LocalInventory` resources for the given product in your merchant account. The response might contain fewer items than specified by `pageSize`. If `pageToken` was returned in previous request, it can be used to obtain additional results. `LocalInventory` resources are listed per product for a given account.", +"flatPath": "inventories/v1beta/accounts/{accountsId}/products/{productsId}/localInventories", +"httpMethod": "GET", +"id": "merchantapi.accounts.products.localInventories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of `LocalInventory` resources for the given product to return. The service returns fewer than this value if the number of inventories for the given product is less that than the `pageSize`. The default value is 25000. The maximum value is 25000; If a value higher than the maximum is specified, then the `pageSize` will default to the maximum", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListLocalInventories` call. Provide the page token to retrieve the subsequent page. When paginating, all other parameters provided to `ListLocalInventories` must match the call that provided the page token. The token returned as nextPageToken in the response to the previous request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The `name` of the parent product to list local inventories for. Format: `accounts/{account}/products/{product}`", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "inventories/v1beta/{+parent}/localInventories", +"response": { +"$ref": "ListLocalInventoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"regionalInventories": { +"methods": { +"delete": { +"description": "Deletes the specified `RegionalInventory` resource from the given product in your merchant account. It might take up to an hour for the `RegionalInventory` to be deleted from the specific product. Once you have received a successful delete response, wait for that period before attempting a delete again.", +"flatPath": "inventories/v1beta/accounts/{accountsId}/products/{productsId}/regionalInventories/{regionalInventoriesId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.products.regionalInventories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `RegionalInventory` resource to delete. Format: `accounts/{account}/products/{product}/regionalInventories/{region}`", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+/regionalInventories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "inventories/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Inserts a `RegionalInventory` to a given product in your merchant account. Replaces the full `RegionalInventory` resource if an entry with the same `region` already exists for the product. It might take up to 30 minutes for the new or updated `RegionalInventory` resource to appear in products.", +"flatPath": "inventories/v1beta/accounts/{accountsId}/products/{productsId}/regionalInventories:insert", +"httpMethod": "POST", +"id": "merchantapi.accounts.products.regionalInventories.insert", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The account and product where this inventory will be inserted. Format: `accounts/{account}/products/{product}`", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "inventories/v1beta/{+parent}/regionalInventories:insert", +"request": { +"$ref": "RegionalInventory" +}, +"response": { +"$ref": "RegionalInventory" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the `RegionalInventory` resources for the given product in your merchant account. The response might contain fewer items than specified by `pageSize`. If `pageToken` was returned in previous request, it can be used to obtain additional results. `RegionalInventory` resources are listed per product for a given account.", +"flatPath": "inventories/v1beta/accounts/{accountsId}/products/{productsId}/regionalInventories", +"httpMethod": "GET", +"id": "merchantapi.accounts.products.regionalInventories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of `RegionalInventory` resources for the given product to return. The service returns fewer than this value if the number of inventories for the given product is less that than the `pageSize`. The default value is 25000. The maximum value is 100000; If a value higher than the maximum is specified, then the `pageSize` will default to the maximum.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListRegionalInventories` call. Provide the page token to retrieve the subsequent page. When paginating, all other parameters provided to `ListRegionalInventories` must match the call that provided the page token. The token returned as nextPageToken in the response to the previous request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The `name` of the parent product to list `RegionalInventory` resources for. Format: `accounts/{account}/products/{product}`", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "inventories/v1beta/{+parent}/regionalInventories", +"response": { +"$ref": "ListRegionalInventoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +} +} +} +}, +"revision": "20241119", +"rootUrl": "https://merchantapi.googleapis.com/", +"schemas": { +"CustomAttribute": { +"description": "A message that represents custom attributes. Exactly one of `value` or `group_values` must not be empty.", +"id": "CustomAttribute", +"properties": { +"groupValues": { +"description": "Subattributes within this attribute group. If `group_values` is not empty, `value` must be empty.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"name": { +"description": "The name of the attribute.", +"type": "string" +}, +"value": { +"description": "The value of the attribute. If `value` is not empty, `group_values` must be empty.", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Interval": { +"description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", +"id": "Interval", +"properties": { +"endTime": { +"description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ListLocalInventoriesResponse": { +"description": "Response message for the `ListLocalInventories` method.", +"id": "ListLocalInventoriesResponse", +"properties": { +"localInventories": { +"description": "The `LocalInventory` resources for the given product from the specified account.", +"items": { +"$ref": "LocalInventory" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListRegionalInventoriesResponse": { +"description": "Response message for the `ListRegionalInventories` method.", +"id": "ListRegionalInventoriesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"regionalInventories": { +"description": "The `RegionalInventory` resources for the given product from the specified account.", +"items": { +"$ref": "RegionalInventory" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalInventory": { +"description": "Local inventory information for the product. Represents in-store information for a specific product at the store specified by `storeCode`. For a list of all accepted attribute values, see the [local product inventory data specification](https://support.google.com/merchants/answer/3061342).", +"id": "LocalInventory", +"properties": { +"account": { +"description": "Output only. The account that owns the product. This field will be ignored if set by the client.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"availability": { +"description": "Availability of the product at this store. For accepted attribute values, see the [local product inventory data specification](https://support.google.com/merchants/answer/3061342)", +"type": "string" +}, +"customAttributes": { +"description": "A list of custom (merchant-provided) attributes. You can also use `CustomAttribute` to submit any attribute of the data specification in its generic form.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"instoreProductLocation": { +"description": "Location of the product inside the store. Maximum length is 20 bytes.", +"type": "string" +}, +"name": { +"description": "Output only. The name of the `LocalInventory` resource. Format: `accounts/{account}/products/{product}/localInventories/{store_code}`", +"readOnly": true, +"type": "string" +}, +"pickupMethod": { +"description": "Supported pickup method for this product. Unless the value is `\"not supported\"`, this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory data specification](https://support.google.com/merchants/answer/3061342)", +"type": "string" +}, +"pickupSla": { +"description": "Relative time period from the order date for an order for this product, from this store, to be ready for pickup. Must be submitted with `pickupMethod`. For accepted attribute values, see the [local product inventory data specification](https://support.google.com/merchants/answer/3061342)", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Price of the product at this store." +}, +"quantity": { +"description": "Quantity of the product available at this store. Must be greater than or equal to zero.", +"format": "int64", +"type": "string" +}, +"salePrice": { +"$ref": "Price", +"description": "Sale price of the product at this store. Mandatory if `salePriceEffectiveDate` is defined." +}, +"salePriceEffectiveDate": { +"$ref": "Interval", +"description": "The `TimePeriod` of the sale at this store." +}, +"storeCode": { +"description": "Required. Immutable. Store code (the store ID from your Business Profile) of the physical store the product is sold in. See the [Local product inventory data specification](https://support.google.com/merchants/answer/3061342) for more information.", +"type": "string" +} +}, +"type": "object" +}, +"Price": { +"description": "The price represented as a number and currency.", +"id": "Price", +"properties": { +"amountMicros": { +"description": "The price represented as a number in micros (1 million micros is an equivalent to one's currency standard unit, for example, 1 USD = 1000000 micros).", +"format": "int64", +"type": "string" +}, +"currencyCode": { +"description": "The currency of the price using three-letter acronyms according to [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).", +"type": "string" +} +}, +"type": "object" +}, +"ProductChange": { +"description": "The change that happened to the product including old value, new value, country code as the region code and reporting context.", +"id": "ProductChange", +"properties": { +"newValue": { +"description": "The new value of the changed resource or attribute.", +"type": "string" +}, +"oldValue": { +"description": "The old value of the changed resource or attribute.", +"type": "string" +}, +"regionCode": { +"description": "Countries that have the change (if applicable)", +"type": "string" +}, +"reportingContext": { +"description": "Reporting contexts that have the change (if applicable)", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"type": "string" +} +}, +"type": "object" +}, +"ProductStatusChangeMessage": { +"description": "The message that the merchant will receive to notify about product status change event", +"id": "ProductStatusChangeMessage", +"properties": { +"account": { +"description": "The target account that owns the entity that changed. Format : `accounts/{merchant_id}`", +"type": "string" +}, +"attribute": { +"description": "The attribute in the resource that changed, in this case it will be always `Status`.", +"enum": [ +"ATTRIBUTE_UNSPECIFIED", +"STATUS" +], +"enumDescriptions": [ +"Unspecified attribute", +"Status of the changed entity" +], +"type": "string" +}, +"changes": { +"description": "A message to describe the change that happened to the product", +"items": { +"$ref": "ProductChange" +}, +"type": "array" +}, +"expirationTime": { +"description": "The product expiration time. This field will not bet set if the notification is sent for a product deletion event.", +"format": "google-datetime", +"type": "string" +}, +"managingAccount": { +"description": "The account that manages the merchant's account. can be the same as merchant id if it is standalone account. Format : `accounts/{service_provider_id}`", +"type": "string" +}, +"resource": { +"description": "The product name. Format: `{product.name=accounts/{account}/products/{product}}`", +"type": "string" +}, +"resourceId": { +"description": "The product id.", +"type": "string" +}, +"resourceType": { +"description": "The resource that changed, in this case it will always be `Product`.", +"enum": [ +"RESOURCE_UNSPECIFIED", +"PRODUCT" +], +"enumDescriptions": [ +"Unspecified resource", +"Resource type : product" +], +"type": "string" +} +}, +"type": "object" +}, +"RegionalInventory": { +"description": "Regional inventory information for the product. Represents specific information like price and availability for a given product in a specific `region`. For a list of all accepted attribute values, see the [regional product inventory data specification](https://support.google.com/merchants/answer/9698880).", +"id": "RegionalInventory", +"properties": { +"account": { +"description": "Output only. The account that owns the product. This field will be ignored if set by the client.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"availability": { +"description": "Availability of the product in this region. For accepted attribute values, see the [regional product inventory data specification](https://support.google.com/merchants/answer/3061342)", +"type": "string" +}, +"customAttributes": { +"description": "A list of custom (merchant-provided) attributes. You can also use `CustomAttribute` to submit any attribute of the data specification in its generic form.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"name": { +"description": "Output only. The name of the `RegionalInventory` resource. Format: `{regional_inventory.name=accounts/{account}/products/{product}/regionalInventories/{region}`", +"readOnly": true, +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Price of the product in this region." +}, +"region": { +"description": "Required. Immutable. ID of the region for this `RegionalInventory` resource. See the [Regional availability and pricing](https://support.google.com/merchants/answer/9698880) for more details.", +"type": "string" +}, +"salePrice": { +"$ref": "Price", +"description": "Sale price of the product in this region. Mandatory if `salePriceEffectiveDate` is defined." +}, +"salePriceEffectiveDate": { +"$ref": "Interval", +"description": "The `TimePeriod` of the sale price in this region." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Merchant API", +"version": "inventories_v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/metastore.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/metastore.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..bb418edf37cd7115bddca600b5b8c16e45dbe2f2 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/metastore.v2.json @@ -0,0 +1,1813 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://metastore.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Dataproc Metastore", +"description": "The Dataproc Metastore API is used to manage the lifecycle and configuration of metastore services.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dataproc-metastore/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "metastore:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://metastore.mtls.googleapis.com/", +"name": "metastore", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"services": { +"methods": { +"alterLocation": { +"description": "Alter metadata resource location. The metadata resource can be a database, table, or partition. This functionality only updates the parent directory for the respective metadata resource and does not transfer any existing data to the new location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterLocation", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.alterLocation", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to mutate metadata, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+service}:alterLocation", +"request": { +"$ref": "GoogleCloudMetastoreV2AlterMetadataResourceLocationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"alterTableProperties": { +"description": "Alter metadata table properties.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterTableProperties", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.alterTableProperties", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the Dataproc Metastore service that's being used to mutate metadata table properties, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+service}:alterTableProperties", +"request": { +"$ref": "GoogleCloudMetastoreV2AlterTablePropertiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a metastore service in a project and location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The relative resource name of the location in which to create a metastore service, in the following form:projects/{project_number}/locations/{location_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +}, +"serviceId": { +"description": "Required. The ID of the metastore service, which is used as the final component of the metastore service's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/services", +"request": { +"$ref": "GoogleCloudMetastoreV2Service" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "metastore.projects.locations.services.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the metastore service to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"exportMetadata": { +"description": "Exports metadata from a service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:exportMetadata", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.exportMetadata", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to run export, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+service}:exportMetadata", +"request": { +"$ref": "GoogleCloudMetastoreV2ExportMetadataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a single service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the metastore service to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudMetastoreV2Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"importMetadata": { +"description": "Imports Metadata into a Dataproc Metastore service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:importMetadata", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.importMetadata", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The relative resource name of the metastore service to run import, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:importMetadata", +"request": { +"$ref": "GoogleCloudMetastoreV2ImportMetadataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists services in a project and location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to apply to list results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of services to return. The response may contain less than the maximum number. If unspecified, no more than 500 services are returned. The maximum value is 1000; values above 1000 are changed to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous DataprocMetastore.ListServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListServices must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the location of metastore services to list, in the following form:projects/{project_number}/locations/{location_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/services", +"response": { +"$ref": "GoogleCloudMetastoreV2ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"moveTableToDatabase": { +"description": "Move a table to another database.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:moveTableToDatabase", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.moveTableToDatabase", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to mutate metadata, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+service}:moveTableToDatabase", +"request": { +"$ref": "GoogleCloudMetastoreV2MoveTableToDatabaseRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "PATCH", +"id": "metastore.projects.locations.services.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. A field mask used to specify the fields to be overwritten in the metastore service resource by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudMetastoreV2Service" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryMetadata": { +"description": "Query Dataproc Metastore metadata.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:queryMetadata", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.queryMetadata", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to query metadata, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+service}:queryMetadata", +"request": { +"$ref": "GoogleCloudMetastoreV2QueryMetadataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "Restores a service from a backup.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:restore", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.restore", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to run restore, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+service}:restore", +"request": { +"$ref": "GoogleCloudMetastoreV2RestoreServiceRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a new backup in a given project and location.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. The ID of the backup, which is used as the final component of the backup's name.This value must be between 1 and 64 characters long, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the service in which to create a backup of the following form:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/backups", +"request": { +"$ref": "GoogleCloudMetastoreV2Backup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single backup.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "metastore.projects.locations.services.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the backup to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single backup.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the backup to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudMetastoreV2Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists backups in a service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to apply to list results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of backups to return. The response may contain less than the maximum number. If unspecified, no more than 500 backups are returned. The maximum value is 1000; values above 1000 are changed to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous DataprocMetastore.ListBackups call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListBackups must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the service whose backups to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/backups", +"response": { +"$ref": "GoogleCloudMetastoreV2ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241203", +"rootUrl": "https://metastore.googleapis.com/", +"schemas": { +"GoogleCloudMetastoreV1AlterMetadataResourceLocationResponse": { +"description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV1AlterMetadataResourceLocationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1CustomRegionMetadata": { +"description": "Metadata about a custom region. This is only populated if the region is a custom region. For single/multi regions, it will be empty.", +"id": "GoogleCloudMetastoreV1CustomRegionMetadata", +"properties": { +"optionalReadOnlyRegions": { +"description": "The read-only regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredReadWriteRegions": { +"description": "The read-write regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"witnessRegion": { +"description": "The Spanner witness region for this custom region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1ErrorDetails": { +"description": "Error details in public error message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1ErrorDetails", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1HiveMetastoreVersion": { +"description": "A specification of a supported version of the Hive Metastore software.", +"id": "GoogleCloudMetastoreV1HiveMetastoreVersion", +"properties": { +"isDefault": { +"description": "Whether version will be chosen by the server if a metastore service is created with a HiveMetastoreConfig that omits the version.", +"type": "boolean" +}, +"version": { +"description": "The semantic version of the Hive Metastore software.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1LocationMetadata": { +"description": "Metadata about the service in a location.", +"id": "GoogleCloudMetastoreV1LocationMetadata", +"properties": { +"customRegionMetadata": { +"description": "Possible configurations supported if the current region is a custom region.", +"items": { +"$ref": "GoogleCloudMetastoreV1CustomRegionMetadata" +}, +"type": "array" +}, +"multiRegionMetadata": { +"$ref": "GoogleCloudMetastoreV1MultiRegionMetadata", +"description": "The multi-region metadata if the current region is a multi-region." +}, +"supportedHiveMetastoreVersions": { +"description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", +"items": { +"$ref": "GoogleCloudMetastoreV1HiveMetastoreVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1MoveTableToDatabaseResponse": { +"description": "Response message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV1MoveTableToDatabaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1MultiRegionMetadata": { +"description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region or custom dual region, it will be empty.", +"id": "GoogleCloudMetastoreV1MultiRegionMetadata", +"properties": { +"constituentRegions": { +"description": "The regions constituting the multi-region.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMetastoreV1OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1QueryMetadataResponse": { +"description": "Response message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1QueryMetadataResponse", +"properties": { +"resultManifestUri": { +"description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaAlterMetadataResourceLocationResponse": { +"description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV1alphaAlterMetadataResourceLocationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaCancelMigrationResponse": { +"description": "Response message for DataprocMetastore.CancelMigration.", +"id": "GoogleCloudMetastoreV1alphaCancelMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaCompleteMigrationResponse": { +"description": "Response message for DataprocMetastore.CompleteMigration.", +"id": "GoogleCloudMetastoreV1alphaCompleteMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaCustomRegionMetadata": { +"description": "Metadata about a custom region. This is only populated if the region is a custom region. For single/multi regions, it will be empty.", +"id": "GoogleCloudMetastoreV1alphaCustomRegionMetadata", +"properties": { +"optionalReadOnlyRegions": { +"description": "The read-only regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredReadWriteRegions": { +"description": "The read-write regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"witnessRegion": { +"description": "The Spanner witness region for this custom region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaErrorDetails": { +"description": "Error details in public error message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1alphaErrorDetails", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaHiveMetastoreVersion": { +"description": "A specification of a supported version of the Hive Metastore software.", +"id": "GoogleCloudMetastoreV1alphaHiveMetastoreVersion", +"properties": { +"isDefault": { +"description": "Whether version will be chosen by the server if a metastore service is created with a HiveMetastoreConfig that omits the version.", +"type": "boolean" +}, +"version": { +"description": "The semantic version of the Hive Metastore software.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaLocationMetadata": { +"description": "Metadata about the service in a location.", +"id": "GoogleCloudMetastoreV1alphaLocationMetadata", +"properties": { +"customRegionMetadata": { +"description": "Possible configurations supported if the current region is a custom region.", +"items": { +"$ref": "GoogleCloudMetastoreV1alphaCustomRegionMetadata" +}, +"type": "array" +}, +"multiRegionMetadata": { +"$ref": "GoogleCloudMetastoreV1alphaMultiRegionMetadata", +"description": "The multi-region metadata if the current region is a multi-region." +}, +"supportedHiveMetastoreVersions": { +"description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", +"items": { +"$ref": "GoogleCloudMetastoreV1alphaHiveMetastoreVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaMoveTableToDatabaseResponse": { +"description": "Response message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV1alphaMoveTableToDatabaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaMultiRegionMetadata": { +"description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region or custom dual region, it will be empty.", +"id": "GoogleCloudMetastoreV1alphaMultiRegionMetadata", +"properties": { +"constituentRegions": { +"description": "The regions constituting the multi-region.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaOperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMetastoreV1alphaOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaQueryMetadataResponse": { +"description": "Response message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1alphaQueryMetadataResponse", +"properties": { +"resultManifestUri": { +"description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaAlterMetadataResourceLocationResponse": { +"description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV1betaAlterMetadataResourceLocationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaCancelMigrationResponse": { +"description": "Response message for DataprocMetastore.CancelMigration.", +"id": "GoogleCloudMetastoreV1betaCancelMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaCompleteMigrationResponse": { +"description": "Response message for DataprocMetastore.CompleteMigration.", +"id": "GoogleCloudMetastoreV1betaCompleteMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaCustomRegionMetadata": { +"description": "Metadata about a custom region. This is only populated if the region is a custom region. For single/multi regions, it will be empty.", +"id": "GoogleCloudMetastoreV1betaCustomRegionMetadata", +"properties": { +"optionalReadOnlyRegions": { +"description": "The read-only regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredReadWriteRegions": { +"description": "The read-write regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"witnessRegion": { +"description": "The Spanner witness region for this custom region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaErrorDetails": { +"description": "Error details in public error message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1betaErrorDetails", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaHiveMetastoreVersion": { +"description": "A specification of a supported version of the Hive Metastore software.", +"id": "GoogleCloudMetastoreV1betaHiveMetastoreVersion", +"properties": { +"isDefault": { +"description": "Whether version will be chosen by the server if a metastore service is created with a HiveMetastoreConfig that omits the version.", +"type": "boolean" +}, +"version": { +"description": "The semantic version of the Hive Metastore software.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaLocationMetadata": { +"description": "Metadata about the service in a location.", +"id": "GoogleCloudMetastoreV1betaLocationMetadata", +"properties": { +"customRegionMetadata": { +"description": "Possible configurations supported if the current region is a custom region.", +"items": { +"$ref": "GoogleCloudMetastoreV1betaCustomRegionMetadata" +}, +"type": "array" +}, +"multiRegionMetadata": { +"$ref": "GoogleCloudMetastoreV1betaMultiRegionMetadata", +"description": "The multi-region metadata if the current region is a multi-region." +}, +"supportedHiveMetastoreVersions": { +"description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", +"items": { +"$ref": "GoogleCloudMetastoreV1betaHiveMetastoreVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaMoveTableToDatabaseResponse": { +"description": "Response message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV1betaMoveTableToDatabaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaMultiRegionMetadata": { +"description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region or custom dual region, it will be empty.", +"id": "GoogleCloudMetastoreV1betaMultiRegionMetadata", +"properties": { +"constituentRegions": { +"description": "The regions constituting the multi-region.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaOperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMetastoreV1betaOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaQueryMetadataResponse": { +"description": "Response message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1betaQueryMetadataResponse", +"properties": { +"resultManifestUri": { +"description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2AlterMetadataResourceLocationRequest": { +"description": "Request message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV2AlterMetadataResourceLocationRequest", +"properties": { +"locationUri": { +"description": "Required. The new location URI for the metadata resource.", +"type": "string" +}, +"resourceName": { +"description": "Required. The relative metadata resource name in the following format.databases/{database_id} or databases/{database_id}/tables/{table_id} or databases/{database_id}/tables/{table_id}/partitions/{partition_id}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2AlterTablePropertiesRequest": { +"description": "Request message for DataprocMetastore.AlterTableProperties.", +"id": "GoogleCloudMetastoreV2AlterTablePropertiesRequest", +"properties": { +"properties": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that describes the desired values to mutate. If update_mask is empty, the properties will not update. Otherwise, the properties only alters the value whose associated paths exist in the update mask", +"type": "object" +}, +"tableName": { +"description": "Required. The name of the table containing the properties you're altering in the following format.databases/{database_id}/tables/{table_id}", +"type": "string" +}, +"updateMask": { +"description": "A field mask that specifies the metadata table properties that are overwritten by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.For example, given the target properties: properties { a: 1 b: 2 } And an update properties: properties { a: 2 b: 3 c: 4 } then if the field mask is:paths: \"properties.b\", \"properties.c\"then the result will be: properties { a: 1 b: 3 c: 4 } ", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2AuxiliaryVersionConfig": { +"description": "Configuration information for the auxiliary service versions.", +"id": "GoogleCloudMetastoreV2AuxiliaryVersionConfig", +"properties": { +"configOverrides": { +"additionalProperties": { +"type": "string" +}, +"description": "A mapping of Hive metastore configuration key-value pairs to apply to the auxiliary Hive metastore (configured in hive-site.xml) in addition to the primary version's overrides. If keys are present in both the auxiliary version's overrides and the primary version's overrides, the value from the auxiliary version's overrides takes precedence.", +"type": "object" +}, +"endpoints": { +"description": "Output only. The list of endpoints used to access the auxiliary metastore service, includes version and region data.", +"items": { +"$ref": "GoogleCloudMetastoreV2Endpoint" +}, +"readOnly": true, +"type": "array" +}, +"version": { +"description": "The Hive metastore version of the auxiliary service. It must be less than the primary Hive metastore service's version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2Backup": { +"description": "The details of a backup resource.", +"id": "GoogleCloudMetastoreV2Backup", +"properties": { +"createTime": { +"description": "Output only. The time when the backup was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The description of the backup.", +"type": "string" +}, +"endTime": { +"description": "Output only. The time when the backup finished creating.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}", +"type": "string" +}, +"restoringServices": { +"description": "Output only. Services that are restoring from the backup.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"serviceRevision": { +"$ref": "GoogleCloudMetastoreV2Service", +"description": "Output only. The revision of the service at the time of backup.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"DELETING", +"ACTIVE", +"FAILED", +"RESTORING" +], +"enumDescriptions": [ +"The state of the backup is unknown.", +"The backup is being created.", +"The backup is being deleted.", +"The backup is active and ready to use.", +"The backup failed.", +"The backup is being restored." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2DataCatalogConfig": { +"description": "Specifies how metastore metadata should be integrated with the Data Catalog service.", +"id": "GoogleCloudMetastoreV2DataCatalogConfig", +"properties": { +"enabled": { +"description": "Optional. Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2DatabaseDump": { +"description": "A specification of the location of and metadata about a database dump from a relational database management system.", +"id": "GoogleCloudMetastoreV2DatabaseDump", +"properties": { +"gcsUri": { +"description": "Required. A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.", +"type": "string" +}, +"type": { +"description": "Optional. The type of the database dump. If unspecified, defaults to MYSQL.", +"enum": [ +"TYPE_UNSPECIFIED", +"MYSQL", +"AVRO" +], +"enumDescriptions": [ +"The type of the database dump is unknown.", +"Database dump is a MySQL dump file.", +"Database dump contains Avro files." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2EncryptionConfig": { +"description": "Encryption settings for the service.", +"id": "GoogleCloudMetastoreV2EncryptionConfig", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV2Endpoint": { +"description": "An endpoint used to access the metastore service.", +"id": "GoogleCloudMetastoreV2Endpoint", +"properties": { +"endpointUri": { +"description": "Output only. The URI of the endpoint used to access the metastore service.", +"readOnly": true, +"type": "string" +}, +"region": { +"description": "Output only. The region where the endpoint is located.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2ExportMetadataRequest": { +"description": "Request message for DataprocMetastore.ExportMetadata.", +"id": "GoogleCloudMetastoreV2ExportMetadataRequest", +"properties": { +"databaseDumpType": { +"description": "Optional. The type of the database dump. If unspecified, defaults to MYSQL.", +"enum": [ +"TYPE_UNSPECIFIED", +"MYSQL", +"AVRO" +], +"enumDescriptions": [ +"The type of the database dump is unknown.", +"Database dump is a MySQL dump file.", +"Database dump contains Avro files." +], +"type": "string" +}, +"destinationGcsFolder": { +"description": "A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing exported files will be created below it.", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2HiveMetastoreConfig": { +"description": "Specifies configuration information specific to running Hive metastore software as the metastore service.", +"id": "GoogleCloudMetastoreV2HiveMetastoreConfig", +"properties": { +"auxiliaryVersions": { +"additionalProperties": { +"$ref": "GoogleCloudMetastoreV2AuxiliaryVersionConfig" +}, +"description": "Optional. A mapping of Hive metastore version to the auxiliary version configuration. When specified, a secondary Hive metastore service is created along with the primary service. All auxiliary versions must be less than the service's primary version. The key is the auxiliary service name and it must match the regular expression a-z?. This means that the first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.", +"type": "object" +}, +"configOverrides": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden). These overrides are also applied to auxiliary versions and can be further customized in the auxiliary version's AuxiliaryVersionConfig.", +"type": "object" +}, +"endpointProtocol": { +"description": "Optional. The protocol to use for the metastore service endpoint. If unspecified, defaults to GRPC.", +"enum": [ +"ENDPOINT_PROTOCOL_UNSPECIFIED", +"THRIFT", +"GRPC" +], +"enumDescriptions": [ +"The protocol is not set.", +"Use the legacy Apache Thrift protocol for the metastore service endpoint.", +"Use the modernized gRPC protocol for the metastore service endpoint." +], +"type": "string" +}, +"version": { +"description": "Immutable. The Hive metastore schema version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2ImportMetadataRequest": { +"description": "Request message for DataprocMetastore.CreateMetadataImport.", +"id": "GoogleCloudMetastoreV2ImportMetadataRequest", +"properties": { +"databaseDump": { +"$ref": "GoogleCloudMetastoreV2DatabaseDump", +"description": "Immutable. A database dump from a pre-existing metastore's database." +}, +"description": { +"description": "Optional. The description of the metadata import.", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2LatestBackup": { +"description": "The details of the latest scheduled backup.", +"id": "GoogleCloudMetastoreV2LatestBackup", +"properties": { +"backupId": { +"description": "Output only. The ID of an in-progress scheduled backup. Empty if no backup is in progress.", +"readOnly": true, +"type": "string" +}, +"duration": { +"description": "Output only. The duration of the backup completion.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The time when the backup was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"IN_PROGRESS", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"The state of the backup is unknown.", +"The backup is in progress.", +"The backup completed.", +"The backup failed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2ListBackupsResponse": { +"description": "Response message for DataprocMetastore.ListBackups.", +"id": "GoogleCloudMetastoreV2ListBackupsResponse", +"properties": { +"backups": { +"description": "The backups of the specified service.", +"items": { +"$ref": "GoogleCloudMetastoreV2Backup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2ListServicesResponse": { +"description": "Response message for DataprocMetastore.ListServices.", +"id": "GoogleCloudMetastoreV2ListServicesResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"services": { +"description": "The services in the specified location.", +"items": { +"$ref": "GoogleCloudMetastoreV2Service" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2MetadataIntegration": { +"description": "Specifies how metastore metadata should be integrated with external services.", +"id": "GoogleCloudMetastoreV2MetadataIntegration", +"properties": { +"dataCatalogConfig": { +"$ref": "GoogleCloudMetastoreV2DataCatalogConfig", +"description": "Optional. The integration config for the Data Catalog service." +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2MoveTableToDatabaseRequest": { +"description": "Request message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV2MoveTableToDatabaseRequest", +"properties": { +"dbName": { +"description": "Required. The name of the database where the table resides.", +"type": "string" +}, +"destinationDbName": { +"description": "Required. The name of the database where the table should be moved.", +"type": "string" +}, +"tableName": { +"description": "Required. The name of the table to be moved.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2QueryMetadataRequest": { +"description": "Request message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV2QueryMetadataRequest", +"properties": { +"query": { +"description": "Required. A read-only SQL query to execute against the metadata database. The query cannot change or mutate the data.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2RestoreServiceRequest": { +"description": "Request message for DataprocMetastore.Restore.", +"id": "GoogleCloudMetastoreV2RestoreServiceRequest", +"properties": { +"backup": { +"description": "Optional. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}. Mutually exclusive with backup_location, and exactly one of the two must be set.", +"type": "string" +}, +"backupLocation": { +"description": "Optional. A Cloud Storage URI specifying the location of the backup artifacts, namely - backup avro files under \"avro/\", backup_metastore.json and service.json, in the following form:gs://. Mutually exclusive with backup, and exactly one of the two must be set.", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +}, +"restoreType": { +"description": "Optional. The type of restore. If unspecified, defaults to METADATA_ONLY.", +"enum": [ +"RESTORE_TYPE_UNSPECIFIED", +"FULL", +"METADATA_ONLY" +], +"enumDescriptions": [ +"The restore type is unknown.", +"The service's metadata and configuration are restored.", +"Only the service's metadata is restored." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2ScalingConfig": { +"description": "Represents the scaling configuration of a metastore service.", +"id": "GoogleCloudMetastoreV2ScalingConfig", +"properties": { +"scalingFactor": { +"description": "Optional. Scaling factor from 1 to 5, increments of 1.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2ScheduledBackup": { +"description": "This specifies the configuration of scheduled backup.", +"id": "GoogleCloudMetastoreV2ScheduledBackup", +"properties": { +"backupLocation": { +"description": "Optional. A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing backup files will be stored below it.", +"type": "string" +}, +"cronSchedule": { +"description": "Optional. The scheduled interval in Cron format, see https://en.wikipedia.org/wiki/Cron The default is empty: scheduled backup is not enabled. Must be specified to enable scheduled backups.", +"type": "string" +}, +"enabled": { +"description": "Optional. Defines whether the scheduled backup is enabled. The default value is false.", +"type": "boolean" +}, +"latestBackup": { +"$ref": "GoogleCloudMetastoreV2LatestBackup", +"description": "Output only. The details of the latest scheduled backup.", +"readOnly": true +}, +"nextScheduledTime": { +"description": "Output only. The time when the next backups execution is scheduled to start.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"timeZone": { +"description": "Optional. Specifies the time zone to be used when interpreting cron_schedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. America/Los_Angeles or Africa/Abidjan. If left unspecified, the default is UTC.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2Service": { +"description": "A managed metastore service that serves metadata queries.", +"id": "GoogleCloudMetastoreV2Service", +"properties": { +"createTime": { +"description": "Output only. The time when the metastore service was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"encryptionConfig": { +"$ref": "GoogleCloudMetastoreV2EncryptionConfig", +"description": "Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated." +}, +"endpoints": { +"description": "Output only. The list of endpoints used to access the metastore service.", +"items": { +"$ref": "GoogleCloudMetastoreV2Endpoint" +}, +"readOnly": true, +"type": "array" +}, +"hiveMetastoreConfig": { +"$ref": "GoogleCloudMetastoreV2HiveMetastoreConfig", +"description": "Configuration information specific to running Hive metastore software as the metastore service." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels for the metastore service.", +"type": "object" +}, +"metadataIntegration": { +"$ref": "GoogleCloudMetastoreV2MetadataIntegration", +"description": "Optional. The setting that defines how metastore metadata should be integrated with external services and systems." +}, +"name": { +"description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"type": "string" +}, +"scalingConfig": { +"$ref": "GoogleCloudMetastoreV2ScalingConfig", +"description": "Optional. Scaling configuration of the metastore service." +}, +"scheduledBackup": { +"$ref": "GoogleCloudMetastoreV2ScheduledBackup", +"description": "Optional. The configuration of scheduled backup for the metastore service." +}, +"state": { +"description": "Output only. The current state of the metastore service.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"SUSPENDING", +"SUSPENDED", +"UPDATING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"The state of the metastore service is unknown.", +"The metastore service is in the process of being created.", +"The metastore service is running and ready to serve queries.", +"The metastore service is entering suspension. Its query-serving availability may cease unexpectedly.", +"The metastore service is suspended and unable to serve queries.", +"The metastore service is being updated. It remains usable but cannot accept additional update requests or be deleted at this time.", +"The metastore service is undergoing deletion. It cannot be used.", +"The metastore service has encountered an error and cannot be used. The metastore service should be deleted." +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. Additional information about the current state of the metastore service, if available.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. The globally unique resource identifier of the metastore service.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the metastore service was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"warehouseGcsUri": { +"description": "Required. A Cloud Storage URI (starting with gs://) that specifies the default warehouse directory of the Hive Metastore.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Dataproc Metastore API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/mybusinessbusinessinformation.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/mybusinessbusinessinformation.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..575aecc23cdfd9f3f51d5e9d4c26ad245a1dae54 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/mybusinessbusinessinformation.v1.json @@ -0,0 +1,1800 @@ +{ +"basePath": "", +"baseUrl": "https://mybusinessbusinessinformation.googleapis.com/", +"batchPath": "batch", +"canonicalName": "My Business Business Information", +"description": "The My Business Business Information API provides an interface for managing business information. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/my-business/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "mybusinessbusinessinformation:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://mybusinessbusinessinformation.mtls.googleapis.com/", +"name": "mybusinessbusinessinformation", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"locations": { +"methods": { +"create": { +"description": "Creates a new Location that will be owned by the logged in user.", +"flatPath": "v1/accounts/{accountsId}/locations", +"httpMethod": "POST", +"id": "mybusinessbusinessinformation.accounts.locations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the account in which to create this location.", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique request ID for the server to detect duplicated requests. We recommend using UUIDs. Max length is 50 characters.", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If true, the request is validated without actually creating the location.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/locations", +"request": { +"$ref": "Location" +}, +"response": { +"$ref": "Location" +} +}, +"list": { +"description": "Lists the locations for the specified account.", +"flatPath": "v1/accounts/{accountsId}/locations", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.accounts.locations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter constraining the locations to return. The response includes only entries that match the filter. If `filter` is empty, then constraints are applied and all locations (paginated) are retrieved for the requested account. For more information about valid fields and example usage, see [Work with Location Data Guide](https://developers.google.com/my-business/content/location-data#filter_results_when_you_list_locations).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Sorting order for the request. Multiple fields should be comma-separated, following SQL syntax. The default sorting order is ascending. To specify descending order, a suffix \" desc\" should be added. Valid fields to order_by are title and store_code. For example: \"title, store_code desc\" or \"title\" or \"store_code desc\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. How many locations to fetch per page. Default value is 10 if not set. Minimum is 1, and maximum page size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If specified, it fetches the next `page` of locations. The page token is returned by previous calls to `ListLocations` when there were more locations than could fit in the requested page size.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the account to fetch locations from. If the parent Account is of AccountType PERSONAL, only Locations that are directly owned by the Account are returned, otherwise it will return all accessible locations from the Account, either directly or indirectly.", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Required. Read mask to specify what fields will be returned in the response.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/locations", +"response": { +"$ref": "ListLocationsResponse" +} +} +} +} +} +}, +"attributes": { +"methods": { +"list": { +"description": "Returns the list of attributes that would be available for a location with the given primary category and country.", +"flatPath": "v1/attributes", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.attributes.list", +"parameterOrder": [], +"parameters": { +"categoryName": { +"description": "The primary category stable ID to find available attributes. Must be of the format categories/{category_id}.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "The BCP 47 code of language to get attribute display names in. If this language is not available, they will be provided in English.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "How many attributes to include per page. Default is 200, minimum is 1.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "If specified, the next page of attribute metadata is retrieved.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Resource name of the location to look up available attributes. If this field is set, category_name, region_code, language_code and show_all are not required and must not be set.", +"location": "query", +"type": "string" +}, +"regionCode": { +"description": "The ISO 3166-1 alpha-2 country code to find available attributes.", +"location": "query", +"type": "string" +}, +"showAll": { +"description": "Metadata for all available attributes are returned when this field is set to true, disregarding parent and category_name fields. language_code and region_code are required when show_all is set to true.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/attributes", +"response": { +"$ref": "ListAttributeMetadataResponse" +} +} +} +}, +"categories": { +"methods": { +"batchGet": { +"description": "Returns a list of business categories for the provided language and GConcept ids.", +"flatPath": "v1/categories:batchGet", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.categories.batchGet", +"parameterOrder": [], +"parameters": { +"languageCode": { +"description": "Required. The BCP 47 code of language that the category names should be returned in.", +"location": "query", +"type": "string" +}, +"names": { +"description": "Required. At least one name must be set. The GConcept ids the localized category names should be returned for. To return details for more than one category, repeat this parameter in the request.", +"location": "query", +"repeated": true, +"type": "string" +}, +"regionCode": { +"description": "Optional. The ISO 3166-1 alpha-2 country code used to infer non-standard language.", +"location": "query", +"type": "string" +}, +"view": { +"description": "Required. Specifies which parts to the Category resource should be returned in the response.", +"enum": [ +"CATEGORY_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Not specified, equivalent to CATEGORY_METADATA_ONLY.", +"The server response will only include Category fields display_name, category_id and language_code. It omits any service type metadata related fields.", +"Returns all the fields in the response." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/categories:batchGet", +"response": { +"$ref": "BatchGetCategoriesResponse" +} +}, +"list": { +"description": "Returns a list of business categories. Search will match the category name but not the category ID. Search only matches the front of a category name (that is, 'food' may return 'Food Court' but not 'Fast Food Restaurant').", +"flatPath": "v1/categories", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.categories.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Optional. Filter string from user. The only field that supported is `displayName`. Eg: `filter=displayName=foo`.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Required. The BCP 47 code of language.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. How many categories to fetch per page. Default is 100, minimum is 1, and maximum page size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If specified, the next page of categories will be fetched.", +"location": "query", +"type": "string" +}, +"regionCode": { +"description": "Required. The ISO 3166-1 alpha-2 country code.", +"location": "query", +"type": "string" +}, +"view": { +"description": "Required. Specifies which parts to the Category resource should be returned in the response.", +"enum": [ +"CATEGORY_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Not specified, equivalent to CATEGORY_METADATA_ONLY.", +"The server response will only include Category fields display_name, category_id and language_code. It omits any service type metadata related fields.", +"Returns all the fields in the response." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/categories", +"response": { +"$ref": "ListCategoriesResponse" +} +} +} +}, +"chains": { +"methods": { +"get": { +"description": "Gets the specified chain. Returns `NOT_FOUND` if the chain does not exist.", +"flatPath": "v1/chains/{chainsId}", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.chains.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The chain's resource name, in the format `chains/{chain_place_id}`.", +"location": "path", +"pattern": "^chains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Chain" +} +}, +"search": { +"description": "Searches the chain based on chain name.", +"flatPath": "v1/chains:search", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.chains.search", +"parameterOrder": [], +"parameters": { +"chainName": { +"description": "Required. Search for a chain by its name. Exact/partial/fuzzy/related queries are supported. Examples: \"walmart\", \"wal-mart\", \"walmmmart\", \"\u6c83\u5c14\u739b\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of matched chains to return from this query. The default is 10. The maximum possible value is 500.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1/chains:search", +"response": { +"$ref": "SearchChainsResponse" +} +} +} +}, +"googleLocations": { +"methods": { +"search": { +"description": "Search all of the possible locations that are a match to the specified request.", +"flatPath": "v1/googleLocations:search", +"httpMethod": "POST", +"id": "mybusinessbusinessinformation.googleLocations.search", +"parameterOrder": [], +"parameters": {}, +"path": "v1/googleLocations:search", +"request": { +"$ref": "SearchGoogleLocationsRequest" +}, +"response": { +"$ref": "SearchGoogleLocationsResponse" +} +} +} +}, +"locations": { +"methods": { +"delete": { +"description": "Deletes a location. If this location cannot be deleted using the API and it is marked so in the `google.mybusiness.businessinformation.v1.LocationState`, use the [Google Business Profile](https://business.google.com/manage/) website.", +"flatPath": "v1/locations/{locationsId}", +"httpMethod": "DELETE", +"id": "mybusinessbusinessinformation.locations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the location to delete.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +} +}, +"get": { +"description": "Returns the specified location.", +"flatPath": "v1/locations/{locationsId}", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the location to fetch.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Required. Read mask to specify what fields will be returned in the response.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +} +}, +"getAttributes": { +"description": "Looks up all the attributes set for a given location.", +"flatPath": "v1/locations/{locationsId}/attributes", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.locations.getAttributes", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Google identifier for this location in the form of `locations/{location_id}/attributes`.", +"location": "path", +"pattern": "^locations/[^/]+/attributes$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Attributes" +} +}, +"getGoogleUpdated": { +"description": "Gets the Google-updated version of the specified location.", +"flatPath": "v1/locations/{locationsId}:getGoogleUpdated", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.locations.getGoogleUpdated", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the location to fetch.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Required. Read mask to specify what fields will be returned in the response.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:getGoogleUpdated", +"response": { +"$ref": "GoogleUpdatedLocation" +} +}, +"patch": { +"description": "Updates the specified location.", +"flatPath": "v1/locations/{locationsId}", +"httpMethod": "PATCH", +"id": "mybusinessbusinessinformation.locations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Google identifier for this location in the form: `locations/{location_id}`.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The specific fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If true, the request is validated without actually updating the location. When this field is set, we will only return validation errors if there were any. The response will be empty if no errors were found.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Location" +}, +"response": { +"$ref": "Location" +} +}, +"updateAttributes": { +"description": "Update attributes for a given location.", +"flatPath": "v1/locations/{locationsId}/attributes", +"httpMethod": "PATCH", +"id": "mybusinessbusinessinformation.locations.updateAttributes", +"parameterOrder": [ +"name" +], +"parameters": { +"attributeMask": { +"description": "Required. Attribute name of attributes that you'd like to update. Represented by `attributes/{attribute}`. Updates: All attributes provided in the attributes field that you would like to update must be set in the `attribute_mask`. Attributes set in the above list but not in the `attribute_mask` will be ignored. Deletes: If you'd like to delete certain attributes, they must be specified in the `attribute_mask` with no matching entry in the attributes list. If you'd like to delete all attributes set on a location, you should look up all the applicable attributes for the location and then add them to the `attribute_mask` with an empty attributes field.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Google identifier for this location in the form of `locations/{location_id}/attributes`.", +"location": "path", +"pattern": "^locations/[^/]+/attributes$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Attributes" +}, +"response": { +"$ref": "Attributes" +} +} +}, +"resources": { +"attributes": { +"methods": { +"getGoogleUpdated": { +"description": "Gets the Google-updated version of the specified location.", +"flatPath": "v1/locations/{locationsId}/attributes:getGoogleUpdated", +"httpMethod": "GET", +"id": "mybusinessbusinessinformation.locations.attributes.getGoogleUpdated", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Google identifier for this location in the form of `locations/{location_id}/attributes`.", +"location": "path", +"pattern": "^locations/[^/]+/attributes$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getGoogleUpdated", +"response": { +"$ref": "Attributes" +} +} +} +} +} +} +}, +"revision": "20241120", +"rootUrl": "https://mybusinessbusinessinformation.googleapis.com/", +"schemas": { +"AdWordsLocationExtensions": { +"description": "Additional information that is surfaced in AdWords.", +"id": "AdWordsLocationExtensions", +"properties": { +"adPhone": { +"description": "Required. An alternate phone number to display on AdWords location extensions instead of the location's primary phone number.", +"type": "string" +} +}, +"type": "object" +}, +"Attribute": { +"description": "A location attribute. Attributes provide additional information about a location. The attributes that can be set on a location may vary based on the properties of that location (for example, category). Available attributes are determined by Google and may be added and removed without API changes.", +"id": "Attribute", +"properties": { +"name": { +"description": "Required. The resource name for this attribute.", +"type": "string" +}, +"repeatedEnumValue": { +"$ref": "RepeatedEnumAttributeValue", +"description": "When the attribute value type is REPEATED_ENUM, this contains the attribute value, and the other values fields must be empty." +}, +"uriValues": { +"description": "When the attribute value type is URL, this field contains the value(s) for this attribute, and the other values fields must be empty.", +"items": { +"$ref": "UriAttributeValue" +}, +"type": "array" +}, +"valueType": { +"description": "Output only. The type of value that this attribute contains. This should be used to determine how to interpret the value.", +"enum": [ +"ATTRIBUTE_VALUE_TYPE_UNSPECIFIED", +"BOOL", +"ENUM", +"URL", +"REPEATED_ENUM" +], +"enumDescriptions": [ +"Not specified.", +"The values for this attribute are boolean values.", +"The attribute has a predetermined list of available values that can be used. Metadata for this attribute will list these values.", +"The values for this attribute are URLs.", +"The attribute value is an enum with multiple possible values that can be explicitly set or unset." +], +"readOnly": true, +"type": "string" +}, +"values": { +"description": "The values for this attribute. The type of the values supplied must match that expected for that attribute. This is a repeated field where multiple attribute values may be provided. Attribute types only support one value.", +"items": { +"type": "any" +}, +"type": "array" +} +}, +"type": "object" +}, +"AttributeMetadata": { +"description": "Metadata for an attribute. Contains display information for the attribute, including a localized name and a heading for grouping related attributes together.", +"id": "AttributeMetadata", +"properties": { +"deprecated": { +"description": "If true, the attribute is deprecated and should no longer be used. If deprecated, updating this attribute will not result in an error, but updates will not be saved. At some point after being deprecated, the attribute will be removed entirely and it will become an error.", +"type": "boolean" +}, +"displayName": { +"description": "The localized display name for the attribute, if available; otherwise, the English display name.", +"type": "string" +}, +"groupDisplayName": { +"description": "The localized display name of the group that contains this attribute, if available; otherwise, the English group name. Related attributes are collected into a group and should be displayed together under the heading given here.", +"type": "string" +}, +"parent": { +"description": "The unique identifier for the attribute.", +"type": "string" +}, +"repeatable": { +"description": "If true, the attribute supports multiple values. If false, only a single value should be provided.", +"type": "boolean" +}, +"valueMetadata": { +"description": "For some types of attributes (for example, enums), a list of supported values and corresponding display names for those values is provided.", +"items": { +"$ref": "AttributeValueMetadata" +}, +"type": "array" +}, +"valueType": { +"description": "The value type for the attribute. Values set and retrieved should be expected to be of this type.", +"enum": [ +"ATTRIBUTE_VALUE_TYPE_UNSPECIFIED", +"BOOL", +"ENUM", +"URL", +"REPEATED_ENUM" +], +"enumDescriptions": [ +"Not specified.", +"The values for this attribute are boolean values.", +"The attribute has a predetermined list of available values that can be used. Metadata for this attribute will list these values.", +"The values for this attribute are URLs.", +"The attribute value is an enum with multiple possible values that can be explicitly set or unset." +], +"type": "string" +} +}, +"type": "object" +}, +"AttributeValueMetadata": { +"description": "Metadata for supported attribute values.", +"id": "AttributeValueMetadata", +"properties": { +"displayName": { +"description": "The display name for this value, localized where available; otherwise, in English. The value display name is intended to be used in context with the attribute display name. For example, for a \"WiFi\" enum attribute, this could contain \"Paid\" to represent paid Wi-Fi.", +"type": "string" +}, +"value": { +"description": "The attribute value.", +"type": "any" +} +}, +"type": "object" +}, +"Attributes": { +"description": "A container for all the attributes for a given location.", +"id": "Attributes", +"properties": { +"attributes": { +"description": "A collection of attributes that need to be updated.", +"items": { +"$ref": "Attribute" +}, +"type": "array" +}, +"name": { +"description": "Required. Google identifier for this location in the form of `locations/{location_id}/attributes`.", +"type": "string" +} +}, +"type": "object" +}, +"BatchGetCategoriesResponse": { +"description": "Response message for BusinessCategories.BatchGetBusinessCategories.", +"id": "BatchGetCategoriesResponse", +"properties": { +"categories": { +"description": "Categories that match the GConcept ids provided in the request. They will not come in the same order as category ids in the request.", +"items": { +"$ref": "Category" +}, +"type": "array" +} +}, +"type": "object" +}, +"BusinessHours": { +"description": "Represents the time periods that this location is open for business. Holds a collection of TimePeriod instances.", +"id": "BusinessHours", +"properties": { +"periods": { +"description": "Required. A collection of times that this location is open for business. Each period represents a range of hours when the location is open during the week.", +"items": { +"$ref": "TimePeriod" +}, +"type": "array" +} +}, +"type": "object" +}, +"Categories": { +"description": "A collection of categories that describes the business. During updates, both fields must be set. Clients are prohibited from individually updating the primary or additional categories using the update mask.", +"id": "Categories", +"properties": { +"additionalCategories": { +"description": "Optional. Additional categories to describe your business. Categories help your customers find accurate, specific results for services they're interested in. To keep your business information accurate and live, make sure that you use as few categories as possible to describe your overall core business. Choose categories that are as specific as possible, but representative of your main business.", +"items": { +"$ref": "Category" +}, +"type": "array" +}, +"primaryCategory": { +"$ref": "Category", +"description": "Required. Category that best describes the core business this location engages in." +} +}, +"type": "object" +}, +"Category": { +"description": "A category describing what this business is (not what it does). For a list of valid category IDs, and the mappings to their human-readable names, see `categories.list`.", +"id": "Category", +"properties": { +"displayName": { +"description": "Output only. The human-readable name of the category. This is set when reading the location. When modifying the location, `category_id` must be set.", +"readOnly": true, +"type": "string" +}, +"moreHoursTypes": { +"description": "Output only. More hours types that are available for this business category.", +"items": { +"$ref": "MoreHoursType" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Required. A stable ID (provided by Google) for this category. The value must be specified when modifying the category (when creating or updating a location).", +"type": "string" +}, +"serviceTypes": { +"description": "Output only. A list of all the service types that are available for this business category.", +"items": { +"$ref": "ServiceType" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"Chain": { +"description": "A chain is a brand that your business's locations can be affiliated with.", +"id": "Chain", +"properties": { +"chainNames": { +"description": "Names of the chain.", +"items": { +"$ref": "ChainName" +}, +"type": "array" +}, +"locationCount": { +"description": "Number of locations that are part of this chain.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The chain's resource name, in the format `chains/{chain_id}`.", +"type": "string" +}, +"websites": { +"description": "Websites of the chain.", +"items": { +"$ref": "ChainUri" +}, +"type": "array" +} +}, +"type": "object" +}, +"ChainName": { +"description": "Name to be used when displaying the chain.", +"id": "ChainName", +"properties": { +"displayName": { +"description": "The display name for this chain.", +"type": "string" +}, +"languageCode": { +"description": "The BCP 47 code of language of the name.", +"type": "string" +} +}, +"type": "object" +}, +"ChainUri": { +"description": "Url to be used when displaying the chain.", +"id": "ChainUri", +"properties": { +"uri": { +"description": "The uri for this chain.", +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"FreeFormServiceItem": { +"description": "Represents a free-form service offered by the merchant. These are services that are not exposed as part of our structure service data. The merchant manually enters the names for of such services via a geomerchant surface.", +"id": "FreeFormServiceItem", +"properties": { +"category": { +"description": "Required. This field represents the category name (i.e. the category's stable ID). The `category` and `service_type_id` should match the possible combinations provided in the `Category` message.", +"type": "string" +}, +"label": { +"$ref": "Label", +"description": "Required. Language-tagged labels for the item. We recommend that item names be 140 characters or less, and descriptions 250 characters or less. This field should only be set if the input is a custom service item. Standardized service types should be updated via service_type_id." +} +}, +"type": "object" +}, +"GoogleLocation": { +"description": "Represents a Location that is present on Google. This can be a location that has been claimed by the user, someone else, or could be unclaimed.", +"id": "GoogleLocation", +"properties": { +"location": { +"$ref": "Location", +"description": "The sparsely populated Location information. This field can be re-used in CreateLocation if it is not currently claimed by a user." +}, +"name": { +"description": "Resource name of this GoogleLocation, in the format `googleLocations/{googleLocationId}`.", +"type": "string" +}, +"requestAdminRightsUri": { +"description": "A URL that will redirect the user to the request admin rights UI. This field is only present if the location has already been claimed by any user, including the current user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleUpdatedLocation": { +"description": "Represents a location that was modified by Google.", +"id": "GoogleUpdatedLocation", +"properties": { +"diffMask": { +"description": "The fields that Google updated.", +"format": "google-fieldmask", +"type": "string" +}, +"location": { +"$ref": "Location", +"description": "The Google-updated version of this location." +}, +"pendingMask": { +"description": "The fields that have pending edits that haven't yet been pushed to Maps and Search.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Label": { +"description": "Label to be used when displaying the price list, section, or item.", +"id": "Label", +"properties": { +"description": { +"description": "Optional. Description of the price list, section, or item.", +"type": "string" +}, +"displayName": { +"description": "Required. Display name for the price list, section, or item.", +"type": "string" +}, +"languageCode": { +"description": "Optional. The BCP-47 language code that these strings apply for. Only one set of labels may be set per language.", +"type": "string" +} +}, +"type": "object" +}, +"LatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "LatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ListAttributeMetadataResponse": { +"description": "Response for AttributesService.ListAttributeMetadata.", +"id": "ListAttributeMetadataResponse", +"properties": { +"attributeMetadata": { +"description": "A collection of attribute metadata for the available attributes.", +"items": { +"$ref": "AttributeMetadata" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the number of attributes exceeded the requested page size, this field will be populated with a token to fetch the next page of attributes on a subsequent call to `attributes.list`. If there are no more attributes, this field will not be present in the response.", +"type": "string" +} +}, +"type": "object" +}, +"ListCategoriesResponse": { +"description": "Response message for BusinessCategories.ListCategories.", +"id": "ListCategoriesResponse", +"properties": { +"categories": { +"description": "The matching categories based on the requested parameters.", +"items": { +"$ref": "Category" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the number of categories exceeded the requested page size, this field will be populated with a token to fetch the next page of categories on a subsequent call to `ListCategories`.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "Response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "The locations.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If the number of locations exceeded the requested page size, this field is populated with a token to fetch the next page of locations on a subsequent call to `ListLocations`. If there are no more locations, this field is not present in the response.", +"type": "string" +}, +"totalSize": { +"description": "The approximate number of Locations in the list irrespective of pagination. This field will only be returned if `filter` is used as a query parameter.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Location": { +"description": "A location. See the [help center article] (https://support.google.com/business/answer/3038177) for a detailed description of these fields, or the [category endpoint](/my-business/reference/rest/v4/categories) for a list of valid business categories.", +"id": "Location", +"properties": { +"adWordsLocationExtensions": { +"$ref": "AdWordsLocationExtensions", +"description": "Optional. Additional information that is surfaced in AdWords." +}, +"categories": { +"$ref": "Categories", +"description": "Optional. The different categories that describe the business." +}, +"labels": { +"description": "Optional. A collection of free-form strings to allow you to tag your business. These labels are NOT user facing; only you can see them. Must be between 1-255 characters per label.", +"items": { +"type": "string" +}, +"type": "array" +}, +"languageCode": { +"description": "Immutable. The language of the location. Set during creation and not updateable.", +"type": "string" +}, +"latlng": { +"$ref": "LatLng", +"description": "Optional. User-provided latitude and longitude. When creating a location, this field is ignored if the provided address geocodes successfully. This field is only returned on get requests if the user-provided `latlng` value was accepted during create, or the `latlng` value was updated through the Google Business Profile website. This field can only be updated by approved clients." +}, +"metadata": { +"$ref": "Metadata", +"description": "Output only. Additional non-user-editable information.", +"readOnly": true +}, +"moreHours": { +"description": "Optional. More hours for a business's different departments or specific customers.", +"items": { +"$ref": "MoreHours" +}, +"type": "array" +}, +"name": { +"description": "Google identifier for this location in the form: `locations/{location_id}`.", +"type": "string" +}, +"openInfo": { +"$ref": "OpenInfo", +"description": "Optional. A flag that indicates whether the location is currently open for business." +}, +"phoneNumbers": { +"$ref": "PhoneNumbers", +"description": "Optional. The different phone numbers that customers can use to get in touch with the business." +}, +"profile": { +"$ref": "Profile", +"description": "Optional. Describes your business in your own voice and shares with users the unique story of your business and offerings. This field is required for all categories except lodging categories (e.g. hotels, motels, inns)." +}, +"regularHours": { +"$ref": "BusinessHours", +"description": "Optional. Operating hours for the business." +}, +"relationshipData": { +"$ref": "RelationshipData", +"description": "Optional. All locations and chain related to this one." +}, +"serviceArea": { +"$ref": "ServiceAreaBusiness", +"description": "Optional. Service area businesses provide their service at the customer's location. If this business is a service area business, this field describes the area(s) serviced by the business." +}, +"serviceItems": { +"description": "Optional. List of services supported by merchants. A service can be haircut, install water heater, etc. Duplicated service items will be removed automatically.", +"items": { +"$ref": "ServiceItem" +}, +"type": "array" +}, +"specialHours": { +"$ref": "SpecialHours", +"description": "Optional. Special hours for the business. This typically includes holiday hours, and other times outside of regular operating hours. These override regular business hours. This field cannot be set without regular hours." +}, +"storeCode": { +"description": "Optional. External identifier for this location, which must be unique within a given account. This is a means of associating the location with your own records.", +"type": "string" +}, +"storefrontAddress": { +"$ref": "PostalAddress", +"description": "Optional. A precise, accurate address to describe your business location. PO boxes or mailboxes located at remote locations are not acceptable. At this time, you can specify a maximum of five `address_lines` values in the address. This field should only be set for businesses that have a storefront. This field should not be set for locations of type `CUSTOMER_LOCATION_ONLY` but if set, any value provided will be discarded." +}, +"title": { +"description": "Required. Location name should reflect your business's real-world name, as used consistently on your storefront, website, and stationery, and as known to customers. Any additional information, when relevant, can be included in other fields of the resource (for example, `Address`, `Categories`). Don't add unnecessary information to your name (for example, prefer \"Google\" over \"Google Inc. - Mountain View Corporate Headquarters\"). Don't include marketing taglines, store codes, special characters, hours or closed/open status, phone numbers, website URLs, service/product information, location/address or directions, or containment information (for example, \"Chase ATM in Duane Reade\").", +"type": "string" +}, +"websiteUri": { +"description": "Optional. A URL for this business. If possible, use a URL that represents this individual business location instead of a generic website/URL that represents all locations, or the brand.", +"type": "string" +} +}, +"type": "object" +}, +"Metadata": { +"description": "Additional non-user-editable information about the location.", +"id": "Metadata", +"properties": { +"canDelete": { +"description": "Output only. Indicates whether the location can be deleted using the API.", +"readOnly": true, +"type": "boolean" +}, +"canHaveBusinessCalls": { +"description": "Output only. Indicates if the listing is eligible for business calls.", +"readOnly": true, +"type": "boolean" +}, +"canHaveFoodMenus": { +"description": "Output only. Indicates if the listing is eligible for food menu.", +"readOnly": true, +"type": "boolean" +}, +"canModifyServiceList": { +"description": "Output only. Indicates if the listing can modify the service list.", +"readOnly": true, +"type": "boolean" +}, +"canOperateHealthData": { +"description": "Output only. Indicates whether the location can operate on Health data.", +"readOnly": true, +"type": "boolean" +}, +"canOperateLocalPost": { +"description": "Output only. Indicates if the listing can manage local posts.", +"readOnly": true, +"type": "boolean" +}, +"canOperateLodgingData": { +"description": "Output only. Indicates whether the location can operate on Lodging data.", +"readOnly": true, +"type": "boolean" +}, +"duplicateLocation": { +"description": "Output only. The location resource that this location duplicates.", +"readOnly": true, +"type": "string" +}, +"hasGoogleUpdated": { +"description": "Output only. Indicates whether the place ID associated with this location has updates that need to be updated or rejected by the client. If this boolean is set, you should call the `getGoogleUpdated` method to lookup information that's needs to be verified.", +"readOnly": true, +"type": "boolean" +}, +"hasPendingEdits": { +"description": "Output only. Indicates whether any of this Location's properties are in the edit pending state.", +"readOnly": true, +"type": "boolean" +}, +"hasVoiceOfMerchant": { +"description": "Output only. Indicates if the listing has Voice of Merchant. If this boolean is false, you should call the locations.getVoiceOfMerchantState API to get details as to why they do not have Voice of Merchant.", +"readOnly": true, +"type": "boolean" +}, +"mapsUri": { +"description": "Output only. A link to the location on Maps.", +"readOnly": true, +"type": "string" +}, +"newReviewUri": { +"description": "Output only. A link to the page on Google Search where a customer can leave a review for the location.", +"readOnly": true, +"type": "string" +}, +"placeId": { +"description": "Output only. If this locationappears on Google Maps, this field is populated with the place ID for the location. This ID can be used in various Places APIs. This field can be set during Create calls, but not for Update.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MoreHours": { +"description": "The time periods during which a location is open for certain types of business.", +"id": "MoreHours", +"properties": { +"hoursTypeId": { +"description": "Required. Type of hours. Clients should call {#link businessCategories:BatchGet} to get supported hours types for categories of their locations.", +"type": "string" +}, +"periods": { +"description": "Required. A collection of times that this location is open. Each period represents a range of hours when the location is open during the week.", +"items": { +"$ref": "TimePeriod" +}, +"type": "array" +} +}, +"type": "object" +}, +"MoreHoursType": { +"description": "More hours types that a business can offers, in addition to its regular hours.", +"id": "MoreHoursType", +"properties": { +"displayName": { +"description": "Output only. The human-readable English display name for the hours type.", +"readOnly": true, +"type": "string" +}, +"hoursTypeId": { +"description": "Output only. A stable ID provided by Google for this hours type.", +"readOnly": true, +"type": "string" +}, +"localizedDisplayName": { +"description": "Output only. The human-readable localized display name for the hours type.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OpenInfo": { +"description": "Information related to the opening state of the business.", +"id": "OpenInfo", +"properties": { +"canReopen": { +"description": "Output only. Indicates whether this business is eligible for re-open.", +"readOnly": true, +"type": "boolean" +}, +"openingDate": { +"$ref": "Date", +"description": "Optional. The date on which the location first opened. If the exact day is not known, month and year only can be provided. The date must be in the past or be no more than one year in the future." +}, +"status": { +"description": "Required. Indicates whether or not the Location is currently open for business. All locations are open by default, unless updated to be closed.", +"enum": [ +"OPEN_FOR_BUSINESS_UNSPECIFIED", +"OPEN", +"CLOSED_PERMANENTLY", +"CLOSED_TEMPORARILY" +], +"enumDescriptions": [ +"Not specified.", +"Indicates that the location is open.", +"Indicates that the location has been permanently closed.", +"Indicates that the location has been temporarily closed." +], +"type": "string" +} +}, +"type": "object" +}, +"PhoneNumbers": { +"description": "A collection of phone numbers for the business. During updates, both fields must be set. Clients may not update just the primary or additional phone numbers using the update mask. International phone format is preferred, such as \"+1 415 555 0132\", see more in (https://developers.google.com/style/phone-numbers#international-phone-numbers).", +"id": "PhoneNumbers", +"properties": { +"additionalPhones": { +"description": "Optional. Up to two phone numbers (mobile or landline, no fax) at which your business can be called, in addition to your primary phone number.", +"items": { +"type": "string" +}, +"type": "array" +}, +"primaryPhone": { +"description": "Required. A phone number that connects to your individual business location as directly as possible. Use a local phone number instead of a central, call center helpline number whenever possible.", +"type": "string" +} +}, +"type": "object" +}, +"PlaceInfo": { +"description": "Defines an area that's represented by a place ID.", +"id": "PlaceInfo", +"properties": { +"placeId": { +"description": "Required. The ID of the place. Must correspond to a region. (https://developers.google.com/places/web-service/supported_types#table3)", +"type": "string" +}, +"placeName": { +"description": "Required. The localized name of the place. For example, `Scottsdale, AZ`.", +"type": "string" +} +}, +"type": "object" +}, +"Places": { +"description": "Defines the union of areas represented by a set of places.", +"id": "Places", +"properties": { +"placeInfos": { +"description": "The areas represented by place IDs. Limited to a maximum of 20 places.", +"items": { +"$ref": "PlaceInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"PostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "PostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"Profile": { +"description": "All information pertaining to the location's profile.", +"id": "Profile", +"properties": { +"description": { +"description": "Required. Description of the location in your own voice, not editable by anyone else.", +"type": "string" +} +}, +"type": "object" +}, +"RelationshipData": { +"description": "Information of all parent and children locations related to this one.", +"id": "RelationshipData", +"properties": { +"childrenLocations": { +"description": "The list of children locations that this location has relations with.", +"items": { +"$ref": "RelevantLocation" +}, +"type": "array" +}, +"parentChain": { +"description": "The resource name of the Chain that this location is member of. How to find Chain ID", +"type": "string" +}, +"parentLocation": { +"$ref": "RelevantLocation", +"description": "The parent location that this location has relations with." +} +}, +"type": "object" +}, +"RelevantLocation": { +"description": "Information about another location that is related to current one. The relation can be any one of DEPARTMENT_OF or INDEPENDENT_ESTABLISHMENT_OF, and the location specified here can be on either side (parent/child) of the location.", +"id": "RelevantLocation", +"properties": { +"placeId": { +"description": "Required. Specify the location that is on the other side of the relation by its placeID.", +"type": "string" +}, +"relationType": { +"description": "Required. The type of the relationship.", +"enum": [ +"RELATION_TYPE_UNSPECIFIED", +"DEPARTMENT_OF", +"INDEPENDENT_ESTABLISHMENT_IN" +], +"enumDescriptions": [ +"Type unspecified.", +"This represents a relation between 2 locations which share one physical area, same brand/upper management/organization, but with different key attributes like store hours or phone numbers. For example, Costco Pharmacy is a department in Costco Wholesale.", +"This represents the cases where 2 locations are co-located in the same physical location, but from different companies (e.g. Starbucks in a Safeway, shops in a mall)." +], +"type": "string" +} +}, +"type": "object" +}, +"RepeatedEnumAttributeValue": { +"description": "Values for an attribute with a `value_type` of REPEATED_ENUM. This consists of two lists of value IDs: those that are set (true) and those that are unset (false). Values absent are considered unknown. At least one value must be specified.", +"id": "RepeatedEnumAttributeValue", +"properties": { +"setValues": { +"description": "Enum values that are set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"unsetValues": { +"description": "Enum values that are unset.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchChainsResponse": { +"description": "Response message for Locations.SearchChains.", +"id": "SearchChainsResponse", +"properties": { +"chains": { +"description": "Chains that match the queried chain_display_name in SearchChainsRequest. If there are no matches, this field will be empty. Results are listed in order of relevance.", +"items": { +"$ref": "Chain" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchGoogleLocationsRequest": { +"description": "Request message for GoogleLocations.SearchGoogleLocations.", +"id": "SearchGoogleLocationsRequest", +"properties": { +"location": { +"$ref": "Location", +"description": "Location to search for. If provided, will find locations which match the provided location details." +}, +"pageSize": { +"description": "The number of matches to return. The default value is 3, with a maximum of 10. Note that latency may increase if more are requested. There is no pagination.", +"format": "int32", +"type": "integer" +}, +"query": { +"description": "Text query to search for. The search results from a query string will be less accurate than if providing an exact location, but can provide more inexact matches.", +"type": "string" +} +}, +"type": "object" +}, +"SearchGoogleLocationsResponse": { +"description": "Response message for GoogleLocations.SearchGoogleLocations.", +"id": "SearchGoogleLocationsResponse", +"properties": { +"googleLocations": { +"description": "A collection of GoogleLocations that are potential matches to the specified request, listed in order from most to least accuracy.", +"items": { +"$ref": "GoogleLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ServiceAreaBusiness": { +"description": "Service area businesses provide their service at the customer's location (for example, a locksmith or plumber).", +"id": "ServiceAreaBusiness", +"properties": { +"businessType": { +"description": "Required. Indicates the type of the service area business.", +"enum": [ +"BUSINESS_TYPE_UNSPECIFIED", +"CUSTOMER_LOCATION_ONLY", +"CUSTOMER_AND_BUSINESS_LOCATION" +], +"enumDescriptions": [ +"Output only. Not specified.", +"Offers service only in the surrounding area (not at the business address). If a business is being updated from a CUSTOMER_AND_BUSINESS_LOCATION to a CUSTOMER_LOCATION_ONLY, the location update must include field mask `storefront_address` and set the field to empty.", +"Offers service at the business address and the surrounding area." +], +"type": "string" +}, +"places": { +"$ref": "Places", +"description": "The area that this business serves defined through a set of places." +}, +"regionCode": { +"description": "Immutable. CLDR region code of the country/region that this service area business is based in. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland. This field is required for CUSTOMER_LOCATION_ONLY businesses, and is ignored otherwise. The region specified here can be different from regions for the areas that this business serves (e.g. service area businesses that provide services in regions other than the one that they are based in). If this location requires verification after creation, the address provided for verification purposes *must* be located within this region, and the business owner or their authorized representative *must* be able to receive postal mail at the provided verification address.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceItem": { +"description": "A message that describes a single service item. It is used to describe the type of service that the merchant provides. For example, haircut can be a service.", +"id": "ServiceItem", +"properties": { +"freeFormServiceItem": { +"$ref": "FreeFormServiceItem", +"description": "Optional. This field will be set case of free-form services data." +}, +"price": { +"$ref": "Money", +"description": "Optional. Represents the monetary price of the service item. We recommend that currency_code and units should be set when including a price. This will be treated as a fixed price for the service item." +}, +"structuredServiceItem": { +"$ref": "StructuredServiceItem", +"description": "Optional. This field will be set case of structured services data." +} +}, +"type": "object" +}, +"ServiceType": { +"description": "A message describing a service type that the business offers.", +"id": "ServiceType", +"properties": { +"displayName": { +"description": "Output only. The human-readable display name for the service type.", +"readOnly": true, +"type": "string" +}, +"serviceTypeId": { +"description": "Output only. A stable ID (provided by Google) for this service type.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SpecialHourPeriod": { +"description": "Represents a single time period when a location's operational hours differ from its normal business hours. A special hour period must represent a range of less than 24 hours. The `open_time` and `start_date` must predate the `close_time` and `end_date`. The `close_time` and `end_date` can extend to 11:59 a.m. on the day after the specified `start_date`. For example, the following inputs are valid: start_date=2015-11-23, open_time=08:00, close_time=18:00 start_date=2015-11-23, end_date=2015-11-23, open_time=08:00, close_time=18:00 start_date=2015-11-23, end_date=2015-11-24, open_time=13:00, close_time=11:59 The following inputs are not valid: start_date=2015-11-23, open_time=13:00, close_time=11:59 start_date=2015-11-23, end_date=2015-11-24, open_time=13:00, close_time=12:00 start_date=2015-11-23, end_date=2015-11-25, open_time=08:00, close_time=18:00", +"id": "SpecialHourPeriod", +"properties": { +"closeTime": { +"$ref": "TimeOfDay", +"description": "Optional. Valid values are 00:00-24:00, where 24:00 represents midnight at the end of the specified day field. Must be specified if `closed` is false." +}, +"closed": { +"description": "Optional. If true, `end_date`, `open_time`, and `close_time` are ignored, and the date specified in `start_date` is treated as the location being closed for the entire day.", +"type": "boolean" +}, +"endDate": { +"$ref": "Date", +"description": "Optional. The calendar date this special hour period ends on. If `end_date` field is not set, default to the date specified in `start_date`. If set, this field must be equal to or at most 1 day after `start_date`." +}, +"openTime": { +"$ref": "TimeOfDay", +"description": "Optional. Valid values are 00:00-24:00 where 24:00 represents midnight at the end of the specified day field. Must be specified if `closed` is false." +}, +"startDate": { +"$ref": "Date", +"description": "Required. The calendar date this special hour period starts on." +} +}, +"type": "object" +}, +"SpecialHours": { +"description": "Represents a set of time periods when a location's operational hours differ from its normal business hours.", +"id": "SpecialHours", +"properties": { +"specialHourPeriods": { +"description": "Required. A list of exceptions to the business's regular hours.", +"items": { +"$ref": "SpecialHourPeriod" +}, +"type": "array" +} +}, +"type": "object" +}, +"StructuredServiceItem": { +"description": "Represents a structured service offered by the merchant. For eg: toilet_installation.", +"id": "StructuredServiceItem", +"properties": { +"description": { +"description": "Optional. Description of structured service item. The character limit is 300.", +"type": "string" +}, +"serviceTypeId": { +"description": "Required. The `service_type_id` field is a Google provided unique ID that can be found in `ServiceType`. This information is provided by `BatchGetCategories` rpc service.", +"type": "string" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimePeriod": { +"description": "Represents a span of time that the business is open, starting on the specified open day/time and closing on the specified close day/time. The closing time must occur after the opening time, for example later in the same day, or on a subsequent day.", +"id": "TimePeriod", +"properties": { +"closeDay": { +"description": "Required. Indicates the day of the week this period ends on.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"closeTime": { +"$ref": "TimeOfDay", +"description": "Required. Valid values are 00:00-24:00, where 24:00 represents midnight at the end of the specified day field." +}, +"openDay": { +"description": "Required. Indicates the day of the week this period starts on.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"openTime": { +"$ref": "TimeOfDay", +"description": "Required. Valid values are 00:00-24:00, where 24:00 represents midnight at the end of the specified day field." +} +}, +"type": "object" +}, +"UriAttributeValue": { +"description": "Values for an attribute with a `value_type` of URL.", +"id": "UriAttributeValue", +"properties": { +"uri": { +"description": "Required. The proposed URI value for this attribute.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "My Business Business Information API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networksecurity.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networksecurity.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..e5af8c5891f70253b249dbab2d0293af8e5b8bae --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networksecurity.v1beta1.json @@ -0,0 +1,7819 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://networksecurity.googleapis.com/", +"batchPath": "batch", +"canonicalName": "NetworkSecurity", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/networking", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "networksecurity:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://networksecurity.mtls.googleapis.com/", +"name": "networksecurity", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"resources": { +"addressGroups": { +"methods": { +"addItems": { +"description": "Adds items to an address group.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:addItems", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.addressGroups.addItems", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to add items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:addItems", +"request": { +"$ref": "AddAddressGroupItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"cloneItems": { +"description": "Clones items from one address group to another.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:cloneItems", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.addressGroups.cloneItems", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:cloneItems", +"request": { +"$ref": "CloneAddressGroupItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new address group in a given project and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.addressGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"addressGroupId": { +"description": "Required. Short name of the AddressGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the AddressGroup. Must be in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/addressGroups", +"request": { +"$ref": "AddressGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an address group.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.organizations.locations.addressGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the AddressGroup to delete. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single address group.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.addressGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the AddressGroup to get. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "AddressGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists address groups in a given project and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.addressGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of AddressGroups to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAddressGroupsResponse` Indicates that this is a continuation of a prior `ListAddressGroups` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the AddressGroups should be listed, specified in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/addressGroups", +"response": { +"$ref": "ListAddressGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listReferences": { +"description": "Lists references of an address group.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:listReferences", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.addressGroups.listReferences", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of references to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more AddressGroupUsers left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:listReferences", +"response": { +"$ref": "ListAddressGroupReferencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates parameters of an address group.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.organizations.locations.addressGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the AddressGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "AddressGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeItems": { +"description": "Removes items from an address group.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:removeItems", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.addressGroups.removeItems", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to remove items from. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:removeItems", +"request": { +"$ref": "RemoveAddressGroupItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"firewallEndpoints": { +"methods": { +"create": { +"description": "Creates a new FirewallEndpoint in a given project and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.firewallEndpoints.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"firewallEndpointId": { +"description": "Required. Id of the requesting object. If auto-generating Id server-side, remove this field and firewall_endpoint_id from the method_signature of Create RPC.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/firewallEndpoints", +"request": { +"$ref": "FirewallEndpoint" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Endpoint.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", +"httpMethod": "DELETE", +"id": "networksecurity.organizations.locations.firewallEndpoints.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Endpoint.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.firewallEndpoints.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "FirewallEndpoint" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists FirewallEndpoints in a given project and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.firewallEndpoints.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListEndpointsRequest", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/firewallEndpoints", +"response": { +"$ref": "ListFirewallEndpointsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a single Endpoint.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", +"httpMethod": "PATCH", +"id": "networksecurity.organizations.locations.firewallEndpoints.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. name of resource", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Endpoint resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "FirewallEndpoint" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "networksecurity.organizations.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityProfileGroups": { +"methods": { +"create": { +"description": "Creates a new SecurityProfileGroup in a given organization and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.securityProfileGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the SecurityProfileGroup. Must be in the format `projects|organizations/*/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"securityProfileGroupId": { +"description": "Required. Short name of the SecurityProfileGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"security_profile_group1\".", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/securityProfileGroups", +"request": { +"$ref": "SecurityProfileGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single SecurityProfileGroup.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.organizations.locations.securityProfileGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If client provided etag is out of date, delete will return FAILED_PRECONDITION error.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. A name of the SecurityProfileGroup to delete. Must be in the format `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single SecurityProfileGroup.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.securityProfileGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the SecurityProfileGroup to get. Must be in the format `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "SecurityProfileGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SecurityProfileGroups in a given organization and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.securityProfileGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of SecurityProfileGroups to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListSecurityProfileGroupsResponse` Indicates that this is a continuation of a prior `ListSecurityProfileGroups` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project or organization and location from which the SecurityProfileGroups should be listed, specified in the format `projects|organizations/*/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/securityProfileGroups", +"response": { +"$ref": "ListSecurityProfileGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single SecurityProfileGroup.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.organizations.locations.securityProfileGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. Name of the SecurityProfileGroup resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the SecurityProfileGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "SecurityProfileGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityProfiles": { +"methods": { +"create": { +"description": "Creates a new SecurityProfile in a given organization and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles", +"httpMethod": "POST", +"id": "networksecurity.organizations.locations.securityProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the SecurityProfile. Must be in the format `projects|organizations/*/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"securityProfileId": { +"description": "Required. Short name of the SecurityProfile resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"security_profile1\".", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/securityProfiles", +"request": { +"$ref": "SecurityProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single SecurityProfile.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", +"httpMethod": "DELETE", +"id": "networksecurity.organizations.locations.securityProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If client provided etag is out of date, delete will return FAILED_PRECONDITION error.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. A name of the SecurityProfile to delete. Must be in the format `projects|organizations/*/locations/{location}/securityProfiles/{security_profile_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single SecurityProfile.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.securityProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the SecurityProfile to get. Must be in the format `projects|organizations/*/locations/{location}/securityProfiles/{security_profile_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "SecurityProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SecurityProfiles in a given organization and location.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles", +"httpMethod": "GET", +"id": "networksecurity.organizations.locations.securityProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of SecurityProfiles to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListSecurityProfilesResponse` Indicates that this is a continuation of a prior `ListSecurityProfiles` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project or organization and location from which the SecurityProfiles should be listed, specified in the format `projects|organizations/*/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/securityProfiles", +"response": { +"$ref": "ListSecurityProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single SecurityProfile.", +"flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", +"httpMethod": "PATCH", +"id": "networksecurity.organizations.locations.securityProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. Name of the SecurityProfile resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfiles/{security_profile}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the SecurityProfile resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "SecurityProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"addressGroups": { +"methods": { +"addItems": { +"description": "Adds items to an address group.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:addItems", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.addressGroups.addItems", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to add items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:addItems", +"request": { +"$ref": "AddAddressGroupItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"cloneItems": { +"description": "Clones items from one address group to another.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:cloneItems", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.addressGroups.cloneItems", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:cloneItems", +"request": { +"$ref": "CloneAddressGroupItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new address group in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.addressGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"addressGroupId": { +"description": "Required. Short name of the AddressGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the AddressGroup. Must be in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/addressGroups", +"request": { +"$ref": "AddressGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single address group.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.addressGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the AddressGroup to delete. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single address group.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.addressGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the AddressGroup to get. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "AddressGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:getIamPolicy", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.addressGroups.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists address groups in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.addressGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of AddressGroups to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAddressGroupsResponse` Indicates that this is a continuation of a prior `ListAddressGroups` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the AddressGroups should be listed, specified in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/addressGroups", +"response": { +"$ref": "ListAddressGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listReferences": { +"description": "Lists references of an address group.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:listReferences", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.addressGroups.listReferences", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of references to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more AddressGroupUsers left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:listReferences", +"response": { +"$ref": "ListAddressGroupReferencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single address group.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.addressGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the AddressGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "AddressGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeItems": { +"description": "Removes items from an address group.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:removeItems", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.addressGroups.removeItems", +"parameterOrder": [ +"addressGroup" +], +"parameters": { +"addressGroup": { +"description": "Required. A name of the AddressGroup to remove items from. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+addressGroup}:removeItems", +"request": { +"$ref": "RemoveAddressGroupItemsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:setIamPolicy", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.addressGroups.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:testIamPermissions", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.addressGroups.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"authorizationPolicies": { +"methods": { +"create": { +"description": "Creates a new AuthorizationPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.authorizationPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"authorizationPolicyId": { +"description": "Required. Short name of the AuthorizationPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the AuthorizationPolicy. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/authorizationPolicies", +"request": { +"$ref": "AuthorizationPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single AuthorizationPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies/{authorizationPoliciesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.authorizationPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the AuthorizationPolicy to delete. Must be in the format `projects/{project}/locations/{location}/authorizationPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authorizationPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single AuthorizationPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies/{authorizationPoliciesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.authorizationPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the AuthorizationPolicy to get. Must be in the format `projects/{project}/locations/{location}/authorizationPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authorizationPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "AuthorizationPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies/{authorizationPoliciesId}:getIamPolicy", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.authorizationPolicies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authorizationPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists AuthorizationPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.authorizationPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of AuthorizationPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAuthorizationPoliciesResponse` Indicates that this is a continuation of a prior `ListAuthorizationPolicies` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the AuthorizationPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/authorizationPolicies", +"response": { +"$ref": "ListAuthorizationPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single AuthorizationPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies/{authorizationPoliciesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.authorizationPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authorizationPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the AuthorizationPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "AuthorizationPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies/{authorizationPoliciesId}:setIamPolicy", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.authorizationPolicies.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authorizationPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authorizationPolicies/{authorizationPoliciesId}:testIamPermissions", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.authorizationPolicies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authorizationPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"authzPolicies": { +"methods": { +"create": { +"description": "Creates a new AuthzPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.authzPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"authzPolicyId": { +"description": "Required. User-provided ID of the `AuthzPolicy` resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the `AuthzPolicy` resource. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/authzPolicies", +"request": { +"$ref": "AuthzPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single AuthzPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.authzPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `AuthzPolicy` resource to delete. Must be in the format `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single AuthzPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.authzPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `AuthzPolicy` resource to get. Must be in the format `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "AuthzPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}:getIamPolicy", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.authzPolicies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists AuthzPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.authzPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results that the server returns.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the `AuthzPolicy` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/authzPolicies", +"response": { +"$ref": "ListAuthzPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single AuthzPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.authzPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. Name of the `AuthzPolicy` resource in the following format: `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Used to specify the fields to be overwritten in the `AuthzPolicy` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "AuthzPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}:setIamPolicy", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.authzPolicies.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}:testIamPermissions", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.authzPolicies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"clientTlsPolicies": { +"methods": { +"create": { +"description": "Creates a new ClientTlsPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.clientTlsPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"clientTlsPolicyId": { +"description": "Required. Short name of the ClientTlsPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"client_mtls_policy\".", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the ClientTlsPolicy. Must be in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/clientTlsPolicies", +"request": { +"$ref": "ClientTlsPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ClientTlsPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies/{clientTlsPoliciesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.clientTlsPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ClientTlsPolicy to delete. Must be in the format `projects/*/locations/{location}/clientTlsPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single ClientTlsPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies/{clientTlsPoliciesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.clientTlsPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ClientTlsPolicy to get. Must be in the format `projects/*/locations/{location}/clientTlsPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ClientTlsPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies/{clientTlsPoliciesId}:getIamPolicy", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.clientTlsPolicies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ClientTlsPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.clientTlsPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of ClientTlsPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListClientTlsPoliciesResponse` Indicates that this is a continuation of a prior `ListClientTlsPolicies` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the ClientTlsPolicies should be listed, specified in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/clientTlsPolicies", +"response": { +"$ref": "ListClientTlsPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single ClientTlsPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies/{clientTlsPoliciesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.clientTlsPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientTlsPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the ClientTlsPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ClientTlsPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies/{clientTlsPoliciesId}:setIamPolicy", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.clientTlsPolicies.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clientTlsPolicies/{clientTlsPoliciesId}:testIamPermissions", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.clientTlsPolicies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clientTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"firewallEndpointAssociations": { +"methods": { +"create": { +"description": "Creates a new FirewallEndpointAssociation in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.firewallEndpointAssociations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"firewallEndpointAssociationId": { +"description": "Optional. Id of the requesting object. If auto-generating Id server-side, remove this field and firewall_endpoint_association_id from the method_signature of Create RPC.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/firewallEndpointAssociations", +"request": { +"$ref": "FirewallEndpointAssociation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single FirewallEndpointAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.firewallEndpointAssociations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single FirewallEndpointAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.firewallEndpointAssociations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "FirewallEndpointAssociation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Associations in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.firewallEndpointAssociations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListAssociationsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/firewallEndpointAssociations", +"response": { +"$ref": "ListFirewallEndpointAssociationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a single FirewallEndpointAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.firewallEndpointAssociations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. name of resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Association resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "FirewallEndpointAssociation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"gatewaySecurityPolicies": { +"methods": { +"create": { +"description": "Creates a new GatewaySecurityPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"gatewaySecurityPolicyId": { +"description": "Required. Short name of the GatewaySecurityPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"gateway_security_policy1\".", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the GatewaySecurityPolicy. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/gatewaySecurityPolicies", +"request": { +"$ref": "GatewaySecurityPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single GatewaySecurityPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the GatewaySecurityPolicy to delete. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single GatewaySecurityPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the GatewaySecurityPolicy to get. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GatewaySecurityPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists GatewaySecurityPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of GatewaySecurityPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last 'ListGatewaySecurityPoliciesResponse' Indicates that this is a continuation of a prior 'ListGatewaySecurityPolicies' call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the GatewaySecurityPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/gatewaySecurityPolicies", +"response": { +"$ref": "ListGatewaySecurityPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single GatewaySecurityPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy} gateway_security_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the GatewaySecurityPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "GatewaySecurityPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"rules": { +"methods": { +"create": { +"description": "Creates a new GatewaySecurityPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"gatewaySecurityPolicyRuleId": { +"description": "The ID to use for the rule, which will become the final component of the rule's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent where this rule will be created. Format : projects/{project}/location/{location}/gatewaySecurityPolicies/*", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/rules", +"request": { +"$ref": "GatewaySecurityPolicyRule" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single GatewaySecurityPolicyRule.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the GatewaySecurityPolicyRule to delete. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/{gatewaySecurityPolicy}/rules/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single GatewaySecurityPolicyRule.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the GatewaySecurityPolicyRule to retrieve. Format: projects/{project}/location/{location}/gatewaySecurityPolicies/*/rules/*", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GatewaySecurityPolicyRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists GatewaySecurityPolicyRules in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of GatewaySecurityPolicyRules to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last 'ListGatewaySecurityPolicyRulesResponse' Indicates that this is a continuation of a prior 'ListGatewaySecurityPolicyRules' call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project, location and GatewaySecurityPolicy from which the GatewaySecurityPolicyRules should be listed, specified in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/{gatewaySecurityPolicy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/rules", +"response": { +"$ref": "ListGatewaySecurityPolicyRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single GatewaySecurityPolicyRule.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the GatewaySecurityPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "GatewaySecurityPolicyRule" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"interceptDeploymentGroups": { +"methods": { +"create": { +"description": "Creates a new InterceptDeploymentGroup in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeploymentGroups", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.interceptDeploymentGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"interceptDeploymentGroupId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and intercept_deployment_group_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptDeploymentGroups", +"request": { +"$ref": "InterceptDeploymentGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single InterceptDeploymentGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeploymentGroups/{interceptDeploymentGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.interceptDeploymentGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptDeploymentGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single InterceptDeploymentGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeploymentGroups/{interceptDeploymentGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptDeploymentGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptDeploymentGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "InterceptDeploymentGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InterceptDeploymentGroups in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeploymentGroups", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptDeploymentGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListInterceptDeploymentGroupsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptDeploymentGroups", +"response": { +"$ref": "ListInterceptDeploymentGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single InterceptDeploymentGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeploymentGroups/{interceptDeploymentGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.interceptDeploymentGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. Then name of the InterceptDeploymentGroup.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptDeploymentGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the InterceptDeploymentGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "InterceptDeploymentGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"interceptDeployments": { +"methods": { +"create": { +"description": "Creates a new InterceptDeployment in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeployments", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.interceptDeployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"interceptDeploymentId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and intercept_deployment_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptDeployments", +"request": { +"$ref": "InterceptDeployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single InterceptDeployment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeployments/{interceptDeploymentsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.interceptDeployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single InterceptDeployment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeployments/{interceptDeploymentsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptDeployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "InterceptDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InterceptDeployments in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeployments", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptDeployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListInterceptDeploymentsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptDeployments", +"response": { +"$ref": "ListInterceptDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single InterceptDeployment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptDeployments/{interceptDeploymentsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.interceptDeployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The name of the InterceptDeployment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the InterceptDeployment resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "InterceptDeployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"interceptEndpointGroupAssociations": { +"methods": { +"create": { +"description": "Creates a new InterceptEndpointGroupAssociation in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroupAssociations", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.interceptEndpointGroupAssociations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"interceptEndpointGroupAssociationId": { +"description": "Optional. Id of the requesting object If auto-generating Id server-side, remove this field and intercept_endpoint_group_association_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptEndpointGroupAssociations", +"request": { +"$ref": "InterceptEndpointGroupAssociation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single InterceptEndpointGroupAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroupAssociations/{interceptEndpointGroupAssociationsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.interceptEndpointGroupAssociations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptEndpointGroupAssociations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single InterceptEndpointGroupAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroupAssociations/{interceptEndpointGroupAssociationsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptEndpointGroupAssociations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptEndpointGroupAssociations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "InterceptEndpointGroupAssociation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InterceptEndpointGroupAssociations in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroupAssociations", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptEndpointGroupAssociations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListInterceptEndpointGroupAssociationsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptEndpointGroupAssociations", +"response": { +"$ref": "ListInterceptEndpointGroupAssociationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single InterceptEndpointGroupAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroupAssociations/{interceptEndpointGroupAssociationsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.interceptEndpointGroupAssociations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The name of the InterceptEndpointGroupAssociation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptEndpointGroupAssociations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the InterceptEndpointGroupAssociation resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "InterceptEndpointGroupAssociation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"interceptEndpointGroups": { +"methods": { +"create": { +"description": "Creates a new InterceptEndpointGroup in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroups", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.interceptEndpointGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"interceptEndpointGroupId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and intercept_endpoint_group_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptEndpointGroups", +"request": { +"$ref": "InterceptEndpointGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single InterceptEndpointGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroups/{interceptEndpointGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.interceptEndpointGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptEndpointGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single InterceptEndpointGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroups/{interceptEndpointGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptEndpointGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptEndpointGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "InterceptEndpointGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists InterceptEndpointGroups in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroups", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.interceptEndpointGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListInterceptEndpointGroupsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/interceptEndpointGroups", +"response": { +"$ref": "ListInterceptEndpointGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single InterceptEndpointGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/interceptEndpointGroups/{interceptEndpointGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.interceptEndpointGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The name of the InterceptEndpointGroup.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/interceptEndpointGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the InterceptEndpointGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "InterceptEndpointGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"mirroringDeploymentGroups": { +"methods": { +"create": { +"description": "Creates a new MirroringDeploymentGroup in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeploymentGroups", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.mirroringDeploymentGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"mirroringDeploymentGroupId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and mirroring_deployment_group_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringDeploymentGroups", +"request": { +"$ref": "MirroringDeploymentGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single MirroringDeploymentGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeploymentGroups/{mirroringDeploymentGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.mirroringDeploymentGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringDeploymentGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single MirroringDeploymentGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeploymentGroups/{mirroringDeploymentGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringDeploymentGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringDeploymentGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "MirroringDeploymentGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists MirroringDeploymentGroups in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeploymentGroups", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringDeploymentGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListMirroringDeploymentGroupsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringDeploymentGroups", +"response": { +"$ref": "ListMirroringDeploymentGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single MirroringDeploymentGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeploymentGroups/{mirroringDeploymentGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.mirroringDeploymentGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. Then name of the MirroringDeploymentGroup.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringDeploymentGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the MirroringDeploymentGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "MirroringDeploymentGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"mirroringDeployments": { +"methods": { +"create": { +"description": "Creates a new MirroringDeployment in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeployments", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.mirroringDeployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"mirroringDeploymentId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and mirroring_deployment_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringDeployments", +"request": { +"$ref": "MirroringDeployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single MirroringDeployment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeployments/{mirroringDeploymentsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.mirroringDeployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single MirroringDeployment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeployments/{mirroringDeploymentsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringDeployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "MirroringDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists MirroringDeployments in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeployments", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringDeployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListMirroringDeploymentsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringDeployments", +"response": { +"$ref": "ListMirroringDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single MirroringDeployment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringDeployments/{mirroringDeploymentsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.mirroringDeployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The name of the MirroringDeployment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the MirroringDeployment resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "MirroringDeployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"mirroringEndpointGroupAssociations": { +"methods": { +"create": { +"description": "Creates a new MirroringEndpointGroupAssociation in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroupAssociations", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.mirroringEndpointGroupAssociations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"mirroringEndpointGroupAssociationId": { +"description": "Optional. Id of the requesting object If auto-generating Id server-side, remove this field and mirroring_endpoint_group_association_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringEndpointGroupAssociations", +"request": { +"$ref": "MirroringEndpointGroupAssociation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single MirroringEndpointGroupAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroupAssociations/{mirroringEndpointGroupAssociationsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.mirroringEndpointGroupAssociations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroupAssociations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single MirroringEndpointGroupAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroupAssociations/{mirroringEndpointGroupAssociationsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringEndpointGroupAssociations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroupAssociations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "MirroringEndpointGroupAssociation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists MirroringEndpointGroupAssociations in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroupAssociations", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringEndpointGroupAssociations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListMirroringEndpointGroupAssociationsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringEndpointGroupAssociations", +"response": { +"$ref": "ListMirroringEndpointGroupAssociationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single MirroringEndpointGroupAssociation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroupAssociations/{mirroringEndpointGroupAssociationsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.mirroringEndpointGroupAssociations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The name of the MirroringEndpointGroupAssociation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroupAssociations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the MirroringEndpointGroupAssociation resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "MirroringEndpointGroupAssociation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"mirroringEndpointGroups": { +"methods": { +"create": { +"description": "Creates a new MirroringEndpointGroup in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroups", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.mirroringEndpointGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"mirroringEndpointGroupId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and mirroring_endpoint_group_id from the method_signature of Create RPC", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringEndpointGroups", +"request": { +"$ref": "MirroringEndpointGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single MirroringEndpointGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroups/{mirroringEndpointGroupsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.mirroringEndpointGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single MirroringEndpointGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroups/{mirroringEndpointGroupsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringEndpointGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "MirroringEndpointGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists MirroringEndpointGroups in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroups", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.mirroringEndpointGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListMirroringEndpointGroupsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/mirroringEndpointGroups", +"response": { +"$ref": "ListMirroringEndpointGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single MirroringEndpointGroup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/mirroringEndpointGroups/{mirroringEndpointGroupsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.mirroringEndpointGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. Next ID: 11 The name of the MirroringEndpointGroup.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the MirroringEndpointGroup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "MirroringEndpointGroup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"serverTlsPolicies": { +"methods": { +"create": { +"description": "Creates a new ServerTlsPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.serverTlsPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the ServerTlsPolicy. Must be in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"serverTlsPolicyId": { +"description": "Required. Short name of the ServerTlsPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"server_mtls_policy\".", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/serverTlsPolicies", +"request": { +"$ref": "ServerTlsPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ServerTlsPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies/{serverTlsPoliciesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.serverTlsPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ServerTlsPolicy to delete. Must be in the format `projects/*/locations/{location}/serverTlsPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serverTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single ServerTlsPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies/{serverTlsPoliciesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.serverTlsPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ServerTlsPolicy to get. Must be in the format `projects/*/locations/{location}/serverTlsPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serverTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ServerTlsPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies/{serverTlsPoliciesId}:getIamPolicy", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.serverTlsPolicies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serverTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ServerTlsPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.serverTlsPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of ServerTlsPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListServerTlsPoliciesResponse` Indicates that this is a continuation of a prior `ListServerTlsPolicies` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the ServerTlsPolicies should be listed, specified in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/serverTlsPolicies", +"response": { +"$ref": "ListServerTlsPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single ServerTlsPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies/{serverTlsPoliciesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.serverTlsPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serverTlsPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the ServerTlsPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ServerTlsPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies/{serverTlsPoliciesId}:setIamPolicy", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.serverTlsPolicies.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serverTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverTlsPolicies/{serverTlsPoliciesId}:testIamPermissions", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.serverTlsPolicies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serverTlsPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tlsInspectionPolicies": { +"methods": { +"create": { +"description": "Creates a new TlsInspectionPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.tlsInspectionPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the TlsInspectionPolicy. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"tlsInspectionPolicyId": { +"description": "Required. Short name of the TlsInspectionPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"tls_inspection_policy1\".", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tlsInspectionPolicies", +"request": { +"$ref": "TlsInspectionPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single TlsInspectionPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.tlsInspectionPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If set to true, any rules for this TlsInspectionPolicy will also be deleted. (Otherwise, the request will only work if the TlsInspectionPolicy has no rules.)", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. A name of the TlsInspectionPolicy to delete. Must be in the format `projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single TlsInspectionPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.tlsInspectionPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the TlsInspectionPolicy to get. Must be in the format `projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "TlsInspectionPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists TlsInspectionPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.tlsInspectionPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of TlsInspectionPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last 'ListTlsInspectionPoliciesResponse' Indicates that this is a continuation of a prior 'ListTlsInspectionPolicies' call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the TlsInspectionPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tlsInspectionPolicies", +"response": { +"$ref": "ListTlsInspectionPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single TlsInspectionPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.tlsInspectionPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy} tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the TlsInspectionPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "TlsInspectionPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"urlLists": { +"methods": { +"create": { +"description": "Creates a new UrlList in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists", +"httpMethod": "POST", +"id": "networksecurity.projects.locations.urlLists.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the UrlList. Must be in the format `projects/*/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"urlListId": { +"description": "Required. Short name of the UrlList resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"url_list\".", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/urlLists", +"request": { +"$ref": "UrlList" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single UrlList.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", +"httpMethod": "DELETE", +"id": "networksecurity.projects.locations.urlLists.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the UrlList to delete. Must be in the format `projects/*/locations/{location}/urlLists/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single UrlList.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.urlLists.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the UrlList to get. Must be in the format `projects/*/locations/{location}/urlLists/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "UrlList" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists UrlLists in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists", +"httpMethod": "GET", +"id": "networksecurity.projects.locations.urlLists.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of UrlLists to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListUrlListsResponse` Indicates that this is a continuation of a prior `ListUrlLists` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the UrlLists should be listed, specified in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/urlLists", +"response": { +"$ref": "ListUrlListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single UrlList.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", +"httpMethod": "PATCH", +"id": "networksecurity.projects.locations.urlLists.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource provided by the user. Name is of the form projects/{project}/locations/{location}/urlLists/{url_list} url_list should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the UrlList resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "UrlList" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250101", +"rootUrl": "https://networksecurity.googleapis.com/", +"schemas": { +"AddAddressGroupItemsRequest": { +"description": "Request used by the AddAddressGroupItems method.", +"id": "AddAddressGroupItemsRequest", +"properties": { +"items": { +"description": "Required. List of items to add.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"AddressGroup": { +"description": "AddressGroup is a resource that specifies how a collection of IP/DNS used in Firewall Policy.", +"id": "AddressGroup", +"properties": { +"capacity": { +"description": "Required. Capacity of the Address Group", +"format": "int32", +"type": "integer" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"items": { +"description": "Optional. List of items.", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the AddressGroup resource.", +"type": "object" +}, +"name": { +"description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", +"type": "string" +}, +"purpose": { +"description": "Optional. List of supported purposes of the Address Group.", +"items": { +"enum": [ +"PURPOSE_UNSPECIFIED", +"DEFAULT", +"CLOUD_ARMOR" +], +"enumDescriptions": [ +"Default value. Should never happen.", +"Address Group is distributed to VMC, and is usable in Firewall Policies and other systems that rely on VMC.", +"Address Group is usable in Cloud Armor." +], +"type": "string" +}, +"type": "array" +}, +"selfLink": { +"description": "Output only. Server-defined fully-qualified URL for this resource.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of the Address Group. Possible values are \"IPv4\" or \"IPV6\".", +"enum": [ +"TYPE_UNSPECIFIED", +"IPV4", +"IPV6" +], +"enumDescriptions": [ +"Default value.", +"IP v4 ranges.", +"IP v6 ranges." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AuthorizationPolicy": { +"description": "AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it's attached to a target https proxy or endpoint config selector resource.", +"id": "AuthorizationPolicy", +"properties": { +"action": { +"description": "Required. The action to take when a rule match is found. Possible values are \"ALLOW\" or \"DENY\".", +"enum": [ +"ACTION_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Default value.", +"Grant access.", +"Deny access. Deny rules should be avoided unless they are used to provide a default \"deny all\" fallback." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the AuthorizationPolicy resource.", +"type": "object" +}, +"name": { +"description": "Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`.", +"type": "string" +}, +"rules": { +"description": "Optional. List of rules to match. Note that at least one of the rules must match in order for the action specified in the 'action' field to be taken. A rule is a match if there is a matching source and destination. If left blank, the action specified in the `action` field will be applied on every request.", +"items": { +"$ref": "Rule" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AuthzPolicy": { +"description": "`AuthzPolicy` is a resource that allows to forward traffic to a callout backend designed to scan the traffic for security purposes.", +"id": "AuthzPolicy", +"properties": { +"action": { +"description": "Required. Can be one of `ALLOW`, `DENY`, `CUSTOM`. When the action is `CUSTOM`, `customProvider` must be specified. When the action is `ALLOW`, only requests matching the policy will be allowed. When the action is `DENY`, only requests matching the policy will be denied. When a request arrives, the policies are evaluated in the following order: 1. If there is a `CUSTOM` policy that matches the request, the `CUSTOM` policy is evaluated using the custom authorization providers and the request is denied if the provider rejects the request. 2. If there are any `DENY` policies that match the request, the request is denied. 3. If there are no `ALLOW` policies for the resource or if any of the `ALLOW` policies match the request, the request is allowed. 4. Else the request is denied by default if none of the configured AuthzPolicies with `ALLOW` action match the request.", +"enum": [ +"AUTHZ_ACTION_UNSPECIFIED", +"ALLOW", +"DENY", +"CUSTOM" +], +"enumDescriptions": [ +"Unspecified action.", +"Allow request to pass through to the backend.", +"Deny the request and return a HTTP 404 to the client.", +"Delegate the authorization decision to an external authorization engine." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customProvider": { +"$ref": "AuthzPolicyCustomProvider", +"description": "Optional. Required if the action is `CUSTOM`. Allows delegating authorization decisions to Cloud IAP or to Service Extensions. One of `cloudIap` or `authzExtension` must be specified." +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"httpRules": { +"description": "Optional. A list of authorization HTTP rules to match against the incoming request. A policy match occurs when at least one HTTP rule matches the request or when no HTTP rules are specified in the policy. At least one HTTP Rule is required for Allow or Deny Action. Limited to 5 rules.", +"items": { +"$ref": "AuthzPolicyAuthzRule" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `AuthzPolicy` resource. The format must comply with [the following requirements](/compute/docs/labeling-resources#requirements).", +"type": "object" +}, +"name": { +"description": "Required. Identifier. Name of the `AuthzPolicy` resource in the following format: `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", +"type": "string" +}, +"target": { +"$ref": "AuthzPolicyTarget", +"description": "Required. Specifies the set of resources to which this policy should be applied to." +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRule": { +"description": "Conditions to match against the incoming request.", +"id": "AuthzPolicyAuthzRule", +"properties": { +"from": { +"$ref": "AuthzPolicyAuthzRuleFrom", +"description": "Optional. Describes properties of a source of a request." +}, +"to": { +"$ref": "AuthzPolicyAuthzRuleTo", +"description": "Optional. Describes properties of a target of a request." +}, +"when": { +"description": "Optional. CEL expression that describes the conditions to be satisfied for the action. The result of the CEL expression is ANDed with the from and to. Refer to the CEL language reference for a list of available attributes.", +"type": "string" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleFrom": { +"description": "Describes properties of one or more sources of a request.", +"id": "AuthzPolicyAuthzRuleFrom", +"properties": { +"notSources": { +"description": "Optional. Describes the negated properties of request sources. Matches requests from sources that do not match the criteria specified in this field. At least one of sources or notSources must be specified.", +"items": { +"$ref": "AuthzPolicyAuthzRuleFromRequestSource" +}, +"type": "array" +}, +"sources": { +"description": "Optional. Describes the properties of a request's sources. At least one of sources or notSources must be specified. Limited to 1 source. A match occurs when ANY source (in sources or notSources) matches the request. Within a single source, the match follows AND semantics across fields and OR semantics within a single field, i.e. a match occurs when ANY principal matches AND ANY ipBlocks match.", +"items": { +"$ref": "AuthzPolicyAuthzRuleFromRequestSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleFromRequestSource": { +"description": "Describes the properties of a single source.", +"id": "AuthzPolicyAuthzRuleFromRequestSource", +"properties": { +"principals": { +"description": "Optional. A list of identities derived from the client's certificate. This field will not match on a request unless mutual TLS is enabled for the Forwarding rule or Gateway. Each identity is a string whose value is matched against the URI SAN, or DNS SAN or the subject field in the client's certificate. The match can be exact, prefix, suffix or a substring match. One of exact, prefix, suffix or contains must be specified. Limited to 5 principals.", +"items": { +"$ref": "AuthzPolicyAuthzRuleStringMatch" +}, +"type": "array" +}, +"resources": { +"description": "Optional. A list of resources to match against the resource of the source VM of a request. Limited to 5 resources.", +"items": { +"$ref": "AuthzPolicyAuthzRuleRequestResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleHeaderMatch": { +"description": "Determines how a HTTP header should be matched.", +"id": "AuthzPolicyAuthzRuleHeaderMatch", +"properties": { +"name": { +"description": "Optional. Specifies the name of the header in the request.", +"type": "string" +}, +"value": { +"$ref": "AuthzPolicyAuthzRuleStringMatch", +"description": "Optional. Specifies how the header match will be performed." +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleRequestResource": { +"description": "Describes the properties of a client VM resource accessing the internal application load balancers.", +"id": "AuthzPolicyAuthzRuleRequestResource", +"properties": { +"iamServiceAccount": { +"$ref": "AuthzPolicyAuthzRuleStringMatch", +"description": "Optional. An IAM service account to match against the source service account of the VM sending the request." +}, +"tagValueIdSet": { +"$ref": "AuthzPolicyAuthzRuleRequestResourceTagValueIdSet", +"description": "Optional. A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request." +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleRequestResourceTagValueIdSet": { +"description": "Describes a set of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.", +"id": "AuthzPolicyAuthzRuleRequestResourceTagValueIdSet", +"properties": { +"ids": { +"description": "Required. A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match. Limited to 5 matches.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleStringMatch": { +"description": "Determines how a string value should be matched.", +"id": "AuthzPolicyAuthzRuleStringMatch", +"properties": { +"contains": { +"description": "The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``xyz.abc.def``", +"type": "string" +}, +"exact": { +"description": "The input string must match exactly the string specified here. Examples: * ``abc`` only matches the value ``abc``.", +"type": "string" +}, +"ignoreCase": { +"description": "If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher ``data`` will match both input string ``Data`` and ``data`` if set to true.", +"type": "boolean" +}, +"prefix": { +"description": "The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``abc.xyz``", +"type": "string" +}, +"suffix": { +"description": "The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``xyz.abc``", +"type": "string" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleTo": { +"description": "Describes properties of one or more targets of a request.", +"id": "AuthzPolicyAuthzRuleTo", +"properties": { +"notOperations": { +"description": "Optional. Describes the negated properties of the targets of a request. Matches requests for operations that do not match the criteria specified in this field. At least one of operations or notOperations must be specified.", +"items": { +"$ref": "AuthzPolicyAuthzRuleToRequestOperation" +}, +"type": "array" +}, +"operations": { +"description": "Optional. Describes properties of one or more targets of a request. At least one of operations or notOperations must be specified. Limited to 1 operation. A match occurs when ANY operation (in operations or notOperations) matches. Within an operation, the match follows AND semantics across fields and OR semantics within a field, i.e. a match occurs when ANY path matches AND ANY header matches and ANY method matches.", +"items": { +"$ref": "AuthzPolicyAuthzRuleToRequestOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleToRequestOperation": { +"description": "Describes properties of one or more targets of a request.", +"id": "AuthzPolicyAuthzRuleToRequestOperation", +"properties": { +"headerSet": { +"$ref": "AuthzPolicyAuthzRuleToRequestOperationHeaderSet", +"description": "Optional. A list of headers to match against in http header." +}, +"hosts": { +"description": "Optional. A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.", +"items": { +"$ref": "AuthzPolicyAuthzRuleStringMatch" +}, +"type": "array" +}, +"methods": { +"description": "Optional. A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.", +"items": { +"type": "string" +}, +"type": "array" +}, +"paths": { +"description": "Optional. A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.", +"items": { +"$ref": "AuthzPolicyAuthzRuleStringMatch" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyAuthzRuleToRequestOperationHeaderSet": { +"description": "Describes a set of HTTP headers to match against.", +"id": "AuthzPolicyAuthzRuleToRequestOperationHeaderSet", +"properties": { +"headers": { +"description": "Required. A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.", +"items": { +"$ref": "AuthzPolicyAuthzRuleHeaderMatch" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyCustomProvider": { +"description": "Allows delegating authorization decisions to Cloud IAP or to Service Extensions.", +"id": "AuthzPolicyCustomProvider", +"properties": { +"authzExtension": { +"$ref": "AuthzPolicyCustomProviderAuthzExtension", +"description": "Optional. Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified." +}, +"cloudIap": { +"$ref": "AuthzPolicyCustomProviderCloudIap", +"description": "Optional. Delegates authorization decisions to Cloud IAP. Applicable only for managed load balancers. Enabling Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings in the BackendService. Enabling IAP in both places will result in request failure. Ensure that IAP is enabled in either the AuthzPolicy or the BackendService but not in both places." +} +}, +"type": "object" +}, +"AuthzPolicyCustomProviderAuthzExtension": { +"description": "Optional. Delegate authorization decision to user authored extension. Only one of cloudIap or authzExtension can be specified.", +"id": "AuthzPolicyCustomProviderAuthzExtension", +"properties": { +"resources": { +"description": "Required. A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthzPolicyCustomProviderCloudIap": { +"description": "Optional. Delegates authorization decisions to Cloud IAP. Applicable only for managed load balancers. Enabling Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings in the BackendService. Enabling IAP in both places will result in request failure. Ensure that IAP is enabled in either the AuthzPolicy or the BackendService but not in both places.", +"id": "AuthzPolicyCustomProviderCloudIap", +"properties": {}, +"type": "object" +}, +"AuthzPolicyTarget": { +"description": "Specifies the set of targets to which this policy should be applied to.", +"id": "AuthzPolicyTarget", +"properties": { +"loadBalancingScheme": { +"description": "Required. All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).", +"enum": [ +"LOAD_BALANCING_SCHEME_UNSPECIFIED", +"INTERNAL_MANAGED", +"EXTERNAL_MANAGED", +"INTERNAL_SELF_MANAGED" +], +"enumDescriptions": [ +"Default value. Do not use.", +"Signifies that this is used for Regional internal or Cross-region internal Application Load Balancing.", +"Signifies that this is used for Global external or Regional external Application Load Balancing.", +"Signifies that this is used for Cloud Service Mesh. Meant for use by CSM GKE controller only." +], +"type": "string" +}, +"resources": { +"description": "Required. A list of references to the Forwarding Rules on which this policy will be applied.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CertificateProviderInstance": { +"description": "Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration.", +"id": "CertificateProviderInstance", +"properties": { +"pluginInstance": { +"description": "Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to \"google_cloud_private_spiffe\" to use Certificate Authority Service certificate provider instance.", +"type": "string" +} +}, +"type": "object" +}, +"ClientTlsPolicy": { +"description": "ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource.", +"id": "ClientTlsPolicy", +"properties": { +"clientCertificate": { +"$ref": "GoogleCloudNetworksecurityV1beta1CertificateProvider", +"description": "Optional. Defines a mechanism to provision client identity (public and private keys) for peer to peer authentication. The presence of this dictates mTLS." +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the resource.", +"type": "object" +}, +"name": { +"description": "Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}`", +"type": "string" +}, +"serverValidationCa": { +"description": "Optional. Defines the mechanism to obtain the Certificate Authority certificate to validate the server certificate. If empty, client does not validate the server certificate.", +"items": { +"$ref": "ValidationCA" +}, +"type": "array" +}, +"sni": { +"description": "Optional. Server Name Indication string to present to the server during TLS handshake. E.g: \"secure.example.com\".", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CloneAddressGroupItemsRequest": { +"description": "Request used by the CloneAddressGroupItems method.", +"id": "CloneAddressGroupItemsRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"sourceAddressGroup": { +"description": "Required. Source address group to clone items from.", +"type": "string" +} +}, +"type": "object" +}, +"CustomInterceptProfile": { +"description": "CustomInterceptProfile defines the Packet Intercept Endpoint Group used to intercept traffic to a third-party firewall in a Firewall rule.", +"id": "CustomInterceptProfile", +"properties": { +"interceptEndpointGroup": { +"description": "Required. The InterceptEndpointGroup to which traffic associated with the SP should be mirrored.", +"type": "string" +} +}, +"type": "object" +}, +"CustomMirroringProfile": { +"description": "CustomMirroringProfile defines an action for mirroring traffic to a collector's EndpointGroup", +"id": "CustomMirroringProfile", +"properties": { +"mirroringEndpointGroup": { +"description": "Required. The MirroringEndpointGroup to which traffic associated with the SP should be mirrored.", +"type": "string" +} +}, +"type": "object" +}, +"Destination": { +"description": "Specification of traffic destination attributes.", +"id": "Destination", +"properties": { +"hosts": { +"description": "Required. List of host names to match. Matched against the \":authority\" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example \"mydomain.*\") or a suffix match (example \"*.myorg.com\") or a presence (any) match \"*\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"httpHeaderMatch": { +"$ref": "HttpHeaderMatch", +"description": "Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match. Avoid using header matches to make authorization decisions unless there is a strong guarantee that requests arrive through a trusted client or proxy." +}, +"methods": { +"description": "Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ports": { +"description": "Required. List of destination ports to match. At least one port should match.", +"items": { +"format": "uint32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"FirewallEndpoint": { +"description": "Message describing Endpoint object", +"id": "FirewallEndpoint", +"properties": { +"associatedNetworks": { +"deprecated": true, +"description": "Output only. List of networks that are associated with this endpoint in the local zone. This is a projection of the FirewallEndpointAssociations pointing at this endpoint. A network will only appear in this list after traffic routing is fully configured. Format: projects/{project}/global/networks/{name}.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"associations": { +"description": "Output only. List of FirewallEndpointAssociations that are associated to this endpoint. An association will only appear in this list after traffic routing is fully configured.", +"items": { +"$ref": "FirewallEndpointAssociationReference" +}, +"readOnly": true, +"type": "array" +}, +"billingProjectId": { +"description": "Required. Project to bill on endpoint uptime usage.", +"type": "string" +}, +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the firewall endpoint. Max length 2048 characters.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. name of resource", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the endpoint.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"INACTIVE" +], +"enumDescriptions": [ +"Not set.", +"Being created.", +"Processing configuration updates.", +"Being deleted.", +"Down or in an error state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FirewallEndpointAssociation": { +"description": "Message describing Association object", +"id": "FirewallEndpointAssociation", +"properties": { +"createTime": { +"description": "Output only. Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"disabled": { +"description": "Optional. Whether the association is disabled. True indicates that traffic won't be intercepted", +"type": "boolean" +}, +"firewallEndpoint": { +"description": "Required. The URL of the FirewallEndpoint that is being associated.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. name of resource", +"type": "string" +}, +"network": { +"description": "Required. The URL of the network that is being associated.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the association.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"INACTIVE", +"ORPHAN" +], +"enumDescriptions": [ +"Not set.", +"Being created.", +"Active and ready for traffic.", +"Being deleted.", +"Down or in an error state.", +"The project that housed the association has been deleted." +], +"readOnly": true, +"type": "string" +}, +"tlsInspectionPolicy": { +"description": "Optional. The URL of the TlsInspectionPolicy that is being associated.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FirewallEndpointAssociationReference": { +"description": "This is a subset of the FirewallEndpointAssociation message, containing fields to be used by the consumer.", +"id": "FirewallEndpointAssociationReference", +"properties": { +"name": { +"description": "Output only. The resource name of the FirewallEndpointAssociation. Format: projects/{project}/locations/{location}/firewallEndpointAssociations/{id}", +"readOnly": true, +"type": "string" +}, +"network": { +"description": "Output only. The VPC network associated. Format: projects/{project}/global/networks/{name}.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GatewaySecurityPolicy": { +"description": "The GatewaySecurityPolicy resource contains a collection of GatewaySecurityPolicyRules and associated metadata.", +"id": "GatewaySecurityPolicy", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"name": { +"description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy} gateway_security_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"type": "string" +}, +"tlsInspectionPolicy": { +"description": "Optional. Name of a TLS Inspection Policy resource that defines how TLS inspection will be performed for any rule(s) which enables it.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GatewaySecurityPolicyRule": { +"description": "The GatewaySecurityPolicyRule resource is in a nested collection within a GatewaySecurityPolicy and represents a traffic matching condition and associated action to perform.", +"id": "GatewaySecurityPolicyRule", +"properties": { +"applicationMatcher": { +"description": "Optional. CEL expression for matching on L7/application level criteria.", +"type": "string" +}, +"basicProfile": { +"description": "Required. Profile which tells what the primitive action should be.", +"enum": [ +"BASIC_PROFILE_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"If there is not a mentioned action for the target.", +"Allow the matched traffic.", +"Deny the matched traffic." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Time when the rule was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"enabled": { +"description": "Required. Whether the rule is enforced.", +"type": "boolean" +}, +"name": { +"description": "Required. Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"type": "string" +}, +"priority": { +"description": "Required. Priority of the rule. Lower number corresponds to higher precedence.", +"format": "int32", +"type": "integer" +}, +"sessionMatcher": { +"description": "Required. CEL expression for matching on session criteria.", +"type": "string" +}, +"tlsInspectionEnabled": { +"description": "Optional. Flag to enable TLS inspection of traffic matching on , can only be true if the parent GatewaySecurityPolicy references a TLSInspectionConfig.", +"type": "boolean" +}, +"updateTime": { +"description": "Output only. Time when the rule was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudNetworksecurityV1beta1CertificateProvider": { +"description": "Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication.", +"id": "GoogleCloudNetworksecurityV1beta1CertificateProvider", +"properties": { +"certificateProviderInstance": { +"$ref": "CertificateProviderInstance", +"description": "The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information." +}, +"grpcEndpoint": { +"$ref": "GoogleCloudNetworksecurityV1beta1GrpcEndpoint", +"description": "gRPC specific configuration to access the gRPC server to obtain the cert and private key." +} +}, +"type": "object" +}, +"GoogleCloudNetworksecurityV1beta1GrpcEndpoint": { +"description": "Specification of the GRPC Endpoint.", +"id": "GoogleCloudNetworksecurityV1beta1GrpcEndpoint", +"properties": { +"targetUri": { +"description": "Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with \"unix:\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "GoogleIamV1AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "GoogleIamV1AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"GoogleIamV1AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "GoogleIamV1AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "GoogleIamV1Binding", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Policy": { +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "GoogleIamV1Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "GoogleIamV1AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "GoogleIamV1Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleIamV1SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "GoogleIamV1SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "GoogleIamV1Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "GoogleIamV1TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "GoogleIamV1TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpHeaderMatch": { +"description": "Specification of HTTP header match attributes.", +"id": "HttpHeaderMatch", +"properties": { +"headerName": { +"description": "Required. The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name \":authority\". For matching a request's method, use the headerName \":method\".", +"type": "string" +}, +"regexMatch": { +"description": "Required. The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header's port specifier.", +"type": "string" +} +}, +"type": "object" +}, +"InterceptDeployment": { +"description": "Message describing InterceptDeployment object NEXT ID: 10", +"id": "InterceptDeployment", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-provided description of the deployment. Used as additional context for the deployment.", +"type": "string" +}, +"forwardingRule": { +"description": "Required. Immutable. The regional load balancer which the intercepted traffic should be forwarded to. Format is: projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", +"type": "string" +}, +"interceptDeploymentGroup": { +"description": "Required. Immutable. The Intercept Deployment Group that this resource is part of. Format is: `projects/{project}/locations/global/interceptDeploymentGroups/{interceptDeploymentGroup}`", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. The name of the InterceptDeployment.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted.", +"The underlying data plane is out of sync with the deployment. The deployment is not expected to be usable. This state can result in undefined behavior.", +"An attempt to delete the deployment has failed. This is a terminal state and the deployment is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the deployment." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InterceptDeploymentGroup": { +"description": "Message describing InterceptDeploymentGroup object NEXT ID: 10", +"id": "InterceptDeploymentGroup", +"properties": { +"connectedEndpointGroups": { +"description": "Output only. The list of Intercept Endpoint Groups that are connected to this resource.", +"items": { +"$ref": "InterceptDeploymentGroupConnectedEndpointGroup" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-provided description of the deployment group. Used as additional context for the deployment group.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. Then name of the InterceptDeploymentGroup.", +"type": "string" +}, +"network": { +"description": "Required. Immutable. The network that is being used for the deployment. Format is: projects/{project}/global/networks/{network}.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the deployment group.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InterceptDeploymentGroupConnectedEndpointGroup": { +"description": "An endpoint group connected to this deployment group.", +"id": "InterceptDeploymentGroupConnectedEndpointGroup", +"properties": { +"name": { +"description": "Output only. A connected intercept endpoint group.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InterceptEndpointGroup": { +"description": "Message describing InterceptEndpointGroup object.", +"id": "InterceptEndpointGroup", +"properties": { +"associations": { +"description": "Output only. List of Intercept Endpoint Group Associations that are associated to this endpoint group.", +"items": { +"$ref": "InterceptEndpointGroupAssociationDetails" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-provided description of the endpoint group. Used as additional context for the endpoint group.", +"type": "string" +}, +"interceptDeploymentGroup": { +"description": "Required. Immutable. The Intercept Deployment Group that this resource is connected to. Format is: `projects/{project}/locations/global/interceptDeploymentGroups/{interceptDeploymentGroup}`", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. The name of the InterceptEndpointGroup.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the endpoint group.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CLOSED", +"CREATING", +"DELETING", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"The deployment group has been deleted and intercept is disabled.", +"Being created.", +"Being deleted.", +"The underlying data plane is out of sync with the endpoint group. Some associations might not be usable.", +"An attempt to delete the endpoint group has failed. This is a terminal state and the endpoint group is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the endpoint group." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InterceptEndpointGroupAssociation": { +"description": "Message describing InterceptEndpointGroupAssociation object", +"id": "InterceptEndpointGroupAssociation", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"interceptEndpointGroup": { +"description": "Required. Immutable. The Intercept Endpoint Group that this resource is connected to. Format is: `projects/{project}/locations/global/interceptEndpointGroups/{interceptEndpointGroup}`", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"locationsDetails": { +"description": "Output only. The list of locations that this association is in and its details.", +"items": { +"$ref": "InterceptEndpointGroupAssociationLocationDetails" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Immutable. Identifier. The name of the InterceptEndpointGroupAssociation.", +"type": "string" +}, +"network": { +"description": "Required. Immutable. The VPC network associated. Format: projects/{project}/global/networks/{network}.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the endpoint group association.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"CLOSED", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted.", +"Intercept is disabled due to an operation on another resource.", +"The underlying data plane is out of sync with the association. The association is not expected to be usable. This state can result in undefined behavior. See the `locations_details` field for more details.", +"An attempt to delete the association has failed. This is a terminal state and the association is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the association." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InterceptEndpointGroupAssociationDetails": { +"description": "This is a subset of the InterceptEndpointGroupAssociation message, containing fields to be used by the consumer.", +"id": "InterceptEndpointGroupAssociationDetails", +"properties": { +"name": { +"description": "Output only. The resource name of the InterceptEndpointGroupAssociation. Format: projects/{project}/locations/{location}/interceptEndpointGroupAssociations/{interceptEndpointGroupAssociation}", +"readOnly": true, +"type": "string" +}, +"network": { +"description": "Output only. The VPC network associated. Format: projects/{project}/global/networks/{name}.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of the association.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"CLOSED", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted.", +"Intercept is disabled due to an operation on another resource.", +"The underlying data plane is out of sync with the association. The association is not expected to be usable. This state can result in undefined behavior. See the `locations_details` field for more details.", +"An attempt to delete the association has failed. This is a terminal state and the association is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the association." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InterceptEndpointGroupAssociationLocationDetails": { +"description": "Details about the association status in a specific cloud location.", +"id": "InterceptEndpointGroupAssociationLocationDetails", +"properties": { +"location": { +"description": "Output only. The cloud location.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The association state in this location.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"OUT_OF_SYNC" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"The data plane is out of sync with the association in this location." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListAddressGroupReferencesResponse": { +"description": "Response of the ListAddressGroupReferences method.", +"id": "ListAddressGroupReferencesResponse", +"properties": { +"addressGroupReferences": { +"description": "A list of references that matches the specified filter in the request.", +"items": { +"$ref": "ListAddressGroupReferencesResponseAddressGroupReference" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +} +}, +"type": "object" +}, +"ListAddressGroupReferencesResponseAddressGroupReference": { +"description": "The Reference of AddressGroup.", +"id": "ListAddressGroupReferencesResponseAddressGroupReference", +"properties": { +"firewallPolicy": { +"description": "FirewallPolicy that is using the Address Group.", +"type": "string" +}, +"rulePriority": { +"description": "Rule priority of the FirewallPolicy that is using the Address Group.", +"format": "int32", +"type": "integer" +}, +"securityPolicy": { +"description": "Cloud Armor SecurityPolicy that is using the Address Group.", +"type": "string" +} +}, +"type": "object" +}, +"ListAddressGroupsResponse": { +"description": "Response returned by the ListAddressGroups method.", +"id": "ListAddressGroupsResponse", +"properties": { +"addressGroups": { +"description": "List of AddressGroups resources.", +"items": { +"$ref": "AddressGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +} +}, +"type": "object" +}, +"ListAuthorizationPoliciesResponse": { +"description": "Response returned by the ListAuthorizationPolicies method.", +"id": "ListAuthorizationPoliciesResponse", +"properties": { +"authorizationPolicies": { +"description": "List of AuthorizationPolicies resources.", +"items": { +"$ref": "AuthorizationPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +} +}, +"type": "object" +}, +"ListAuthzPoliciesResponse": { +"description": "Message for response to listing `AuthzPolicy` resources.", +"id": "ListAuthzPoliciesResponse", +"properties": { +"authzPolicies": { +"description": "The list of `AuthzPolicy` resources.", +"items": { +"$ref": "AuthzPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results that the server returns.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListClientTlsPoliciesResponse": { +"description": "Response returned by the ListClientTlsPolicies method.", +"id": "ListClientTlsPoliciesResponse", +"properties": { +"clientTlsPolicies": { +"description": "List of ClientTlsPolicy resources.", +"items": { +"$ref": "ClientTlsPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +} +}, +"type": "object" +}, +"ListFirewallEndpointAssociationsResponse": { +"description": "Message for response to listing Associations", +"id": "ListFirewallEndpointAssociationsResponse", +"properties": { +"firewallEndpointAssociations": { +"description": "The list of Association", +"items": { +"$ref": "FirewallEndpointAssociation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListFirewallEndpointsResponse": { +"description": "Message for response to listing Endpoints", +"id": "ListFirewallEndpointsResponse", +"properties": { +"firewallEndpoints": { +"description": "The list of Endpoint", +"items": { +"$ref": "FirewallEndpoint" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListGatewaySecurityPoliciesResponse": { +"description": "Response returned by the ListGatewaySecurityPolicies method.", +"id": "ListGatewaySecurityPoliciesResponse", +"properties": { +"gatewaySecurityPolicies": { +"description": "List of GatewaySecurityPolicies resources.", +"items": { +"$ref": "GatewaySecurityPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be 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'.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListGatewaySecurityPolicyRulesResponse": { +"description": "Response returned by the ListGatewaySecurityPolicyRules method.", +"id": "ListGatewaySecurityPolicyRulesResponse", +"properties": { +"gatewaySecurityPolicyRules": { +"description": "List of GatewaySecurityPolicyRule resources.", +"items": { +"$ref": "GatewaySecurityPolicyRule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be 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'.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInterceptDeploymentGroupsResponse": { +"description": "Message for response to listing InterceptDeploymentGroups", +"id": "ListInterceptDeploymentGroupsResponse", +"properties": { +"interceptDeploymentGroups": { +"description": "The list of InterceptDeploymentGroup", +"items": { +"$ref": "InterceptDeploymentGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListInterceptDeploymentsResponse": { +"description": "Message for response to listing InterceptDeployments", +"id": "ListInterceptDeploymentsResponse", +"properties": { +"interceptDeployments": { +"description": "The list of InterceptDeployment", +"items": { +"$ref": "InterceptDeployment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInterceptEndpointGroupAssociationsResponse": { +"description": "Message for response to listing InterceptEndpointGroupAssociations", +"id": "ListInterceptEndpointGroupAssociationsResponse", +"properties": { +"interceptEndpointGroupAssociations": { +"description": "The list of InterceptEndpointGroupAssociation", +"items": { +"$ref": "InterceptEndpointGroupAssociation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListInterceptEndpointGroupsResponse": { +"description": "Message for response to listing InterceptEndpointGroups", +"id": "ListInterceptEndpointGroupsResponse", +"properties": { +"interceptEndpointGroups": { +"description": "The list of InterceptEndpointGroup", +"items": { +"$ref": "InterceptEndpointGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListMirroringDeploymentGroupsResponse": { +"description": "Message for response to listing MirroringDeploymentGroups", +"id": "ListMirroringDeploymentGroupsResponse", +"properties": { +"mirroringDeploymentGroups": { +"description": "The list of MirroringDeploymentGroup", +"items": { +"$ref": "MirroringDeploymentGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListMirroringDeploymentsResponse": { +"description": "Message for response to listing MirroringDeployments", +"id": "ListMirroringDeploymentsResponse", +"properties": { +"mirroringDeployments": { +"description": "The list of MirroringDeployment", +"items": { +"$ref": "MirroringDeployment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListMirroringEndpointGroupAssociationsResponse": { +"description": "Message for response to listing MirroringEndpointGroupAssociations", +"id": "ListMirroringEndpointGroupAssociationsResponse", +"properties": { +"mirroringEndpointGroupAssociations": { +"description": "The list of MirroringEndpointGroupAssociation", +"items": { +"$ref": "MirroringEndpointGroupAssociation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListMirroringEndpointGroupsResponse": { +"description": "Message for response to listing MirroringEndpointGroups", +"id": "ListMirroringEndpointGroupsResponse", +"properties": { +"mirroringEndpointGroups": { +"description": "The list of MirroringEndpointGroup", +"items": { +"$ref": "MirroringEndpointGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSecurityProfileGroupsResponse": { +"description": "Response returned by the ListSecurityProfileGroups method.", +"id": "ListSecurityProfileGroupsResponse", +"properties": { +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +}, +"securityProfileGroups": { +"description": "List of SecurityProfileGroups resources.", +"items": { +"$ref": "SecurityProfileGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSecurityProfilesResponse": { +"description": "Response returned by the ListSecurityProfiles method.", +"id": "ListSecurityProfilesResponse", +"properties": { +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +}, +"securityProfiles": { +"description": "List of SecurityProfile resources.", +"items": { +"$ref": "SecurityProfile" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServerTlsPoliciesResponse": { +"description": "Response returned by the ListServerTlsPolicies method.", +"id": "ListServerTlsPoliciesResponse", +"properties": { +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +}, +"serverTlsPolicies": { +"description": "List of ServerTlsPolicy resources.", +"items": { +"$ref": "ServerTlsPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTlsInspectionPoliciesResponse": { +"description": "Response returned by the ListTlsInspectionPolicies method.", +"id": "ListTlsInspectionPoliciesResponse", +"properties": { +"nextPageToken": { +"description": "If there might be 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'.", +"type": "string" +}, +"tlsInspectionPolicies": { +"description": "List of TlsInspectionPolicies resources.", +"items": { +"$ref": "TlsInspectionPolicy" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUrlListsResponse": { +"description": "Response returned by the ListUrlLists method.", +"id": "ListUrlListsResponse", +"properties": { +"nextPageToken": { +"description": "If there might be 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`.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"urlLists": { +"description": "List of UrlList resources.", +"items": { +"$ref": "UrlList" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MTLSPolicy": { +"description": "Specification of the MTLSPolicy.", +"id": "MTLSPolicy", +"properties": { +"clientValidationCa": { +"description": "Required if the policy is to be used with Traffic Director. For Application Load Balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.", +"items": { +"$ref": "ValidationCA" +}, +"type": "array" +}, +"clientValidationMode": { +"description": "When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the Application Load Balancers. For Traffic Director it must be empty.", +"enum": [ +"CLIENT_VALIDATION_MODE_UNSPECIFIED", +"ALLOW_INVALID_OR_MISSING_CLIENT_CERT", +"REJECT_INVALID" +], +"enumDescriptions": [ +"Not allowed.", +"Allow connection even if certificate chain validation of the client certificate failed or no client certificate was presented. The proof of possession of the private key is always checked if client certificate was presented. This mode requires the backend to implement processing of data extracted from a client certificate to authenticate the peer, or to reject connections if the client certificate fingerprint is missing.", +"Require a client certificate and allow connection to the backend only if validation of the client certificate passed. If set, requires a reference to non-empty TrustConfig specified in `client_validation_trust_config`." +], +"type": "string" +}, +"clientValidationTrustConfig": { +"description": "Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with Application Load Balancers.", +"type": "string" +} +}, +"type": "object" +}, +"MirroringDeployment": { +"description": "Message describing MirroringDeployment object NEXT ID: 10", +"id": "MirroringDeployment", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"forwardingRule": { +"description": "Required. Immutable. The regional load balancer which the mirrored traffic should be forwarded to. Format is: projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"mirroringDeploymentGroup": { +"description": "Required. Immutable. The Mirroring Deployment Group that this resource is part of. Format is: `projects/{project}/locations/global/mirroringDeploymentGroups/{mirroringDeploymentGroup}`", +"type": "string" +}, +"name": { +"description": "Immutable. Identifier. The name of the MirroringDeployment.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted.", +"The underlying data plane is out of sync with the deployment. The deployment is not expected to be usable. This state can result in undefined behavior.", +"An attempt to delete the deployment has failed. This is a terminal state and the deployment is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the deployment." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MirroringDeploymentGroup": { +"description": "Message describing MirroringDeploymentGroup object NEXT ID: 10", +"id": "MirroringDeploymentGroup", +"properties": { +"connectedEndpointGroups": { +"description": "Output only. The list of Mirroring Endpoint Groups that are connected to this resource.", +"items": { +"$ref": "MirroringDeploymentGroupConnectedEndpointGroup" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. Then name of the MirroringDeploymentGroup.", +"type": "string" +}, +"network": { +"description": "Required. Immutable. The network that is being used for the deployment. Format is: projects/{project}/global/networks/{network}.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the deployment group.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MirroringDeploymentGroupConnectedEndpointGroup": { +"description": "An endpoint group connected to this deployment group.", +"id": "MirroringDeploymentGroupConnectedEndpointGroup", +"properties": { +"name": { +"description": "Output only. A connected mirroring endpoint group.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MirroringEndpointGroup": { +"description": "Message describing MirroringEndpointGroup object.", +"id": "MirroringEndpointGroup", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"mirroringDeploymentGroup": { +"description": "Required. Immutable. The Mirroring Deployment Group that this resource is connected to. Format is: `projects/{project}/locations/global/mirroringDeploymentGroups/{mirroringDeploymentGroup}`", +"type": "string" +}, +"name": { +"description": "Immutable. Identifier. Next ID: 11 The name of the MirroringEndpointGroup.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the endpoint group.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CLOSED", +"CREATING", +"DELETING", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"The deployment group has been deleted and mirroring is disabled.", +"Being created.", +"Being deleted.", +"The underlying data plane is out of sync with the endpoint group. Some associations might not be usable.", +"An attempt to delete the endpoint group has failed. This is a terminal state and the endpoint group is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the endpoint group." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MirroringEndpointGroupAssociation": { +"description": "Message describing MirroringEndpointGroupAssociation object", +"id": "MirroringEndpointGroupAssociation", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"locationsDetails": { +"description": "Output only. The list of locations that this association is in and its details.", +"items": { +"$ref": "MirroringEndpointGroupAssociationLocationDetails" +}, +"readOnly": true, +"type": "array" +}, +"mirroringEndpointGroup": { +"description": "Required. Immutable. The Mirroring Endpoint Group that this resource is connected to. Format is: `projects/{project}/locations/global/mirroringEndpointGroups/{mirroringEndpointGroup}`", +"type": "string" +}, +"name": { +"description": "Immutable. Identifier. The name of the MirroringEndpointGroupAssociation.", +"type": "string" +}, +"network": { +"description": "Required. Immutable. The VPC network associated. Format: projects/{project}/global/networks/{network}.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. Current state of the endpoint group association.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"CLOSED", +"OUT_OF_SYNC", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"Being created.", +"Being deleted.", +"Mirroring is disabled due to an operation on another resource.", +"The underlying data plane is out of sync with the association. The association is not expected to be usable. This state can result in undefined behavior. See the `locations_details` field for more details.", +"An attempt to delete the association has failed. This is a terminal state and the association is not expected to be usable as some of its resources have been deleted. The only permitted operation is to retry deleting the association." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MirroringEndpointGroupAssociationLocationDetails": { +"description": "Details about the association status in a specific cloud location.", +"id": "MirroringEndpointGroupAssociationLocationDetails", +"properties": { +"location": { +"description": "Output only. The cloud location.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The association state in this location.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"OUT_OF_SYNC" +], +"enumDescriptions": [ +"Not set.", +"Ready.", +"The data plane is out of sync with the association in this location." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RemoveAddressGroupItemsRequest": { +"description": "Request used by the RemoveAddressGroupItems method.", +"id": "RemoveAddressGroupItemsRequest", +"properties": { +"items": { +"description": "Required. List of items to remove.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"Rule": { +"description": "Specification of rules.", +"id": "Rule", +"properties": { +"destinations": { +"description": "Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the 'action' field will be applied without any rule checks for the destination.", +"items": { +"$ref": "Destination" +}, +"type": "array" +}, +"sources": { +"description": "Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the 'action' field will be applied without any rule checks for the source.", +"items": { +"$ref": "Source" +}, +"type": "array" +} +}, +"type": "object" +}, +"SecurityProfile": { +"description": "SecurityProfile is a resource that defines the behavior for one of many ProfileTypes.", +"id": "SecurityProfile", +"properties": { +"createTime": { +"description": "Output only. Resource creation timestamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customInterceptProfile": { +"$ref": "CustomInterceptProfile", +"description": "The custom TPPI configuration for the SecurityProfile." +}, +"customMirroringProfile": { +"$ref": "CustomMirroringProfile", +"description": "The custom Packet Mirroring v2 configuration for the SecurityProfile." +}, +"description": { +"description": "Optional. An optional description of the profile. Max length 512 characters.", +"type": "string" +}, +"etag": { +"description": "Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs.", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. Name of the SecurityProfile resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfiles/{security_profile}`.", +"type": "string" +}, +"threatPreventionProfile": { +"$ref": "ThreatPreventionProfile", +"description": "The threat prevention configuration for the SecurityProfile." +}, +"type": { +"description": "Immutable. The single ProfileType that the SecurityProfile resource configures.", +"enum": [ +"PROFILE_TYPE_UNSPECIFIED", +"THREAT_PREVENTION", +"CUSTOM_MIRRORING", +"CUSTOM_INTERCEPT" +], +"enumDescriptions": [ +"Profile type not specified.", +"Profile type for threat prevention.", +"Profile type for packet mirroring v2", +"Profile type for TPPI." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. Last resource update timestamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SecurityProfileGroup": { +"description": "SecurityProfileGroup is a resource that defines the behavior for various ProfileTypes.", +"id": "SecurityProfileGroup", +"properties": { +"createTime": { +"description": "Output only. Resource creation timestamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customInterceptProfile": { +"description": "Optional. Reference to a SecurityProfile with the CustomIntercept configuration.", +"type": "string" +}, +"customMirroringProfile": { +"description": "Optional. Reference to a SecurityProfile with the CustomMirroring configuration.", +"type": "string" +}, +"description": { +"description": "Optional. An optional description of the profile group. Max length 2048 characters.", +"type": "string" +}, +"etag": { +"description": "Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs.", +"type": "object" +}, +"name": { +"description": "Immutable. Identifier. Name of the SecurityProfileGroup resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", +"type": "string" +}, +"threatPreventionProfile": { +"description": "Optional. Reference to a SecurityProfile with the ThreatPrevention configuration.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Last resource update timestamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServerTlsPolicy": { +"description": "ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target HTTPS proxy or endpoint config selector resource. ServerTlsPolicy in the form accepted by Application Load Balancers can be attached only to TargetHttpsProxy with an `EXTERNAL`, `EXTERNAL_MANAGED` or `INTERNAL_MANAGED` load balancing scheme. Traffic Director compatible ServerTlsPolicies can be attached to EndpointPolicy and TargetHttpsProxy with Traffic Director `INTERNAL_SELF_MANAGED` load balancing scheme.", +"id": "ServerTlsPolicy", +"properties": { +"allowOpen": { +"description": "This field applies only for Traffic Director policies. It is must be set to false for Application Load Balancer policies. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility. Consider using it if you wish to upgrade in place your deployment to TLS while having mixed TLS and non-TLS traffic reaching port :80.", +"type": "boolean" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Free-text description of the resource.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Set of label tags associated with the resource.", +"type": "object" +}, +"mtlsPolicy": { +"$ref": "MTLSPolicy", +"description": "This field is required if the policy is used with Application Load Balancers. This field can be empty for Traffic Director. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections." +}, +"name": { +"description": "Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`", +"type": "string" +}, +"serverCertificate": { +"$ref": "GoogleCloudNetworksecurityV1beta1CertificateProvider", +"description": "Optional if policy is to be used with Traffic Director. For Application Load Balancers must be empty. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with `allow_open` as a permissive mode that allows both plain text and TLS is not supported." +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SeverityOverride": { +"description": "Defines what action to take for a specific severity match.", +"id": "SeverityOverride", +"properties": { +"action": { +"description": "Required. Threat action override.", +"enum": [ +"THREAT_ACTION_UNSPECIFIED", +"DEFAULT_ACTION", +"ALLOW", +"ALERT", +"DENY" +], +"enumDescriptions": [ +"Threat action not specified.", +"The default action (as specified by the vendor) is taken.", +"The packet matching this rule will be allowed to transmit.", +"The packet matching this rule will be allowed to transmit, but a threat_log entry will be sent to the consumer project.", +"The packet matching this rule will be dropped, and a threat_log entry will be sent to the consumer project." +], +"type": "string" +}, +"severity": { +"description": "Required. Severity level to match.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"INFORMATIONAL", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Severity level not specified.", +"Suspicious events that do not pose an immediate threat, but that are reported to call attention to deeper problems that could possibly exist.", +"Warning-level threats that have very little impact on an organization's infrastructure. They usually require local or physical system access and may often result in victim privacy issues and information leakage.", +"Minor threats in which impact is minimized, that do not compromise the target or exploits that require an attacker to reside on the same local network as the victim, affect only non-standard configurations or obscure applications, or provide very limited access.", +"Threats that have the ability to become critical but have mitigating factors; for example, they may be difficult to exploit, do not result in elevated privileges, or do not have a large victim pool.", +"Serious threats, such as those that affect default installations of widely deployed software, result in root compromise of servers, and the exploit code is widely available to attackers. The attacker usually does not need any special authentication credentials or knowledge about the individual victims and the target does not need to be manipulated into performing any special functions." +], +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "Specification of traffic source attributes.", +"id": "Source", +"properties": { +"ipBlocks": { +"description": "Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., \"1.2.3.4\") and CIDR (e.g., \"1.2.3.0/24\") are supported. Authorization based on source IP alone should be avoided. The IP addresses of any load balancers or proxies should be considered untrusted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"principals": { +"description": "Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, \"namespace/*\") or a suffix match (example, \"*/service-account\") or a presence match \"*\". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"ThreatOverride": { +"description": "Defines what action to take for a specific threat_id match.", +"id": "ThreatOverride", +"properties": { +"action": { +"description": "Required. Threat action override. For some threat types, only a subset of actions applies.", +"enum": [ +"THREAT_ACTION_UNSPECIFIED", +"DEFAULT_ACTION", +"ALLOW", +"ALERT", +"DENY" +], +"enumDescriptions": [ +"Threat action not specified.", +"The default action (as specified by the vendor) is taken.", +"The packet matching this rule will be allowed to transmit.", +"The packet matching this rule will be allowed to transmit, but a threat_log entry will be sent to the consumer project.", +"The packet matching this rule will be dropped, and a threat_log entry will be sent to the consumer project." +], +"type": "string" +}, +"threatId": { +"description": "Required. Vendor-specific ID of a threat to override.", +"type": "string" +}, +"type": { +"description": "Output only. Type of the threat (read only).", +"enum": [ +"THREAT_TYPE_UNSPECIFIED", +"UNKNOWN", +"VULNERABILITY", +"ANTIVIRUS", +"SPYWARE", +"DNS" +], +"enumDescriptions": [ +"Type of threat not specified.", +"Type of threat is not derivable from threat ID. An override will be created for all types. Firewall will ignore overridden signature ID's that don't exist in the specific type.", +"Threats related to system flaws that an attacker might otherwise attempt to exploit.", +"Threats related to viruses and malware found in executables and file types.", +"Threats related to command-and-control (C2) activity, where spyware on an infected client is collecting data without the user's consent and/or communicating with a remote attacker.", +"Threats related to DNS." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ThreatPreventionProfile": { +"description": "ThreatPreventionProfile defines an action for specific threat signatures or severity levels.", +"id": "ThreatPreventionProfile", +"properties": { +"severityOverrides": { +"description": "Optional. Configuration for overriding threats actions by severity match.", +"items": { +"$ref": "SeverityOverride" +}, +"type": "array" +}, +"threatOverrides": { +"description": "Optional. Configuration for overriding threats actions by threat_id match. If a threat is matched both by configuration provided in severity_overrides and threat_overrides, the threat_overrides action is applied.", +"items": { +"$ref": "ThreatOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"TlsInspectionPolicy": { +"description": "The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.", +"id": "TlsInspectionPolicy", +"properties": { +"caPool": { +"description": "Required. A CA pool resource used to issue interception certificates. The CA pool string has a relative resource path following the form \"projects/{project}/locations/{location}/caPools/{ca_pool}\".", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customTlsFeatures": { +"description": "Optional. List of custom TLS cipher suites selected. This field is valid only if the selected tls_feature_profile is CUSTOM. The compute.SslPoliciesService.ListAvailableFeatures method returns the set of features that can be specified in this list. Note that Secure Web Proxy does not yet honor this field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"excludePublicCaSet": { +"description": "Optional. If FALSE (the default), use our default set of public CAs in addition to any CAs specified in trust_config. These public CAs are currently based on the Mozilla Root Program and are subject to change over time. If TRUE, do not accept our default set of public CAs. Only CAs specified in trust_config will be accepted. This defaults to FALSE (use public CAs in addition to trust_config) for backwards compatibility, but trusting public root CAs is *not recommended* unless the traffic in question is outbound to public web servers. When possible, prefer setting this to \"false\" and explicitly specifying trusted CAs and certificates in a TrustConfig. Note that Secure Web Proxy does not yet honor this field.", +"type": "boolean" +}, +"minTlsVersion": { +"description": "Optional. Minimum TLS version that the firewall should use when negotiating connections with both clients and servers. If this is not set, then the default value is to allow the broadest set of clients and servers (TLS 1.0 or higher). Setting this to more restrictive values may improve security, but may also prevent the firewall from connecting to some clients or servers. Note that Secure Web Proxy does not yet honor this field.", +"enum": [ +"TLS_VERSION_UNSPECIFIED", +"TLS_1_0", +"TLS_1_1", +"TLS_1_2", +"TLS_1_3" +], +"enumDescriptions": [ +"Indicates no TLS version was specified.", +"TLS 1.0", +"TLS 1.1", +"TLS 1.2", +"TLS 1.3" +], +"type": "string" +}, +"name": { +"description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy} tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"type": "string" +}, +"tlsFeatureProfile": { +"description": "Optional. The selected Profile. If this is not set, then the default value is to allow the broadest set of clients and servers (\"PROFILE_COMPATIBLE\"). Setting this to more restrictive values may improve security, but may also prevent the TLS inspection proxy from connecting to some clients or servers. Note that Secure Web Proxy does not yet honor this field.", +"enum": [ +"PROFILE_UNSPECIFIED", +"PROFILE_COMPATIBLE", +"PROFILE_MODERN", +"PROFILE_RESTRICTED", +"PROFILE_CUSTOM" +], +"enumDescriptions": [ +"Indicates no profile was specified.", +"Compatible profile. Allows the broadest set of clients, even those which support only out-of-date SSL features to negotiate with the TLS inspection proxy.", +"Modern profile. Supports a wide set of SSL features, allowing modern clients to negotiate SSL with the TLS inspection proxy.", +"Restricted profile. Supports a reduced set of SSL features, intended to meet stricter compliance requirements.", +"Custom profile. Allow only the set of allowed SSL features specified in the custom_features field of SslPolicy." +], +"type": "string" +}, +"trustConfig": { +"description": "Optional. A TrustConfig resource used when making a connection to the TLS server. This is a relative resource path following the form \"projects/{project}/locations/{location}/trustConfigs/{trust_config}\". This is necessary to intercept TLS connections to servers with certificates signed by a private CA or self-signed certificates. Note that Secure Web Proxy does not yet honor this field.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"UrlList": { +"description": "UrlList proto helps users to set reusable, independently manageable lists of hosts, host patterns, URLs, URL patterns.", +"id": "UrlList", +"properties": { +"createTime": { +"description": "Output only. Time when the security policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Free-text description of the resource.", +"type": "string" +}, +"name": { +"description": "Required. Name of the resource provided by the user. Name is of the form projects/{project}/locations/{location}/urlLists/{url_list} url_list should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when the security policy was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"values": { +"description": "Required. FQDNs and URLs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ValidationCA": { +"description": "Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.", +"id": "ValidationCA", +"properties": { +"certificateProviderInstance": { +"$ref": "CertificateProviderInstance", +"description": "The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information." +}, +"grpcEndpoint": { +"$ref": "GoogleCloudNetworksecurityV1beta1GrpcEndpoint", +"description": "gRPC specific configuration to access the gRPC server to obtain the CA certificate." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Network Security API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/oracledatabase.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/oracledatabase.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..bb2e2214b62a8ba011efcba636829299f79f38e1 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/oracledatabase.v1.json @@ -0,0 +1,3768 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://oracledatabase.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Oracle Database", +"description": "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/oracle/database/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "oracledatabase:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://oracledatabase.mtls.googleapis.com/", +"name": "oracledatabase", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"autonomousDatabaseBackups": { +"methods": { +"list": { +"description": "Lists the long-term and automatic backups of an Autonomous Database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabaseBackups", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.autonomousDatabaseBackups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Only the **autonomous_database_id** field is supported in the following format: `autonomous_database_id=\"{autonomous_database_id}\"`. The accepted values must be a valid Autonomous Database ID, limited to the naming restrictions of the ID: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$). The ID must start with a letter, end with a letter or a number, and be a maximum of 63 characters.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 Autonomous DB Backups will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for ListAutonomousDatabaseBackups in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/autonomousDatabaseBackups", +"response": { +"$ref": "ListAutonomousDatabaseBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"autonomousDatabaseCharacterSets": { +"methods": { +"list": { +"description": "Lists Autonomous Database Character Sets in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabaseCharacterSets", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.autonomousDatabaseCharacterSets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Only the **character_set_type** field is supported in the following format: `character_set_type=\"{characterSetType}\"`. Accepted values include `DATABASE` and `NATIONAL`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 Autonomous DB Character Sets will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for the Autonomous Database in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/autonomousDatabaseCharacterSets", +"response": { +"$ref": "ListAutonomousDatabaseCharacterSetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"autonomousDatabases": { +"methods": { +"create": { +"description": "Creates a new Autonomous Database in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabases", +"httpMethod": "POST", +"id": "oracledatabase.projects.locations.autonomousDatabases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"autonomousDatabaseId": { +"description": "Required. The ID of the Autonomous Database to create. This value is restricted to (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63 characters in length. The value must start with a letter and end with a letter or a number.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional ID to identify the request. This value is used to identify duplicate requests. If you make a request with the same request ID and the original request is still in progress or completed, the server ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/autonomousDatabases", +"request": { +"$ref": "AutonomousDatabase" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Autonomous Database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabases/{autonomousDatabasesId}", +"httpMethod": "DELETE", +"id": "oracledatabase.projects.locations.autonomousDatabases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource in the following format: projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/autonomousDatabases/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional ID to identify the request. This value is used to identify duplicate requests. If you make a request with the same request ID and the original request is still in progress or completed, the server ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateWallet": { +"description": "Generates a wallet for an Autonomous Database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabases/{autonomousDatabasesId}:generateWallet", +"httpMethod": "POST", +"id": "oracledatabase.projects.locations.autonomousDatabases.generateWallet", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Autonomous Database in the following format: projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/autonomousDatabases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:generateWallet", +"request": { +"$ref": "GenerateAutonomousDatabaseWalletRequest" +}, +"response": { +"$ref": "GenerateAutonomousDatabaseWalletResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a single Autonomous Database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabases/{autonomousDatabasesId}", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.autonomousDatabases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Autonomous Database in the following format: projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/autonomousDatabases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "AutonomousDatabase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Autonomous Databases in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabases", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.autonomousDatabases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. An expression for ordering the results of the request.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 Autonomous Database will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for the Autonomous Database in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/autonomousDatabases", +"response": { +"$ref": "ListAutonomousDatabasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "Restores a single Autonomous Database.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDatabases/{autonomousDatabasesId}:restore", +"httpMethod": "POST", +"id": "oracledatabase.projects.locations.autonomousDatabases.restore", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Autonomous Database in the following format: projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/autonomousDatabases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:restore", +"request": { +"$ref": "RestoreAutonomousDatabaseRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"autonomousDbVersions": { +"methods": { +"list": { +"description": "Lists all the available Autonomous Database versions for a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/autonomousDbVersions", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.autonomousDbVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 Autonomous DB Versions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for the Autonomous Database in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/autonomousDbVersions", +"response": { +"$ref": "ListAutonomousDbVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"cloudExadataInfrastructures": { +"methods": { +"create": { +"description": "Creates a new Exadata Infrastructure in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudExadataInfrastructures", +"httpMethod": "POST", +"id": "oracledatabase.projects.locations.cloudExadataInfrastructures.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"cloudExadataInfrastructureId": { +"description": "Required. The ID of the Exadata Infrastructure to create. This value is restricted to (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63 characters in length. The value must start with a letter and end with a letter or a number.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for CloudExadataInfrastructure in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional ID to identify the request. This value is used to identify duplicate requests. If you make a request with the same request ID and the original request is still in progress or completed, the server ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/cloudExadataInfrastructures", +"request": { +"$ref": "CloudExadataInfrastructure" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Exadata Infrastructure.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudExadataInfrastructures/{cloudExadataInfrastructuresId}", +"httpMethod": "DELETE", +"id": "oracledatabase.projects.locations.cloudExadataInfrastructures.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. If set to true, all VM clusters for this Exadata Infrastructure will be deleted. An Exadata Infrastructure can only be deleted once all its VM clusters have been deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the Cloud Exadata Infrastructure in the following format: projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cloudExadataInfrastructures/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional ID to identify the request. This value is used to identify duplicate requests. If you make a request with the same request ID and the original request is still in progress or completed, the server ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Exadata Infrastructure.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudExadataInfrastructures/{cloudExadataInfrastructuresId}", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.cloudExadataInfrastructures.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Cloud Exadata Infrastructure in the following format: projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cloudExadataInfrastructures/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "CloudExadataInfrastructure" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Exadata Infrastructures in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudExadataInfrastructures", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.cloudExadataInfrastructures.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 Exadata infrastructures will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for CloudExadataInfrastructure in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/cloudExadataInfrastructures", +"response": { +"$ref": "ListCloudExadataInfrastructuresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dbServers": { +"methods": { +"list": { +"description": "Lists the database servers of an Exadata Infrastructure instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudExadataInfrastructures/{cloudExadataInfrastructuresId}/dbServers", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.cloudExadataInfrastructures.dbServers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, a maximum of 50 db servers will be returned. The maximum value is 1000; values above 1000 will be reset to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for database server in the following format: projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloudExadataInfrastructure}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cloudExadataInfrastructures/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dbServers", +"response": { +"$ref": "ListDbServersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"cloudVmClusters": { +"methods": { +"create": { +"description": "Creates a new VM Cluster in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudVmClusters", +"httpMethod": "POST", +"id": "oracledatabase.projects.locations.cloudVmClusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"cloudVmClusterId": { +"description": "Required. The ID of the VM Cluster to create. This value is restricted to (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63 characters in length. The value must start with a letter and end with a letter or a number.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional ID to identify the request. This value is used to identify duplicate requests. If you make a request with the same request ID and the original request is still in progress or completed, the server ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/cloudVmClusters", +"request": { +"$ref": "CloudVmCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single VM Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudVmClusters/{cloudVmClustersId}", +"httpMethod": "DELETE", +"id": "oracledatabase.projects.locations.cloudVmClusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. If set to true, all child resources for the VM Cluster will be deleted. A VM Cluster can only be deleted once all its child resources have been deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the Cloud VM Cluster in the following format: projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cloudVmClusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional ID to identify the request. This value is used to identify duplicate requests. If you make a request with the same request ID and the original request is still in progress or completed, the server ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single VM Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudVmClusters/{cloudVmClustersId}", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.cloudVmClusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Cloud VM Cluster in the following format: projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cloudVmClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "CloudVmCluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the VM Clusters in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudVmClusters", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.cloudVmClusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The number of VM clusters to return. If unspecified, at most 50 VM clusters will be returned. The maximum value is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying the page of results the server returns.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/cloudVmClusters", +"response": { +"$ref": "ListCloudVmClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dbNodes": { +"methods": { +"list": { +"description": "Lists the database nodes of a VM Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/cloudVmClusters/{cloudVmClustersId}/dbNodes", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.cloudVmClusters.dbNodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 db nodes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the node should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for database node in the following format: projects/{project}/locations/{location}/cloudVmClusters/{cloudVmCluster}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cloudVmClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dbNodes", +"response": { +"$ref": "ListDbNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"dbSystemShapes": { +"methods": { +"list": { +"description": "Lists the database system shapes available for the project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dbSystemShapes", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.dbSystemShapes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, at most 50 database system shapes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for Database System Shapes in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dbSystemShapes", +"response": { +"$ref": "ListDbSystemShapesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"entitlements": { +"methods": { +"list": { +"description": "Lists the entitlements in a given project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entitlements", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.entitlements.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, a maximum of 50 entitlements will be returned. The maximum value is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for the entitlement in the following format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entitlements", +"response": { +"$ref": "ListEntitlementsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"giVersions": { +"methods": { +"list": { +"description": "Lists all the valid Oracle Grid Infrastructure (GI) versions for the given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/giVersions", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.giVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If unspecified, a maximum of 50 Oracle Grid Infrastructure (GI) versions will be returned. The maximum value is 1000; values above 1000 will be reset to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent value for Grid Infrastructure Version in the following format: Format: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/giVersions", +"response": { +"$ref": "ListGiVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "oracledatabase.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "oracledatabase.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "oracledatabase.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241210", +"rootUrl": "https://oracledatabase.googleapis.com/", +"schemas": { +"AllConnectionStrings": { +"description": "A list of all connection strings that can be used to connect to the Autonomous Database.", +"id": "AllConnectionStrings", +"properties": { +"high": { +"description": "Output only. The database service provides the highest level of resources to each SQL statement.", +"readOnly": true, +"type": "string" +}, +"low": { +"description": "Output only. The database service provides the least level of resources to each SQL statement.", +"readOnly": true, +"type": "string" +}, +"medium": { +"description": "Output only. The database service provides a lower level of resources to each SQL statement.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDatabase": { +"description": "Details of the Autonomous Database resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabase/", +"id": "AutonomousDatabase", +"properties": { +"adminPassword": { +"description": "Optional. The password for the default ADMIN user.", +"type": "string" +}, +"cidr": { +"description": "Required. The subnet CIDR range for the Autonmous Database.", +"type": "string" +}, +"createTime": { +"description": "Output only. The date and time that the Autonomous Database was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"database": { +"description": "Optional. The name of the Autonomous Database. The database name must be unique in the project. The name must begin with a letter and can contain a maximum of 30 alphanumeric characters.", +"type": "string" +}, +"displayName": { +"description": "Optional. The display name for the Autonomous Database. The name does not have to be unique within your project.", +"type": "string" +}, +"entitlementId": { +"description": "Output only. The ID of the subscription entitlement associated with the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels or tags associated with the Autonomous Database.", +"type": "object" +}, +"name": { +"description": "Identifier. The name of the Autonomous Database resource in the following format: projects/{project}/locations/{region}/autonomousDatabases/{autonomous_database}", +"type": "string" +}, +"network": { +"description": "Required. The name of the VPC network used by the Autonomous Database in the following format: projects/{project}/global/networks/{network}", +"type": "string" +}, +"properties": { +"$ref": "AutonomousDatabaseProperties", +"description": "Optional. The properties of the Autonomous Database." +} +}, +"type": "object" +}, +"AutonomousDatabaseApex": { +"description": "Oracle APEX Application Development. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseApex", +"id": "AutonomousDatabaseApex", +"properties": { +"apexVersion": { +"description": "Output only. The Oracle APEX Application Development version.", +"readOnly": true, +"type": "string" +}, +"ordsVersion": { +"description": "Output only. The Oracle REST Data Services (ORDS) version.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDatabaseBackup": { +"description": "Details of the Autonomous Database Backup resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabaseBackup/", +"id": "AutonomousDatabaseBackup", +"properties": { +"autonomousDatabase": { +"description": "Required. The name of the Autonomous Database resource for which the backup is being created. Format: projects/{project}/locations/{region}/autonomousDatabases/{autonomous_database}", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly name for the Backup. The name does not have to be unique.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. labels or tags associated with the resource.", +"type": "object" +}, +"name": { +"description": "Identifier. The name of the Autonomous Database Backup resource with the format: projects/{project}/locations/{region}/autonomousDatabaseBackups/{autonomous_database_backup}", +"type": "string" +}, +"properties": { +"$ref": "AutonomousDatabaseBackupProperties", +"description": "Optional. Various properties of the backup." +} +}, +"type": "object" +}, +"AutonomousDatabaseBackupProperties": { +"description": "Properties of the Autonomous Database Backup resource.", +"id": "AutonomousDatabaseBackupProperties", +"properties": { +"availableTillTime": { +"description": "Output only. Timestamp until when the backup will be available.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"compartmentId": { +"description": "Output only. The OCID of the compartment.", +"readOnly": true, +"type": "string" +}, +"databaseSizeTb": { +"description": "Output only. The quantity of data in the database, in terabytes.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"dbVersion": { +"description": "Output only. A valid Oracle Database version for Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The date and time the backup completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"isAutomaticBackup": { +"description": "Output only. Indicates if the backup is automatic or user initiated.", +"readOnly": true, +"type": "boolean" +}, +"isLongTermBackup": { +"description": "Output only. Indicates if the backup is long term backup.", +"readOnly": true, +"type": "boolean" +}, +"isRestorable": { +"description": "Output only. Indicates if the backup can be used to restore the Autonomous Database.", +"readOnly": true, +"type": "boolean" +}, +"keyStoreId": { +"description": "Optional. The OCID of the key store of Oracle Vault.", +"type": "string" +}, +"keyStoreWallet": { +"description": "Optional. The wallet name for Oracle Key Vault.", +"type": "string" +}, +"kmsKeyId": { +"description": "Optional. The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.", +"type": "string" +}, +"kmsKeyVersionId": { +"description": "Optional. The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation. Autonomous Database Serverless does not use key versions, hence is not applicable for Autonomous Database Serverless instances.", +"type": "string" +}, +"lifecycleDetails": { +"description": "Output only. Additional information about the current lifecycle state.", +"readOnly": true, +"type": "string" +}, +"lifecycleState": { +"description": "Output only. The lifecycle state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"DELETED", +"FAILED", +"UPDATING" +], +"enumDescriptions": [ +"Default unspecified value.", +"Indicates that the resource is in creating state.", +"Indicates that the resource is in active state.", +"Indicates that the resource is in deleting state.", +"Indicates that the resource is in deleted state.", +"Indicates that the resource is in failed state.", +"Indicates that the resource is in updating state." +], +"readOnly": true, +"type": "string" +}, +"ocid": { +"description": "Output only. OCID of the Autonomous Database backup. https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle", +"readOnly": true, +"type": "string" +}, +"retentionPeriodDays": { +"description": "Optional. Retention period in days for the backup.", +"format": "int32", +"type": "integer" +}, +"sizeTb": { +"description": "Output only. The backup size in terabytes.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"startTime": { +"description": "Output only. The date and time the backup started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of the backup.", +"enum": [ +"TYPE_UNSPECIFIED", +"INCREMENTAL", +"FULL", +"LONG_TERM" +], +"enumDescriptions": [ +"Default unspecified value.", +"Incremental backups.", +"Full backups.", +"Long term backups." +], +"readOnly": true, +"type": "string" +}, +"vaultId": { +"description": "Optional. The OCID of the vault.", +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDatabaseCharacterSet": { +"description": "Details of the Autonomous Database character set resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabaseCharacterSets/", +"id": "AutonomousDatabaseCharacterSet", +"properties": { +"characterSet": { +"description": "Output only. The character set name for the Autonomous Database which is the ID in the resource name.", +"readOnly": true, +"type": "string" +}, +"characterSetType": { +"description": "Output only. The character set type for the Autonomous Database.", +"enum": [ +"CHARACTER_SET_TYPE_UNSPECIFIED", +"DATABASE", +"NATIONAL" +], +"enumDescriptions": [ +"Character set type is not specified.", +"Character set type is set to database.", +"Character set type is set to national." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The name of the Autonomous Database Character Set resource in the following format: projects/{project}/locations/{region}/autonomousDatabaseCharacterSets/{autonomous_database_character_set}", +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDatabaseConnectionStrings": { +"description": "The connection string used to connect to the Autonomous Database. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseConnectionStrings", +"id": "AutonomousDatabaseConnectionStrings", +"properties": { +"allConnectionStrings": { +"$ref": "AllConnectionStrings", +"description": "Output only. Returns all connection strings that can be used to connect to the Autonomous Database.", +"readOnly": true +}, +"dedicated": { +"description": "Output only. The database service provides the least level of resources to each SQL statement, but supports the most number of concurrent SQL statements.", +"readOnly": true, +"type": "string" +}, +"high": { +"description": "Output only. The database service provides the highest level of resources to each SQL statement.", +"readOnly": true, +"type": "string" +}, +"low": { +"description": "Output only. The database service provides the least level of resources to each SQL statement.", +"readOnly": true, +"type": "string" +}, +"medium": { +"description": "Output only. The database service provides a lower level of resources to each SQL statement.", +"readOnly": true, +"type": "string" +}, +"profiles": { +"description": "Output only. A list of connection string profiles to allow clients to group, filter, and select values based on the structured metadata.", +"items": { +"$ref": "DatabaseConnectionStringProfile" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"AutonomousDatabaseConnectionUrls": { +"description": "The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute instance. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseConnectionUrls", +"id": "AutonomousDatabaseConnectionUrls", +"properties": { +"apexUri": { +"description": "Output only. Oracle Application Express (APEX) URL.", +"readOnly": true, +"type": "string" +}, +"databaseTransformsUri": { +"description": "Output only. The URL of the Database Transforms for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"graphStudioUri": { +"description": "Output only. The URL of the Graph Studio for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"machineLearningNotebookUri": { +"description": "Output only. The URL of the Oracle Machine Learning (OML) Notebook for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"machineLearningUserManagementUri": { +"description": "Output only. The URL of Machine Learning user management the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"mongoDbUri": { +"description": "Output only. The URL of the MongoDB API for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"ordsUri": { +"description": "Output only. The Oracle REST Data Services (ORDS) URL of the Web Access for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"sqlDevWebUri": { +"description": "Output only. The URL of the Oracle SQL Developer Web for the Autonomous Database.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDatabaseProperties": { +"description": "The properties of an Autonomous Database.", +"id": "AutonomousDatabaseProperties", +"properties": { +"actualUsedDataStorageSizeTb": { +"description": "Output only. The amount of storage currently being used for user and system data, in terabytes.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"allocatedStorageSizeTb": { +"description": "Output only. The amount of storage currently allocated for the database tables and billed for, rounded up in terabytes.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"apexDetails": { +"$ref": "AutonomousDatabaseApex", +"description": "Output only. The details for the Oracle APEX Application Development.", +"readOnly": true +}, +"arePrimaryAllowlistedIpsUsed": { +"description": "Output only. This field indicates the status of Data Guard and Access control for the Autonomous Database. The field's value is null if Data Guard is disabled or Access Control is disabled. The field's value is TRUE if both Data Guard and Access Control are enabled, and the Autonomous Database is using primary IP access control list (ACL) for standby. The field's value is FALSE if both Data Guard and Access Control are enabled, and the Autonomous Database is using a different IP access control list (ACL) for standby compared to primary.", +"readOnly": true, +"type": "boolean" +}, +"autonomousContainerDatabaseId": { +"description": "Output only. The Autonomous Container Database OCID.", +"readOnly": true, +"type": "string" +}, +"availableUpgradeVersions": { +"description": "Output only. The list of available Oracle Database upgrade versions for an Autonomous Database.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"backupRetentionPeriodDays": { +"description": "Optional. The retention period for the Autonomous Database. This field is specified in days, can range from 1 day to 60 days, and has a default value of 60 days.", +"format": "int32", +"type": "integer" +}, +"characterSet": { +"description": "Optional. The character set for the Autonomous Database. The default is AL32UTF8.", +"type": "string" +}, +"computeCount": { +"description": "Optional. The number of compute servers for the Autonomous Database.", +"format": "float", +"type": "number" +}, +"connectionStrings": { +"$ref": "AutonomousDatabaseConnectionStrings", +"description": "Output only. The connection strings used to connect to an Autonomous Database.", +"readOnly": true +}, +"connectionUrls": { +"$ref": "AutonomousDatabaseConnectionUrls", +"description": "Output only. The Oracle Connection URLs for an Autonomous Database.", +"readOnly": true +}, +"cpuCoreCount": { +"description": "Optional. The number of CPU cores to be made available to the database.", +"format": "int32", +"type": "integer" +}, +"customerContacts": { +"description": "Optional. The list of customer contacts.", +"items": { +"$ref": "CustomerContact" +}, +"type": "array" +}, +"dataSafeState": { +"description": "Output only. The current state of the Data Safe registration for the Autonomous Database.", +"enum": [ +"DATA_SAFE_STATE_UNSPECIFIED", +"REGISTERING", +"REGISTERED", +"DEREGISTERING", +"NOT_REGISTERED", +"FAILED" +], +"enumDescriptions": [ +"Default unspecified value.", +"Registering data safe state.", +"Registered data safe state.", +"Deregistering data safe state.", +"Not registered data safe state.", +"Failed data safe state." +], +"readOnly": true, +"type": "string" +}, +"dataStorageSizeGb": { +"description": "Optional. The size of the data stored in the database, in gigabytes.", +"format": "int32", +"type": "integer" +}, +"dataStorageSizeTb": { +"description": "Optional. The size of the data stored in the database, in terabytes.", +"format": "int32", +"type": "integer" +}, +"databaseManagementState": { +"description": "Output only. The current state of database management for the Autonomous Database.", +"enum": [ +"DATABASE_MANAGEMENT_STATE_UNSPECIFIED", +"ENABLING", +"ENABLED", +"DISABLING", +"NOT_ENABLED", +"FAILED_ENABLING", +"FAILED_DISABLING" +], +"enumDescriptions": [ +"Default unspecified value.", +"Enabling Database Management state", +"Enabled Database Management state", +"Disabling Database Management state", +"Not Enabled Database Management state", +"Failed enabling Database Management state", +"Failed disabling Database Management state" +], +"readOnly": true, +"type": "string" +}, +"dbEdition": { +"description": "Optional. The edition of the Autonomous Databases.", +"enum": [ +"DATABASE_EDITION_UNSPECIFIED", +"STANDARD_EDITION", +"ENTERPRISE_EDITION" +], +"enumDescriptions": [ +"Default unspecified value.", +"Standard Database Edition", +"Enterprise Database Edition" +], +"type": "string" +}, +"dbVersion": { +"description": "Optional. The Oracle Database version for the Autonomous Database.", +"type": "string" +}, +"dbWorkload": { +"description": "Required. The workload type of the Autonomous Database.", +"enum": [ +"DB_WORKLOAD_UNSPECIFIED", +"OLTP", +"DW", +"AJD", +"APEX" +], +"enumDescriptions": [ +"Default unspecified value.", +"Autonomous Transaction Processing database.", +"Autonomous Data Warehouse database.", +"Autonomous JSON Database.", +"Autonomous Database with the Oracle APEX Application Development workload type." +], +"type": "string" +}, +"failedDataRecoveryDuration": { +"description": "Output only. This field indicates the number of seconds of data loss during a Data Guard failover.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"isAutoScalingEnabled": { +"description": "Optional. This field indicates if auto scaling is enabled for the Autonomous Database CPU core count.", +"type": "boolean" +}, +"isLocalDataGuardEnabled": { +"description": "Output only. This field indicates whether the Autonomous Database has local (in-region) Data Guard enabled.", +"readOnly": true, +"type": "boolean" +}, +"isStorageAutoScalingEnabled": { +"description": "Optional. This field indicates if auto scaling is enabled for the Autonomous Database storage.", +"type": "boolean" +}, +"licenseType": { +"description": "Required. The license type used for the Autonomous Database.", +"enum": [ +"LICENSE_TYPE_UNSPECIFIED", +"LICENSE_INCLUDED", +"BRING_YOUR_OWN_LICENSE" +], +"enumDescriptions": [ +"Unspecified", +"License included part of offer", +"Bring your own license" +], +"type": "string" +}, +"lifecycleDetails": { +"description": "Output only. The details of the current lifestyle state of the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"localAdgAutoFailoverMaxDataLossLimit": { +"description": "Output only. This field indicates the maximum data loss limit for an Autonomous Database, in seconds.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"localDisasterRecoveryType": { +"description": "Output only. This field indicates the local disaster recovery (DR) type of an Autonomous Database.", +"enum": [ +"LOCAL_DISASTER_RECOVERY_TYPE_UNSPECIFIED", +"ADG", +"BACKUP_BASED" +], +"enumDescriptions": [ +"Default unspecified value.", +"Autonomous Data Guard recovery.", +"Backup based recovery." +], +"readOnly": true, +"type": "string" +}, +"localStandbyDb": { +"$ref": "AutonomousDatabaseStandbySummary", +"description": "Output only. The details of the Autonomous Data Guard standby database.", +"readOnly": true +}, +"maintenanceBeginTime": { +"description": "Output only. The date and time when maintenance will begin.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"maintenanceEndTime": { +"description": "Output only. The date and time when maintenance will end.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"maintenanceScheduleType": { +"description": "Optional. The maintenance schedule of the Autonomous Database.", +"enum": [ +"MAINTENANCE_SCHEDULE_TYPE_UNSPECIFIED", +"EARLY", +"REGULAR" +], +"enumDescriptions": [ +"Default unspecified value.", +"An EARLY maintenance schedule patches the database before the regular scheduled maintenance.", +"A REGULAR maintenance schedule follows the normal maintenance cycle." +], +"type": "string" +}, +"memoryPerOracleComputeUnitGbs": { +"description": "Output only. The amount of memory enabled per ECPU, in gigabytes.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"memoryTableGbs": { +"description": "Output only. The memory assigned to in-memory tables in an Autonomous Database.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"mtlsConnectionRequired": { +"description": "Optional. This field specifies if the Autonomous Database requires mTLS connections.", +"type": "boolean" +}, +"nCharacterSet": { +"description": "Optional. The national character set for the Autonomous Database. The default is AL16UTF16.", +"type": "string" +}, +"nextLongTermBackupTime": { +"description": "Output only. The long term backup schedule of the Autonomous Database.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"ociUrl": { +"description": "Output only. The Oracle Cloud Infrastructure link for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"ocid": { +"description": "Output only. OCID of the Autonomous Database. https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle", +"readOnly": true, +"type": "string" +}, +"openMode": { +"description": "Output only. This field indicates the current mode of the Autonomous Database.", +"enum": [ +"OPEN_MODE_UNSPECIFIED", +"READ_ONLY", +"READ_WRITE" +], +"enumDescriptions": [ +"Default unspecified value.", +"Read Only Mode", +"Read Write Mode" +], +"readOnly": true, +"type": "string" +}, +"operationsInsightsState": { +"description": "Output only. This field indicates the state of Operations Insights for the Autonomous Database.", +"enum": [ +"OPERATIONS_INSIGHTS_STATE_UNSPECIFIED", +"ENABLING", +"ENABLED", +"DISABLING", +"NOT_ENABLED", +"FAILED_ENABLING", +"FAILED_DISABLING" +], +"enumDescriptions": [ +"Default unspecified value.", +"Enabling status for operation insights.", +"Enabled status for operation insights.", +"Disabling status for operation insights.", +"Not Enabled status for operation insights.", +"Failed enabling status for operation insights.", +"Failed disabling status for operation insights." +], +"readOnly": true, +"type": "string" +}, +"peerDbIds": { +"description": "Output only. The list of OCIDs of standby databases located in Autonomous Data Guard remote regions that are associated with the source database.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"permissionLevel": { +"description": "Output only. The permission level of the Autonomous Database.", +"enum": [ +"PERMISSION_LEVEL_UNSPECIFIED", +"RESTRICTED", +"UNRESTRICTED" +], +"enumDescriptions": [ +"Default unspecified value.", +"Restricted mode allows access only by admin users.", +"Normal access." +], +"readOnly": true, +"type": "string" +}, +"privateEndpoint": { +"description": "Output only. The private endpoint for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"privateEndpointIp": { +"description": "Optional. The private endpoint IP address for the Autonomous Database.", +"type": "string" +}, +"privateEndpointLabel": { +"description": "Optional. The private endpoint label for the Autonomous Database.", +"type": "string" +}, +"refreshableMode": { +"description": "Output only. The refresh mode of the cloned Autonomous Database.", +"enum": [ +"REFRESHABLE_MODE_UNSPECIFIED", +"AUTOMATIC", +"MANUAL" +], +"enumDescriptions": [ +"The default unspecified value.", +"AUTOMATIC indicates that the cloned database is automatically refreshed with data from the source Autonomous Database.", +"MANUAL indicates that the cloned database is manually refreshed with data from the source Autonomous Database." +], +"readOnly": true, +"type": "string" +}, +"refreshableState": { +"description": "Output only. The refresh State of the clone.", +"enum": [ +"REFRESHABLE_STATE_UNSPECIFIED", +"REFRESHING", +"NOT_REFRESHING" +], +"enumDescriptions": [ +"Default unspecified value.", +"Refreshing", +"Not refreshed" +], +"readOnly": true, +"type": "string" +}, +"role": { +"description": "Output only. The Data Guard role of the Autonomous Database.", +"enum": [ +"ROLE_UNSPECIFIED", +"PRIMARY", +"STANDBY", +"DISABLED_STANDBY", +"BACKUP_COPY", +"SNAPSHOT_STANDBY" +], +"enumDescriptions": [ +"Default unspecified value.", +"Primary role", +"Standby role", +"Disabled standby role", +"Backup copy role", +"Snapshot standby role" +], +"readOnly": true, +"type": "string" +}, +"scheduledOperationDetails": { +"description": "Output only. The list and details of the scheduled operations of the Autonomous Database.", +"items": { +"$ref": "ScheduledOperationDetails" +}, +"readOnly": true, +"type": "array" +}, +"secretId": { +"description": "Optional. The ID of the Oracle Cloud Infrastructure vault secret.", +"type": "string" +}, +"sqlWebDeveloperUrl": { +"description": "Output only. The SQL Web Developer URL for the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current lifecycle state of the Autonomous Database.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"AVAILABLE", +"STOPPING", +"STOPPED", +"STARTING", +"TERMINATING", +"TERMINATED", +"UNAVAILABLE", +"RESTORE_IN_PROGRESS", +"RESTORE_FAILED", +"BACKUP_IN_PROGRESS", +"SCALE_IN_PROGRESS", +"AVAILABLE_NEEDS_ATTENTION", +"UPDATING", +"MAINTENANCE_IN_PROGRESS", +"RESTARTING", +"RECREATING", +"ROLE_CHANGE_IN_PROGRESS", +"UPGRADING", +"INACCESSIBLE", +"STANDBY" +], +"enumDescriptions": [ +"Default unspecified value.", +"Indicates that the Autonomous Database is in provisioning state.", +"Indicates that the Autonomous Database is in available state.", +"Indicates that the Autonomous Database is in stopping state.", +"Indicates that the Autonomous Database is in stopped state.", +"Indicates that the Autonomous Database is in starting state.", +"Indicates that the Autonomous Database is in terminating state.", +"Indicates that the Autonomous Database is in terminated state.", +"Indicates that the Autonomous Database is in unavailable state.", +"Indicates that the Autonomous Database restore is in progress.", +"Indicates that the Autonomous Database failed to restore.", +"Indicates that the Autonomous Database backup is in progress.", +"Indicates that the Autonomous Database scale is in progress.", +"Indicates that the Autonomous Database is available but needs attention state.", +"Indicates that the Autonomous Database is in updating state.", +"Indicates that the Autonomous Database's maintenance is in progress state.", +"Indicates that the Autonomous Database is in restarting state.", +"Indicates that the Autonomous Database is in recreating state.", +"Indicates that the Autonomous Database's role change is in progress state.", +"Indicates that the Autonomous Database is in upgrading state.", +"Indicates that the Autonomous Database is in inaccessible state.", +"Indicates that the Autonomous Database is in standby state." +], +"readOnly": true, +"type": "string" +}, +"supportedCloneRegions": { +"description": "Output only. The list of available regions that can be used to create a clone for the Autonomous Database.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"totalAutoBackupStorageSizeGbs": { +"description": "Output only. The storage space used by automatic backups of Autonomous Database, in gigabytes.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"usedDataStorageSizeTbs": { +"description": "Output only. The storage space used by Autonomous Database, in gigabytes.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"vaultId": { +"description": "Optional. The ID of the Oracle Cloud Infrastructure vault.", +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDatabaseStandbySummary": { +"description": "Autonomous Data Guard standby database details. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseStandbySummary", +"id": "AutonomousDatabaseStandbySummary", +"properties": { +"dataGuardRoleChangedTime": { +"description": "Output only. The date and time the Autonomous Data Guard role was switched for the standby Autonomous Database.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"disasterRecoveryRoleChangedTime": { +"description": "Output only. The date and time the Disaster Recovery role was switched for the standby Autonomous Database.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lagTimeDuration": { +"description": "Output only. The amount of time, in seconds, that the data of the standby database lags in comparison to the data of the primary database.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"lifecycleDetails": { +"description": "Output only. The additional details about the current lifecycle state of the Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current lifecycle state of the Autonomous Database.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"AVAILABLE", +"STOPPING", +"STOPPED", +"STARTING", +"TERMINATING", +"TERMINATED", +"UNAVAILABLE", +"RESTORE_IN_PROGRESS", +"RESTORE_FAILED", +"BACKUP_IN_PROGRESS", +"SCALE_IN_PROGRESS", +"AVAILABLE_NEEDS_ATTENTION", +"UPDATING", +"MAINTENANCE_IN_PROGRESS", +"RESTARTING", +"RECREATING", +"ROLE_CHANGE_IN_PROGRESS", +"UPGRADING", +"INACCESSIBLE", +"STANDBY" +], +"enumDescriptions": [ +"Default unspecified value.", +"Indicates that the Autonomous Database is in provisioning state.", +"Indicates that the Autonomous Database is in available state.", +"Indicates that the Autonomous Database is in stopping state.", +"Indicates that the Autonomous Database is in stopped state.", +"Indicates that the Autonomous Database is in starting state.", +"Indicates that the Autonomous Database is in terminating state.", +"Indicates that the Autonomous Database is in terminated state.", +"Indicates that the Autonomous Database is in unavailable state.", +"Indicates that the Autonomous Database restore is in progress.", +"Indicates that the Autonomous Database failed to restore.", +"Indicates that the Autonomous Database backup is in progress.", +"Indicates that the Autonomous Database scale is in progress.", +"Indicates that the Autonomous Database is available but needs attention state.", +"Indicates that the Autonomous Database is in updating state.", +"Indicates that the Autonomous Database's maintenance is in progress state.", +"Indicates that the Autonomous Database is in restarting state.", +"Indicates that the Autonomous Database is in recreating state.", +"Indicates that the Autonomous Database's role change is in progress state.", +"Indicates that the Autonomous Database is in upgrading state.", +"Indicates that the Autonomous Database is in inaccessible state.", +"Indicates that the Autonomous Database is in standby state." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AutonomousDbVersion": { +"description": "Details of the Autonomous Database version. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDbVersionSummary/", +"id": "AutonomousDbVersion", +"properties": { +"dbWorkload": { +"description": "Output only. The Autonomous Database workload type.", +"enum": [ +"DB_WORKLOAD_UNSPECIFIED", +"OLTP", +"DW", +"AJD", +"APEX" +], +"enumDescriptions": [ +"Default unspecified value.", +"Autonomous Transaction Processing database.", +"Autonomous Data Warehouse database.", +"Autonomous JSON Database.", +"Autonomous Database with the Oracle APEX Application Development workload type." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The name of the Autonomous Database Version resource with the format: projects/{project}/locations/{region}/autonomousDbVersions/{autonomous_db_version}", +"type": "string" +}, +"version": { +"description": "Output only. An Oracle Database version for Autonomous Database.", +"readOnly": true, +"type": "string" +}, +"workloadUri": { +"description": "Output only. A URL that points to a detailed description of the Autonomous Database version.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloudAccountDetails": { +"description": "Details of the OCI Cloud Account.", +"id": "CloudAccountDetails", +"properties": { +"accountCreationUri": { +"description": "Output only. URL to create a new account and link.", +"readOnly": true, +"type": "string" +}, +"cloudAccount": { +"description": "Output only. OCI account name.", +"readOnly": true, +"type": "string" +}, +"cloudAccountHomeRegion": { +"description": "Output only. OCI account home region.", +"readOnly": true, +"type": "string" +}, +"linkExistingAccountUri": { +"description": "Output only. URL to link an existing account.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CloudExadataInfrastructure": { +"description": "Represents CloudExadataInfrastructure resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/CloudExadataInfrastructure/", +"id": "CloudExadataInfrastructure", +"properties": { +"createTime": { +"description": "Output only. The date and time that the Exadata Infrastructure was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly name for this resource.", +"type": "string" +}, +"entitlementId": { +"description": "Output only. Entitlement ID of the private offer against which this infrastructure resource is provisioned.", +"readOnly": true, +"type": "string" +}, +"gcpOracleZone": { +"description": "Optional. Google Cloud Platform location where Oracle Exadata is hosted.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels or tags associated with the resource.", +"type": "object" +}, +"name": { +"description": "Identifier. The name of the Exadata Infrastructure resource with the format: projects/{project}/locations/{region}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}", +"type": "string" +}, +"properties": { +"$ref": "CloudExadataInfrastructureProperties", +"description": "Optional. Various properties of the infra." +} +}, +"type": "object" +}, +"CloudExadataInfrastructureProperties": { +"description": "Various properties of Exadata Infrastructure.", +"id": "CloudExadataInfrastructureProperties", +"properties": { +"activatedStorageCount": { +"description": "Output only. The requested number of additional storage servers activated for the Exadata Infrastructure.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"additionalStorageCount": { +"description": "Output only. The requested number of additional storage servers for the Exadata Infrastructure.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"availableStorageSizeGb": { +"description": "Output only. The available storage can be allocated to the Exadata Infrastructure resource, in gigabytes (GB).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"computeCount": { +"description": "Optional. The number of compute servers for the Exadata Infrastructure.", +"format": "int32", +"type": "integer" +}, +"cpuCount": { +"description": "Output only. The number of enabled CPU cores.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"customerContacts": { +"description": "Optional. The list of customer contacts.", +"items": { +"$ref": "CustomerContact" +}, +"type": "array" +}, +"dataStorageSizeTb": { +"description": "Output only. Size, in terabytes, of the DATA disk group.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"dbNodeStorageSizeGb": { +"description": "Output only. The local node storage allocated in GBs.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"dbServerVersion": { +"description": "Output only. The software version of the database servers (dom0) in the Exadata Infrastructure.", +"readOnly": true, +"type": "string" +}, +"maintenanceWindow": { +"$ref": "MaintenanceWindow", +"description": "Optional. Maintenance window for repair." +}, +"maxCpuCount": { +"description": "Output only. The total number of CPU cores available.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"maxDataStorageTb": { +"description": "Output only. The total available DATA disk group size.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"maxDbNodeStorageSizeGb": { +"description": "Output only. The total local node storage available in GBs.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"maxMemoryGb": { +"description": "Output only. The total memory available in GBs.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"memorySizeGb": { +"description": "Output only. The memory allocated in GBs.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"monthlyDbServerVersion": { +"description": "Output only. The monthly software version of the database servers (dom0) in the Exadata Infrastructure. Example: 20.1.15", +"readOnly": true, +"type": "string" +}, +"monthlyStorageServerVersion": { +"description": "Output only. The monthly software version of the storage servers (cells) in the Exadata Infrastructure. Example: 20.1.15", +"readOnly": true, +"type": "string" +}, +"nextMaintenanceRunId": { +"description": "Output only. The OCID of the next maintenance run.", +"readOnly": true, +"type": "string" +}, +"nextMaintenanceRunTime": { +"description": "Output only. The time when the next maintenance run will occur.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"nextSecurityMaintenanceRunTime": { +"description": "Output only. The time when the next security maintenance run will occur.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"ociUrl": { +"description": "Output only. Deep link to the OCI console to view this resource.", +"readOnly": true, +"type": "string" +}, +"ocid": { +"description": "Output only. OCID of created infra. https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle", +"readOnly": true, +"type": "string" +}, +"shape": { +"description": "Required. The shape of the Exadata Infrastructure. The shape determines the amount of CPU, storage, and memory resources allocated to the instance.", +"type": "string" +}, +"state": { +"description": "Output only. The current lifecycle state of the Exadata Infrastructure.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"AVAILABLE", +"UPDATING", +"TERMINATING", +"TERMINATED", +"FAILED", +"MAINTENANCE_IN_PROGRESS" +], +"enumDescriptions": [ +"Default unspecified value.", +"The Exadata Infrastructure is being provisioned.", +"The Exadata Infrastructure is available for use.", +"The Exadata Infrastructure is being updated.", +"The Exadata Infrastructure is being terminated.", +"The Exadata Infrastructure is terminated.", +"The Exadata Infrastructure is in failed state.", +"The Exadata Infrastructure is in maintenance." +], +"readOnly": true, +"type": "string" +}, +"storageCount": { +"description": "Optional. The number of Cloud Exadata storage servers for the Exadata Infrastructure.", +"format": "int32", +"type": "integer" +}, +"storageServerVersion": { +"description": "Output only. The software version of the storage servers (cells) in the Exadata Infrastructure.", +"readOnly": true, +"type": "string" +}, +"totalStorageSizeGb": { +"description": "Optional. The total storage allocated to the Exadata Infrastructure resource, in gigabytes (GB).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"CloudVmCluster": { +"description": "Details of the Cloud VM Cluster resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/CloudVmCluster/", +"id": "CloudVmCluster", +"properties": { +"backupSubnetCidr": { +"description": "Required. CIDR range of the backup subnet.", +"type": "string" +}, +"cidr": { +"description": "Required. Network settings. CIDR to use for cluster IP allocation.", +"type": "string" +}, +"createTime": { +"description": "Output only. The date and time that the VM cluster was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly name for this resource.", +"type": "string" +}, +"exadataInfrastructure": { +"description": "Required. The name of the Exadata Infrastructure resource on which VM cluster resource is created, in the following format: projects/{project}/locations/{region}/cloudExadataInfrastuctures/{cloud_extradata_infrastructure}", +"type": "string" +}, +"gcpOracleZone": { +"description": "Output only. Google Cloud Platform location where Oracle Exadata is hosted. It is same as Google Cloud Platform Oracle zone of Exadata infrastructure.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels or tags associated with the VM Cluster.", +"type": "object" +}, +"name": { +"description": "Identifier. The name of the VM Cluster resource with the format: projects/{project}/locations/{region}/cloudVmClusters/{cloud_vm_cluster}", +"type": "string" +}, +"network": { +"description": "Required. The name of the VPC network. Format: projects/{project}/global/networks/{network}", +"type": "string" +}, +"properties": { +"$ref": "CloudVmClusterProperties", +"description": "Optional. Various properties of the VM Cluster." +} +}, +"type": "object" +}, +"CloudVmClusterProperties": { +"description": "Various properties and settings associated with Exadata VM cluster.", +"id": "CloudVmClusterProperties", +"properties": { +"clusterName": { +"description": "Optional. OCI Cluster name.", +"type": "string" +}, +"compartmentId": { +"description": "Output only. Compartment ID of cluster.", +"readOnly": true, +"type": "string" +}, +"cpuCoreCount": { +"description": "Required. Number of enabled CPU cores.", +"format": "int32", +"type": "integer" +}, +"dataStorageSizeTb": { +"description": "Optional. The data disk group size to be allocated in TBs.", +"format": "double", +"type": "number" +}, +"dbNodeStorageSizeGb": { +"description": "Optional. Local storage per VM.", +"format": "int32", +"type": "integer" +}, +"dbServerOcids": { +"description": "Optional. OCID of database servers.", +"items": { +"type": "string" +}, +"type": "array" +}, +"diagnosticsDataCollectionOptions": { +"$ref": "DataCollectionOptions", +"description": "Optional. Data collection options for diagnostics." +}, +"diskRedundancy": { +"description": "Optional. The type of redundancy.", +"enum": [ +"DISK_REDUNDANCY_UNSPECIFIED", +"HIGH", +"NORMAL" +], +"enumDescriptions": [ +"Unspecified.", +"High - 3 way mirror.", +"Normal - 2 way mirror." +], +"type": "string" +}, +"dnsListenerIp": { +"description": "Output only. DNS listener IP.", +"readOnly": true, +"type": "string" +}, +"domain": { +"description": "Output only. Parent DNS domain where SCAN DNS and hosts names are qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com", +"readOnly": true, +"type": "string" +}, +"giVersion": { +"description": "Optional. Grid Infrastructure Version.", +"type": "string" +}, +"hostname": { +"description": "Output only. host name without domain. format: \"-\" with some suffix. ex: sp2-yi0xq where \"sp2\" is the hostname_prefix.", +"readOnly": true, +"type": "string" +}, +"hostnamePrefix": { +"description": "Optional. Prefix for VM cluster host names.", +"type": "string" +}, +"licenseType": { +"description": "Required. License type of VM Cluster.", +"enum": [ +"LICENSE_TYPE_UNSPECIFIED", +"LICENSE_INCLUDED", +"BRING_YOUR_OWN_LICENSE" +], +"enumDescriptions": [ +"Unspecified", +"License included part of offer", +"Bring your own license" +], +"type": "string" +}, +"localBackupEnabled": { +"description": "Optional. Use local backup.", +"type": "boolean" +}, +"memorySizeGb": { +"description": "Optional. Memory allocated in GBs.", +"format": "int32", +"type": "integer" +}, +"nodeCount": { +"description": "Optional. Number of database servers.", +"format": "int32", +"type": "integer" +}, +"ociUrl": { +"description": "Output only. Deep link to the OCI console to view this resource.", +"readOnly": true, +"type": "string" +}, +"ocid": { +"description": "Output only. Oracle Cloud Infrastructure ID of VM Cluster.", +"readOnly": true, +"type": "string" +}, +"ocpuCount": { +"description": "Optional. OCPU count per VM. Minimum is 0.1.", +"format": "float", +"type": "number" +}, +"scanDns": { +"description": "Output only. SCAN DNS name. ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com", +"readOnly": true, +"type": "string" +}, +"scanDnsRecordId": { +"description": "Output only. OCID of scan DNS record.", +"readOnly": true, +"type": "string" +}, +"scanIpIds": { +"description": "Output only. OCIDs of scan IPs.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"scanListenerPortTcp": { +"description": "Output only. SCAN listener port - TCP", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"scanListenerPortTcpSsl": { +"description": "Output only. SCAN listener port - TLS", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"shape": { +"description": "Output only. Shape of VM Cluster.", +"readOnly": true, +"type": "string" +}, +"sparseDiskgroupEnabled": { +"description": "Optional. Use exadata sparse snapshots.", +"type": "boolean" +}, +"sshPublicKeys": { +"description": "Optional. SSH public keys to be stored with cluster.", +"items": { +"type": "string" +}, +"type": "array" +}, +"state": { +"description": "Output only. State of the cluster.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"AVAILABLE", +"UPDATING", +"TERMINATING", +"TERMINATED", +"FAILED", +"MAINTENANCE_IN_PROGRESS" +], +"enumDescriptions": [ +"Default unspecified value.", +"Indicates that the resource is in provisioning state.", +"Indicates that the resource is in available state.", +"Indicates that the resource is in updating state.", +"Indicates that the resource is in terminating state.", +"Indicates that the resource is in terminated state.", +"Indicates that the resource is in failed state.", +"Indicates that the resource is in maintenance in progress state." +], +"readOnly": true, +"type": "string" +}, +"storageSizeGb": { +"description": "Output only. The storage allocation for the disk group, in gigabytes (GB).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"systemVersion": { +"description": "Optional. Operating system version of the image.", +"type": "string" +}, +"timeZone": { +"$ref": "TimeZone", +"description": "Optional. Time zone of VM Cluster to set. Defaults to UTC if not specified." +} +}, +"type": "object" +}, +"CustomerContact": { +"description": "The CustomerContact reference as defined by Oracle. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/CustomerContact", +"id": "CustomerContact", +"properties": { +"email": { +"description": "Required. The email address used by Oracle to send notifications regarding databases and infrastructure.", +"type": "string" +} +}, +"type": "object" +}, +"DataCollectionOptions": { +"description": "Data collection options for diagnostics.", +"id": "DataCollectionOptions", +"properties": { +"diagnosticsEventsEnabled": { +"description": "Optional. Indicates whether diagnostic collection is enabled for the VM cluster", +"type": "boolean" +}, +"healthMonitoringEnabled": { +"description": "Optional. Indicates whether health monitoring is enabled for the VM cluster", +"type": "boolean" +}, +"incidentLogsEnabled": { +"description": "Optional. Indicates whether incident logs and trace collection are enabled for the VM cluster", +"type": "boolean" +} +}, +"type": "object" +}, +"DatabaseConnectionStringProfile": { +"description": "The connection string profile to allow clients to group. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/DatabaseConnectionStringProfile", +"id": "DatabaseConnectionStringProfile", +"properties": { +"consumerGroup": { +"description": "Output only. The current consumer group being used by the connection.", +"enum": [ +"CONSUMER_GROUP_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"TP", +"TPURGENT" +], +"enumDescriptions": [ +"Default unspecified value.", +"High consumer group.", +"Medium consumer group.", +"Low consumer group.", +"TP consumer group.", +"TPURGENT consumer group." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The display name for the database connection.", +"readOnly": true, +"type": "string" +}, +"hostFormat": { +"description": "Output only. The host name format being currently used in connection string.", +"enum": [ +"HOST_FORMAT_UNSPECIFIED", +"FQDN", +"IP" +], +"enumDescriptions": [ +"Default unspecified value.", +"FQDN", +"IP" +], +"readOnly": true, +"type": "string" +}, +"isRegional": { +"description": "Output only. This field indicates if the connection string is regional and is only applicable for cross-region Data Guard.", +"readOnly": true, +"type": "boolean" +}, +"protocol": { +"description": "Output only. The protocol being used by the connection.", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"TCP", +"TCPS" +], +"enumDescriptions": [ +"Default unspecified value.", +"Tcp", +"Tcps" +], +"readOnly": true, +"type": "string" +}, +"sessionMode": { +"description": "Output only. The current session mode of the connection.", +"enum": [ +"SESSION_MODE_UNSPECIFIED", +"DIRECT", +"INDIRECT" +], +"enumDescriptions": [ +"Default unspecified value.", +"Direct", +"Indirect" +], +"readOnly": true, +"type": "string" +}, +"syntaxFormat": { +"description": "Output only. The syntax of the connection string.", +"enum": [ +"SYNTAX_FORMAT_UNSPECIFIED", +"LONG", +"EZCONNECT", +"EZCONNECTPLUS" +], +"enumDescriptions": [ +"Default unspecified value.", +"Long", +"Ezconnect", +"Ezconnectplus" +], +"readOnly": true, +"type": "string" +}, +"tlsAuthentication": { +"description": "Output only. This field indicates the TLS authentication type of the connection.", +"enum": [ +"TLS_AUTHENTICATION_UNSPECIFIED", +"SERVER", +"MUTUAL" +], +"enumDescriptions": [ +"Default unspecified value.", +"Server", +"Mutual" +], +"readOnly": true, +"type": "string" +}, +"value": { +"description": "Output only. The value of the connection string.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DbNode": { +"description": "Details of the database node resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbNode/", +"id": "DbNode", +"properties": { +"name": { +"description": "Identifier. The name of the database node resource in the following format: projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}/dbNodes/{db_node}", +"type": "string" +}, +"properties": { +"$ref": "DbNodeProperties", +"description": "Optional. Various properties of the database node." +} +}, +"type": "object" +}, +"DbNodeProperties": { +"description": "Various properties and settings associated with Db node.", +"id": "DbNodeProperties", +"properties": { +"dbNodeStorageSizeGb": { +"description": "Optional. Local storage per database node.", +"format": "int32", +"type": "integer" +}, +"dbServerOcid": { +"description": "Optional. Database server OCID.", +"type": "string" +}, +"hostname": { +"description": "Optional. DNS", +"type": "string" +}, +"memorySizeGb": { +"description": "Memory allocated in GBs.", +"format": "int32", +"type": "integer" +}, +"ocid": { +"description": "Output only. OCID of database node.", +"readOnly": true, +"type": "string" +}, +"ocpuCount": { +"description": "Optional. OCPU count per database node.", +"format": "int32", +"type": "integer" +}, +"state": { +"description": "Output only. State of the database node.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"AVAILABLE", +"UPDATING", +"STOPPING", +"STOPPED", +"STARTING", +"TERMINATING", +"TERMINATED", +"FAILED" +], +"enumDescriptions": [ +"Default unspecified value.", +"Indicates that the resource is in provisioning state.", +"Indicates that the resource is in available state.", +"Indicates that the resource is in updating state.", +"Indicates that the resource is in stopping state.", +"Indicates that the resource is in stopped state.", +"Indicates that the resource is in starting state.", +"Indicates that the resource is in terminating state.", +"Indicates that the resource is in terminated state.", +"Indicates that the resource is in failed state." +], +"readOnly": true, +"type": "string" +}, +"totalCpuCoreCount": { +"description": "Total CPU core count of the database node.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DbServer": { +"description": "Details of the database server resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbServer/", +"id": "DbServer", +"properties": { +"displayName": { +"description": "Optional. User friendly name for this resource.", +"type": "string" +}, +"name": { +"description": "Identifier. The name of the database server resource with the format: projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}/dbServers/{db_server}", +"type": "string" +}, +"properties": { +"$ref": "DbServerProperties", +"description": "Optional. Various properties of the database server." +} +}, +"type": "object" +}, +"DbServerProperties": { +"description": "Various properties and settings associated with Exadata database server.", +"id": "DbServerProperties", +"properties": { +"dbNodeIds": { +"description": "Output only. OCID of database nodes associated with the database server.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"dbNodeStorageSizeGb": { +"description": "Optional. Local storage per VM.", +"format": "int32", +"type": "integer" +}, +"maxDbNodeStorageSizeGb": { +"description": "Optional. Maximum local storage per VM.", +"format": "int32", +"type": "integer" +}, +"maxMemorySizeGb": { +"description": "Optional. Maximum memory allocated in GBs.", +"format": "int32", +"type": "integer" +}, +"maxOcpuCount": { +"description": "Optional. Maximum OCPU count per database.", +"format": "int32", +"type": "integer" +}, +"memorySizeGb": { +"description": "Optional. Memory allocated in GBs.", +"format": "int32", +"type": "integer" +}, +"ocid": { +"description": "Output only. OCID of database server.", +"readOnly": true, +"type": "string" +}, +"ocpuCount": { +"description": "Optional. OCPU count per database.", +"format": "int32", +"type": "integer" +}, +"state": { +"description": "Output only. State of the database server.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"AVAILABLE", +"UNAVAILABLE", +"DELETING", +"DELETED" +], +"enumDescriptions": [ +"Default unspecified value.", +"Indicates that the resource is in creating state.", +"Indicates that the resource is in available state.", +"Indicates that the resource is in unavailable state.", +"Indicates that the resource is in deleting state.", +"Indicates that the resource is in deleted state." +], +"readOnly": true, +"type": "string" +}, +"vmCount": { +"description": "Optional. Vm count per database.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DbSystemShape": { +"description": "Details of the Database System Shapes resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbSystemShapeSummary/", +"id": "DbSystemShape", +"properties": { +"availableCoreCountPerNode": { +"description": "Optional. Number of cores per node.", +"format": "int32", +"type": "integer" +}, +"availableDataStorageTb": { +"description": "Optional. Storage per storage server in terabytes.", +"format": "int32", +"type": "integer" +}, +"availableMemoryPerNodeGb": { +"description": "Optional. Memory per database server node in gigabytes.", +"format": "int32", +"type": "integer" +}, +"maxNodeCount": { +"description": "Optional. Maximum number of database servers.", +"format": "int32", +"type": "integer" +}, +"maxStorageCount": { +"description": "Optional. Maximum number of storage servers.", +"format": "int32", +"type": "integer" +}, +"minCoreCountPerNode": { +"description": "Optional. Minimum core count per node.", +"format": "int32", +"type": "integer" +}, +"minDbNodeStoragePerNodeGb": { +"description": "Optional. Minimum node storage per database server in gigabytes.", +"format": "int32", +"type": "integer" +}, +"minMemoryPerNodeGb": { +"description": "Optional. Minimum memory per node in gigabytes.", +"format": "int32", +"type": "integer" +}, +"minNodeCount": { +"description": "Optional. Minimum number of database servers.", +"format": "int32", +"type": "integer" +}, +"minStorageCount": { +"description": "Optional. Minimum number of storage servers.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Identifier. The name of the Database System Shape resource with the format: projects/{project}/locations/{region}/dbSystemShapes/{db_system_shape}", +"type": "string" +}, +"shape": { +"description": "Optional. shape", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Entitlement": { +"description": "Details of the Entitlement resource.", +"id": "Entitlement", +"properties": { +"cloudAccountDetails": { +"$ref": "CloudAccountDetails", +"description": "Details of the OCI Cloud Account." +}, +"entitlementId": { +"description": "Output only. Google Cloud Marketplace order ID (aka entitlement ID)", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The name of the Entitlement resource with the format: projects/{project}/locations/{region}/entitlements/{entitlement}", +"type": "string" +}, +"state": { +"description": "Output only. Entitlement State.", +"enum": [ +"STATE_UNSPECIFIED", +"ACCOUNT_NOT_LINKED", +"ACCOUNT_NOT_ACTIVE", +"ACTIVE", +"ACCOUNT_SUSPENDED" +], +"enumDescriptions": [ +"Default unspecified value.", +"Account not linked.", +"Account is linked but not active.", +"Entitlement and Account are active.", +"Account is suspended." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GenerateAutonomousDatabaseWalletRequest": { +"description": "The request for `AutonomousDatabase.GenerateWallet`.", +"id": "GenerateAutonomousDatabaseWalletRequest", +"properties": { +"isRegional": { +"description": "Optional. True when requesting regional connection strings in PDB connect info, applicable to cross-region Data Guard only.", +"type": "boolean" +}, +"password": { +"description": "Required. The password used to encrypt the keys inside the wallet. The password must be a minimum of 8 characters.", +"type": "string" +}, +"type": { +"description": "Optional. The type of wallet generation for the Autonomous Database. The default value is SINGLE.", +"enum": [ +"GENERATE_TYPE_UNSPECIFIED", +"ALL", +"SINGLE" +], +"enumDescriptions": [ +"Default unspecified value.", +"Used to generate wallet for all databases in the region.", +"Used to generate wallet for a single database." +], +"type": "string" +} +}, +"type": "object" +}, +"GenerateAutonomousDatabaseWalletResponse": { +"description": "The response for `AutonomousDatabase.GenerateWallet`.", +"id": "GenerateAutonomousDatabaseWalletResponse", +"properties": { +"archiveContent": { +"description": "Output only. The base64 encoded wallet files.", +"format": "byte", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GiVersion": { +"description": "Details of the Oracle Grid Infrastructure (GI) version resource. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/GiVersionSummary/", +"id": "GiVersion", +"properties": { +"name": { +"description": "Identifier. The name of the Oracle Grid Infrastructure (GI) version resource with the format: projects/{project}/locations/{region}/giVersions/{gi_versions}", +"type": "string" +}, +"version": { +"description": "Optional. version", +"type": "string" +} +}, +"type": "object" +}, +"ListAutonomousDatabaseBackupsResponse": { +"description": "The response for `AutonomousDatabaseBackup.List`.", +"id": "ListAutonomousDatabaseBackupsResponse", +"properties": { +"autonomousDatabaseBackups": { +"description": "The list of Autonomous Database Backups.", +"items": { +"$ref": "AutonomousDatabaseBackup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListAutonomousDatabaseCharacterSetsResponse": { +"description": "The response for `AutonomousDatabaseCharacterSet.List`.", +"id": "ListAutonomousDatabaseCharacterSetsResponse", +"properties": { +"autonomousDatabaseCharacterSets": { +"description": "The list of Autonomous Database Character Sets.", +"items": { +"$ref": "AutonomousDatabaseCharacterSet" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListAutonomousDatabasesResponse": { +"description": "The response for `AutonomousDatabase.List`.", +"id": "ListAutonomousDatabasesResponse", +"properties": { +"autonomousDatabases": { +"description": "The list of Autonomous Databases.", +"items": { +"$ref": "AutonomousDatabase" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListAutonomousDbVersionsResponse": { +"description": "The response for `AutonomousDbVersion.List`.", +"id": "ListAutonomousDbVersionsResponse", +"properties": { +"autonomousDbVersions": { +"description": "The list of Autonomous Database versions.", +"items": { +"$ref": "AutonomousDbVersion" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListCloudExadataInfrastructuresResponse": { +"description": "The response for `CloudExadataInfrastructures.list`.", +"id": "ListCloudExadataInfrastructuresResponse", +"properties": { +"cloudExadataInfrastructures": { +"description": "The list of Exadata Infrastructures.", +"items": { +"$ref": "CloudExadataInfrastructure" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token for fetching next page of response.", +"type": "string" +} +}, +"type": "object" +}, +"ListCloudVmClustersResponse": { +"description": "The response for `CloudVmCluster.List`.", +"id": "ListCloudVmClustersResponse", +"properties": { +"cloudVmClusters": { +"description": "The list of VM Clusters.", +"items": { +"$ref": "CloudVmCluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to fetch the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListDbNodesResponse": { +"description": "The response for `DbNode.List`.", +"id": "ListDbNodesResponse", +"properties": { +"dbNodes": { +"description": "The list of DB Nodes", +"items": { +"$ref": "DbNode" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the node should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListDbServersResponse": { +"description": "The response for `DbServer.List`.", +"id": "ListDbServersResponse", +"properties": { +"dbServers": { +"description": "The list of database servers.", +"items": { +"$ref": "DbServer" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListDbSystemShapesResponse": { +"description": "The response for `DbSystemShape.List`.", +"id": "ListDbSystemShapesResponse", +"properties": { +"dbSystemShapes": { +"description": "The list of Database System shapes.", +"items": { +"$ref": "DbSystemShape" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListEntitlementsResponse": { +"description": "The response for `Entitlement.List`.", +"id": "ListEntitlementsResponse", +"properties": { +"entitlements": { +"description": "The list of Entitlements", +"items": { +"$ref": "Entitlement" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListGiVersionsResponse": { +"description": "The response for `GiVersion.List`.", +"id": "ListGiVersionsResponse", +"properties": { +"giVersions": { +"description": "The list of Oracle Grid Infrastructure (GI) versions.", +"items": { +"$ref": "GiVersion" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "Metadata for a given Location.", +"id": "LocationMetadata", +"properties": { +"gcpOracleZones": { +"description": "Output only. Google Cloud Platform Oracle zones in a location.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "Maintenance window as defined by Oracle. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/MaintenanceWindow", +"id": "MaintenanceWindow", +"properties": { +"customActionTimeoutMins": { +"description": "Optional. Determines the amount of time the system will wait before the start of each database server patching operation. Custom action timeout is in minutes and valid value is between 15 to 120 (inclusive).", +"format": "int32", +"type": "integer" +}, +"daysOfWeek": { +"description": "Optional. Days during the week when maintenance should be performed.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"type": "array" +}, +"hoursOfDay": { +"description": "Optional. The window of hours during the day when maintenance should be performed. The window is a 4 hour slot. Valid values are: 0 - represents time slot 0:00 - 3:59 UTC 4 - represents time slot 4:00 - 7:59 UTC 8 - represents time slot 8:00 - 11:59 UTC 12 - represents time slot 12:00 - 15:59 UTC 16 - represents time slot 16:00 - 19:59 UTC 20 - represents time slot 20:00 - 23:59 UTC", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"isCustomActionTimeoutEnabled": { +"description": "Optional. If true, enables the configuration of a custom action timeout (waiting period) between database server patching operations.", +"type": "boolean" +}, +"leadTimeWeek": { +"description": "Optional. Lead time window allows user to set a lead time to prepare for a down time. The lead time is in weeks and valid value is between 1 to 4.", +"format": "int32", +"type": "integer" +}, +"months": { +"description": "Optional. Months during the year when maintenance should be performed.", +"items": { +"enum": [ +"MONTH_UNSPECIFIED", +"JANUARY", +"FEBRUARY", +"MARCH", +"APRIL", +"MAY", +"JUNE", +"JULY", +"AUGUST", +"SEPTEMBER", +"OCTOBER", +"NOVEMBER", +"DECEMBER" +], +"enumDescriptions": [ +"The unspecified month.", +"The month of January.", +"The month of February.", +"The month of March.", +"The month of April.", +"The month of May.", +"The month of June.", +"The month of July.", +"The month of August.", +"The month of September.", +"The month of October.", +"The month of November.", +"The month of December." +], +"type": "string" +}, +"type": "array" +}, +"patchingMode": { +"description": "Optional. Cloud CloudExadataInfrastructure node patching method, either \"ROLLING\" or \"NONROLLING\". Default value is ROLLING.", +"enum": [ +"PATCHING_MODE_UNSPECIFIED", +"ROLLING", +"NON_ROLLING" +], +"enumDescriptions": [ +"Default unspecified value.", +"Updates the Cloud Exadata database server hosts in a rolling fashion.", +"The non-rolling maintenance method first updates your storage servers at the same time, then your database servers at the same time." +], +"type": "string" +}, +"preference": { +"description": "Optional. The maintenance window scheduling preference.", +"enum": [ +"MAINTENANCE_WINDOW_PREFERENCE_UNSPECIFIED", +"CUSTOM_PREFERENCE", +"NO_PREFERENCE" +], +"enumDescriptions": [ +"Default unspecified value.", +"Custom preference.", +"No preference." +], +"type": "string" +}, +"weeksOfMonth": { +"description": "Optional. Weeks during the month when maintenance should be performed. Weeks start on the 1st, 8th, 15th, and 22nd days of the month, and have a duration of 7 days. Weeks start and end based on calendar dates, not days of the week.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"percentComplete": { +"description": "Output only. An estimated percentage of the operation that has been completed at a given moment of time, between 0 and 100.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. The status of the operation.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RestoreAutonomousDatabaseRequest": { +"description": "The request for `AutonomousDatabase.Restore`.", +"id": "RestoreAutonomousDatabaseRequest", +"properties": { +"restoreTime": { +"description": "Required. The time and date to restore the database to.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ScheduledOperationDetails": { +"description": "Details of scheduled operation. https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/ScheduledOperationDetails", +"id": "ScheduledOperationDetails", +"properties": { +"dayOfWeek": { +"description": "Output only. Day of week.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"readOnly": true, +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Output only. Auto start time.", +"readOnly": true +}, +"stopTime": { +"$ref": "TimeOfDay", +"description": "Output only. Auto stop time.", +"readOnly": true +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "TimeZone", +"properties": { +"id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"type": "string" +}, +"version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Oracle Database@Google Cloud API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..f398abfeddf8c9d0783044c6945e776fecc42394 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json @@ -0,0 +1,1642 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"openid": { +"description": "Associate you with your personal info on Google" +} +} +} +}, +"basePath": "", +"baseUrl": "https://paymentsresellersubscription.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Payments Reseller Subscription", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/payments/reseller/subscription/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "paymentsresellersubscription:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://paymentsresellersubscription.mtls.googleapis.com/", +"name": "paymentsresellersubscription", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"partners": { +"resources": { +"products": { +"methods": { +"list": { +"description": "To retrieve the products that can be resold by the partner. It should be autenticated with a service account. - This API doesn't apply to YouTube products currently.", +"flatPath": "v1/partners/{partnersId}/products", +"httpMethod": "GET", +"id": "paymentsresellersubscription.partners.products.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Specifies the filters for the product results. The syntax is defined in https://google.aip.dev/160 with the following caveats: 1. Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) 2. Only the following fields are supported: - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` 3. Unless explicitly mentioned above, other features are not supported. Example: `regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of products to return. The service may return fewer than this value. If unspecified, at most 50 products will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListProducts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProducts` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, the partner that can resell. Format: partners/{partner}", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/products", +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse" +}, +"scopes": [ +"openid" +] +} +} +}, +"promotions": { +"methods": { +"findEligible": { +"description": "To find eligible promotions for the current user. The API requires user authorization via OAuth. The bare minimum oauth scope `openid` is sufficient, which will skip the consent screen.", +"flatPath": "v1/partners/{partnersId}/promotions:findEligible", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.promotions.findEligible", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent, the partner that can resell. Format: partners/{partner}", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/promotions:findEligible", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse" +}, +"scopes": [ +"openid" +] +}, +"list": { +"description": "Retrieves the promotions, such as free trial, that can be used by the partner. - This API doesn't apply to YouTube promotions currently. It should be autenticated with a service account.", +"flatPath": "v1/partners/{partnersId}/promotions", +"httpMethod": "GET", +"id": "paymentsresellersubscription.partners.promotions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Specifies the filters for the promotion results. The syntax is defined in https://google.aip.dev/160 with the following caveats: 1. Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) 2. Only the following fields are supported: - `applicableProducts` - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` 3. Unless explicitly mentioned above, other features are not supported. Example: `applicableProducts:partners/partner1/products/product1 AND regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of promotions to return. The service may return fewer than this value. If unspecified, at most 50 products will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListPromotions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPromotions` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, the partner that can resell. Format: partners/{partner}", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/promotions", +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse" +}, +"scopes": [ +"openid" +] +} +} +}, +"subscriptions": { +"methods": { +"cancel": { +"description": "Used by partners to cancel a subscription service either immediately or by the end of the current billing cycle for their customers. It should be called directly by the partner using service accounts.", +"flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}:cancel", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.subscriptions.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the subscription resource to be cancelled. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\"", +"location": "path", +"pattern": "^partners/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse" +}, +"scopes": [ +"openid" +] +}, +"create": { +"description": "Used by partners to create a subscription for their customers. The created subscription is associated with the end user inferred from the end user credentials. This API must be authorized by the end user using OAuth.", +"flatPath": "v1/partners/{partnersId}/subscriptions", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.subscriptions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, which is the identifier of the partner. It will have the format of \"partners/{partner_id}\".", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "Required. Identifies the subscription resource on the Partner side. The value is restricted to 63 ASCII characters at the maximum. If a subscription was previously created with the same subscription_id, we will directly return that one.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/subscriptions", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" +}, +"scopes": [ +"openid" +] +}, +"entitle": { +"description": "Used by partners to entitle a previously provisioned subscription to the current end user. The end user identity is inferred from the authorized credential of the request. This API must be authorized by the end user using OAuth.", +"flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}:entitle", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.subscriptions.entitle", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the subscription resource that is entitled to the current end user. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\"", +"location": "path", +"pattern": "^partners/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:entitle", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequest" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse" +}, +"scopes": [ +"openid" +] +}, +"extend": { +"description": "[Opt-in only] Most partners should be on auto-extend by default. Used by partners to extend a subscription service for their customers on an ongoing basis for the subscription to remain active and renewable. It should be called directly by the partner using service accounts.", +"flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}:extend", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.subscriptions.extend", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the subscription resource to be extended. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\".", +"location": "path", +"pattern": "^partners/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:extend", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionRequest" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse" +}, +"scopes": [ +"openid" +] +}, +"get": { +"description": "Used by partners to get a subscription by id. It should be called directly by the partner using service accounts.", +"flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}", +"httpMethod": "GET", +"id": "paymentsresellersubscription.partners.subscriptions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the subscription resource to retrieve. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\"", +"location": "path", +"pattern": "^partners/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" +}, +"scopes": [ +"openid" +] +}, +"provision": { +"description": "Used by partners to provision a subscription for their customers. This creates a subscription without associating it with the end user account. EntitleSubscription must be called separately using OAuth in order for the end user account to be associated with the subscription. It should be called directly by the partner using service accounts.", +"flatPath": "v1/partners/{partnersId}/subscriptions:provision", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.subscriptions.provision", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, which is the identifier of the partner. It will have the format of \"partners/{partner_id}\".", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "Required. Identifies the subscription resource on the Partner side. The value is restricted to 63 ASCII characters at the maximum. If a subscription was previously created with the same subscription_id, we will directly return that one.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/subscriptions:provision", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" +}, +"scopes": [ +"openid" +] +}, +"undoCancel": { +"description": "Revokes the pending cancellation of a subscription, which is currently in `STATE_CANCEL_AT_END_OF_CYCLE` state. If the subscription is already cancelled, the request will fail. - **This API doesn't apply to YouTube subscriptions.** It should be called directly by the partner using service accounts.", +"flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}:undoCancel", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.subscriptions.undoCancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the subscription resource whose pending cancellation needs to be undone. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\"", +"location": "path", +"pattern": "^partners/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undoCancel", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionRequest" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionResponse" +}, +"scopes": [ +"openid" +] +} +} +}, +"userSessions": { +"methods": { +"generate": { +"description": "This API replaces user authorized OAuth consent based APIs (Create, Entitle). Generates a short-lived token for a user session based on the user intent. You can use the session token to redirect the user to Google to finish the signup flow. You can re-generate new session token repeatedly for the same request if necessary, regardless of the previous tokens being expired or not.", +"flatPath": "v1/partners/{partnersId}/userSessions:generate", +"httpMethod": "POST", +"id": "paymentsresellersubscription.partners.userSessions.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent, the partner that can resell. Format: partners/{partner}", +"location": "path", +"pattern": "^partners/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userSessions:generate", +"request": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1GenerateUserSessionRequest" +}, +"response": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1GenerateUserSessionResponse" +}, +"scopes": [ +"openid" +] +} +} +} +} +} +}, +"revision": "20241211", +"rootUrl": "https://paymentsresellersubscription.googleapis.com/", +"schemas": { +"GoogleCloudPaymentsResellerSubscriptionV1Amount": { +"description": "Describes the amount unit including the currency code.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Amount", +"properties": { +"amountMicros": { +"description": "Required. Amount in micros (1_000_000 micros = 1 currency unit)", +"format": "int64", +"type": "string" +}, +"currencyCode": { +"description": "Required. Currency codes in accordance with [ISO-4217 Currency Codes] (https://en.wikipedia.org/wiki/ISO_4217). For example, USD.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest": { +"description": "Request to cancel a subscription.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest", +"properties": { +"cancelImmediately": { +"description": "Optional. If true, Google will cancel the subscription immediately, and may or may not (based on the contract) issue a prorated refund for the remainder of the billing cycle. Otherwise, Google defers the cancelation at renewal_time, and will not issue a refund. - YouTube subscriptions must use this option currently. However, the user will still have access to the subscription until the end of the billing cycle.", +"type": "boolean" +}, +"cancellationReason": { +"description": "Specifies the reason for the cancellation.", +"enum": [ +"CANCELLATION_REASON_UNSPECIFIED", +"CANCELLATION_REASON_FRAUD", +"CANCELLATION_REASON_REMORSE", +"CANCELLATION_REASON_ACCIDENTAL_PURCHASE", +"CANCELLATION_REASON_PAST_DUE", +"CANCELLATION_REASON_ACCOUNT_CLOSED", +"CANCELLATION_REASON_UPGRADE_DOWNGRADE", +"CANCELLATION_REASON_USER_DELINQUENCY", +"CANCELLATION_REASON_SYSTEM_ERROR", +"CANCELLATION_REASON_SYSTEM_CANCEL", +"CANCELLATION_REASON_OTHER" +], +"enumDescriptions": [ +"Reason is unspecified. Should not be used.", +"Fraudualant transaction.", +"Buyer's remorse.", +"Accidential purchase.", +"Payment is past due.", +"Used for notification only, do not use in Cancel API. User account closed.", +"Used for notification only, do not use in Cancel API. Cancellation due to upgrade or downgrade.", +"Cancellation due to user delinquency", +"Used for notification only, do not use in Cancel API. Cancellation due to an unrecoverable system error.", +"Used for notification only, do not use in Cancel API. The subscription is cancelled by Google automatically since it is no longer valid.", +"Other reason." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse": { +"description": "Response that contains the cancelled subscription resource.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse", +"properties": { +"subscription": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription", +"description": "The cancelled subscription resource." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1CreateSubscriptionIntent": { +"description": "Intent message for creating a Subscription resource.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1CreateSubscriptionIntent", +"properties": { +"parent": { +"description": "Required. The parent resource name, which is the identifier of the partner.", +"type": "string" +}, +"subscription": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription", +"description": "Required. The Subscription to be created." +}, +"subscriptionId": { +"description": "Required. Identifies the subscription resource on the Partner side. The value is restricted to 63 ASCII characters at the maximum. If a subscription was previously created with the same subscription_id, we will directly return that one.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1Duration": { +"description": "Describes the length of a period of a time.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Duration", +"properties": { +"count": { +"description": "number of duration units to be included.", +"format": "int32", +"type": "integer" +}, +"unit": { +"description": "The unit used for the duration", +"enum": [ +"UNIT_UNSPECIFIED", +"MONTH", +"DAY", +"HOUR" +], +"enumDescriptions": [ +"Default value, reserved as an invalid or an unexpected value.", +"Unit of a calendar month.", +"Unit of a day.", +"Unit of an hour. It is used for testing." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionIntent": { +"description": "Intent for entitling the previously provisioned subscription to an end user.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionIntent", +"properties": { +"name": { +"description": "Required. The name of the subscription resource that is entitled to the current end user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequest": { +"description": "Partner request for entitling the previously provisioned subscription to an end user. The end user identity is inferred from the request OAuth context.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequest", +"properties": { +"lineItemEntitlementDetails": { +"description": "Optional. The line items to be entitled. If unspecified, all line items will be entitled.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequestLineItemEntitlementDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequestLineItemEntitlementDetails": { +"description": "The details of the line item to be entitled.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequestLineItemEntitlementDetails", +"properties": { +"lineItemIndex": { +"description": "Required. The index of the line item to be entitled.", +"format": "int32", +"type": "integer" +}, +"products": { +"description": "Optional. Only applicable if the line item corresponds to a hard bundle. Product resource names that identify the bundle elements to be entitled in the line item. If unspecified, all bundle elements will be entitled. The format is 'partners/{partner_id}/products/{product_id}'.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse": { +"description": "Response that contains the entitled subscription resource.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse", +"properties": { +"subscription": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription", +"description": "The subscription that has user linked to it." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionRequest": { +"description": "Request message for extending a Subscription resource. A new recurrence will be made based on the subscription schedule defined by the original product.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionRequest", +"properties": { +"extension": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Extension", +"description": "Required. Specifies details of the extension. Currently, the duration of the extension must be exactly one billing cycle of the original subscription." +}, +"requestId": { +"description": "Required. Restricted to 36 ASCII characters. A random UUID is recommended. The idempotency key for the request. The ID generation logic is controlled by the partner. request_id should be the same as on retries of the same request. A different request_id must be used for a extension of a different cycle.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse": { +"description": "Response that contains the timestamps after the extension.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse", +"properties": { +"cycleEndTime": { +"description": "The time at which the subscription is expected to be extended, in ISO 8061 format. UTC timezone. Example, \"cycleEndTime\":\"2019-08-31T17:28:54.564Z\"", +"format": "google-datetime", +"type": "string" +}, +"freeTrialEndTime": { +"description": "End of the free trial period, in ISO 8061 format. UTC timezone. Example, \"freeTrialEndTime\":\"2019-08-31T17:28:54.564Z\" This time will be set the same as initial subscription creation time if no free trial period is offered to the partner.", +"format": "google-datetime", +"type": "string" +}, +"renewalTime": { +"description": "Output only. The time at which the subscription is expected to be renewed by Google - a new charge will be incurred and the service entitlement will be renewed. A non-immediate cancellation will take place at this time too, before which, the service entitlement for the end user will remain valid. UTC timezone in ISO 8061 format. For example: \"2019-08-31T17:28:54.564Z\"", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1Extension": { +"description": "Describes the details of an extension request.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Extension", +"properties": { +"duration": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Duration", +"description": "Required. Specifies the period of access the subscription should grant." +}, +"partnerUserToken": { +"description": "Required. Identifier of the end-user in partner\u2019s system.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest": { +"description": "Request to find eligible promotions for the current user.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest", +"properties": { +"filter": { +"description": "Optional. Specifies the filters for the promotion results. The syntax is defined in https://google.aip.dev/160 with the following caveats: 1. Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) 2. Only the following fields are supported: - `applicableProducts` - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` 3. Unless explicitly mentioned above, other features are not supported. Example: `applicableProducts:partners/partner1/products/product1 AND regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of promotions to return. The service may return fewer than this value. If unspecified, at most 50 products will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListPromotions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPromotions` must match the call that provided the page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse": { +"description": "Response containing the found promotions for the current user.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", +"type": "string" +}, +"promotions": { +"description": "The promotions for the current user.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Promotion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails": { +"description": "Details for a subscriptiin line item with finite billing cycles.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails", +"properties": { +"billingCycleCountLimit": { +"description": "Required. The number of a subscription line item billing cycles after which billing will stop automatically.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1GenerateUserSessionRequest": { +"description": "[Preview only] Request to generate a user session.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1GenerateUserSessionRequest", +"properties": { +"intentPayload": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1IntentPayload", +"description": "The user intent to generate the user session." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1GenerateUserSessionResponse": { +"description": "[Preview only] Response that contains the details for generated user session.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1GenerateUserSessionResponse", +"properties": { +"userSession": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1UserSession", +"description": "The generated user session. The token size is proportional to the size of the intent payload." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload": { +"description": "Payload specific to Google One products.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload", +"properties": { +"campaigns": { +"description": "Campaign attributed to sales of this subscription.", +"items": { +"type": "string" +}, +"type": "array" +}, +"offering": { +"description": "The type of offering the subscription was sold by the partner. e.g. VAS.", +"enum": [ +"OFFERING_UNSPECIFIED", +"OFFERING_VAS_BUNDLE", +"OFFERING_VAS_STANDALONE", +"OFFERING_HARD_BUNDLE", +"OFFERING_SOFT_BUNDLE" +], +"enumDescriptions": [ +"The type of partner offering is unspecified.", +"Google One product purchased as a Value added service in addition to existing partner's products. Customer pays additional amount for Google One product.", +"Google One product purchased by itself by customer as a value add service. Customer pays additional amount for Google One product.", +"Product purchased as part of a hard bundle where Google One was included with the bundle. Google One pricing is included in the bundle.", +"Purchased as part of a bundle where Google One was provided as an option. Google One pricing is included in the bundle." +], +"type": "string" +}, +"salesChannel": { +"description": "The type of sales channel through which the subscription was sold.", +"enum": [ +"CHANNEL_UNSPECIFIED", +"CHANNEL_RETAIL", +"CHANNEL_ONLINE_WEB", +"CHANNEL_ONLINE_ANDROID_APP", +"CHANNEL_ONLINE_IOS_APP" +], +"enumDescriptions": [ +"The channel type is unspecified.", +"Sold at store.", +"Sold through partner website.", +"Sold through partner android app.", +"Sold through partner iOS app." +], +"type": "string" +}, +"storeId": { +"description": "The identifier for the partner store where the subscription was sold.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1IntentPayload": { +"description": "The payload that describes the user intent.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1IntentPayload", +"properties": { +"createIntent": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1CreateSubscriptionIntent", +"description": "The request to create a subscription." +}, +"entitleIntent": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionIntent", +"description": "The request to entitle a subscription." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse": { +"description": "Response that contains the products.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", +"type": "string" +}, +"products": { +"description": "The products for the specified partner.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse": { +"description": "Response that contains the promotions.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", +"type": "string" +}, +"promotions": { +"description": "The promotions for the specified partner.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Promotion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1Location": { +"description": "Describes a location of an end user.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Location", +"properties": { +"postalCode": { +"description": "The postal code this location refers to. Ex. \"94043\"", +"type": "string" +}, +"regionCode": { +"description": "2-letter ISO region code for current content region. Ex. \u201cUS\u201d Please refers to: https://en.wikipedia.org/wiki/ISO_3166-1", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1Product": { +"description": "A Product resource that defines a subscription service that can be resold.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Product", +"properties": { +"bundleDetails": { +"$ref": "ProductBundleDetails", +"description": "Output only. Output Only. Specifies the details for a bundle product.", +"readOnly": true +}, +"finiteBillingCycleDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails", +"description": "Optional. Details for a subscription line item with finite billing cycles. If unset, the line item will be charged indefinitely." +}, +"name": { +"description": "Identifier. Response only. Resource name of the product. It will have the format of \"partners/{partner_id}/products/{product_id}\"", +"type": "string" +}, +"priceConfigs": { +"description": "Output only. Price configs for the product in the available regions.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ProductPriceConfig" +}, +"readOnly": true, +"type": "array" +}, +"productType": { +"description": "Output only. Output Only. Specifies the type of the product.", +"enum": [ +"PRODUCT_TYPE_UNSPECIFIED", +"PRODUCT_TYPE_SUBSCRIPTION", +"PRODUCT_TYPE_BUNDLE_SUBSCRIPTION" +], +"enumDescriptions": [ +"Unspecified. It's reserved as an unexpected value, should not be used.", +"The product is a subscription.", +"The product is a bundled subscription plan, which includes multiple subscription elements." +], +"readOnly": true, +"type": "string" +}, +"regionCodes": { +"description": "Output only. 2-letter ISO region code where the product is available in. Ex. \"US\" Please refers to: https://en.wikipedia.org/wiki/ISO_3166-1", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"subscriptionBillingCycleDuration": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Duration", +"description": "Output only. Specifies the length of the billing cycle of the subscription.", +"readOnly": true +}, +"titles": { +"description": "Output only. Localized human readable name of the product.", +"items": { +"$ref": "GoogleTypeLocalizedText" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ProductBundleDetailsBundleElement": { +"description": "The individual product that is included in the bundle.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ProductBundleDetailsBundleElement", +"properties": { +"product": { +"description": "Required. Output only. Product resource name that identifies the bundle element. The format is 'partners/{partner_id}/products/{product_id}'.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ProductPayload": { +"description": "Specifies product specific payload.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload", +"properties": { +"googleOnePayload": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload", +"description": "Product-specific payloads. Payload specific to Google One products." +}, +"youtubePayload": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload", +"description": "Payload specific to Youtube products." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ProductPriceConfig": { +"description": "Configs the prices in an available region.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ProductPriceConfig", +"properties": { +"amount": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Amount", +"description": "Output only. The price in the region.", +"readOnly": true +}, +"regionCode": { +"description": "Output only. 2-letter ISO region code where the product is available in. Ex. \"US\".", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1Promotion": { +"description": "A Promotion resource that defines a promotion for a subscription that can be resold.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Promotion", +"properties": { +"applicableProducts": { +"description": "Output only. The product ids this promotion can be applied to.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"endTime": { +"description": "Optional. Specifies the end time (exclusive) of the period that the promotion is available in. If unset, the promotion is available indefinitely.", +"format": "google-datetime", +"type": "string" +}, +"freeTrialDuration": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Duration", +"description": "Optional. Specifies the duration of the free trial of the subscription when promotion_type is PROMOTION_TYPE_FREE_TRIAL" +}, +"introductoryPricingDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetails", +"description": "Optional. Specifies the introductory pricing details when the promotion_type is PROMOTION_TYPE_INTRODUCTORY_PRICING." +}, +"name": { +"description": "Identifier. Response only. Resource name of the subscription promotion. It will have the format of \"partners/{partner_id}/promotion/{promotion_id}\"", +"type": "string" +}, +"promotionType": { +"description": "Output only. Output Only. Specifies the type of the promotion.", +"enum": [ +"PROMOTION_TYPE_UNSPECIFIED", +"PROMOTION_TYPE_FREE_TRIAL", +"PROMOTION_TYPE_INTRODUCTORY_PRICING" +], +"enumDescriptions": [ +"The promotion type is unspecified.", +"The promotion is a free trial.", +"The promotion is a reduced introductory pricing." +], +"readOnly": true, +"type": "string" +}, +"regionCodes": { +"description": "Output only. 2-letter ISO region code where the promotion is available in. Ex. \"US\" Please refers to: https://en.wikipedia.org/wiki/ISO_3166-1", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"startTime": { +"description": "Optional. Specifies the start time (inclusive) of the period that the promotion is available in.", +"format": "google-datetime", +"type": "string" +}, +"titles": { +"description": "Output only. Localized human readable name of the promotion.", +"items": { +"$ref": "GoogleTypeLocalizedText" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetails": { +"description": "The details of a introductory pricing promotion.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetails", +"properties": { +"introductoryPricingSpecs": { +"description": "Output only. Specifies the introductory pricing periods.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetailsIntroductoryPricingSpec" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetailsIntroductoryPricingSpec": { +"description": "The duration of an introductory pricing promotion.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetailsIntroductoryPricingSpec", +"properties": { +"discountAmount": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Amount", +"description": "Output only. The discount amount. The value is positive.", +"readOnly": true +}, +"discountRatioMicros": { +"description": "Output only. The discount percentage in micros. For example, 50,000 represents 5%.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"recurrenceCount": { +"description": "Output only. Output Only. The duration of an introductory offer in billing cycles.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"regionCode": { +"description": "Output only. 2-letter ISO region code where the product is available in. Ex. \"US\".", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1ServicePeriod": { +"description": "A description of what time period or moment in time the product or service is being delivered over.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1ServicePeriod", +"properties": { +"endTime": { +"description": "Optional. The end time of the service period. Time is exclusive.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Required. The start time of the service period. Time is inclusive.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1Subscription": { +"description": "A subscription serves as a central billing entity between an external partner and Google. The underlying Google services rely on the subscription state to grant or revoke the user's service entitlement. It's important to note that the subscription state may not always perfectly align with the user's service entitlement. For example, some Google services may continue providing access to the user until the current billing cycle ends, even if the subscription has been immediately canceled. However, other services may not do the same. To fully understand the specific details, please consult the relevant contract or product policy.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1Subscription", +"properties": { +"cancellationDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionCancellationDetails", +"description": "Output only. Describes the details of a cancelled subscription. Only applicable to subscription of state `STATE_CANCELLED`.", +"readOnly": true +}, +"createTime": { +"description": "Output only. System generated timestamp when the subscription is created. UTC timezone.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cycleEndTime": { +"description": "Output only. The time at which the subscription is expected to be extended, in ISO 8061 format. UTC timezone. For example: \"2019-08-31T17:28:54.564Z\"", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endUserEntitled": { +"description": "Output only. Indicates if the subscription is entitled to the end user.", +"readOnly": true, +"type": "boolean" +}, +"freeTrialEndTime": { +"description": "Output only. End of the free trial period, in ISO 8061 format. For example, \"2019-08-31T17:28:54.564Z\". It will be set the same as createTime if no free trial promotion is specified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lineItems": { +"description": "Required. The line items of the subscription.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem" +}, +"type": "array" +}, +"migrationDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionMigrationDetails", +"description": "Output only. Describes the details of the migrated subscription. Only populated if this subscription is migrated from another system.", +"readOnly": true +}, +"name": { +"description": "Identifier. Resource name of the subscription. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\". This is available for authorizeAddon, but otherwise is response only.", +"type": "string" +}, +"partnerUserToken": { +"description": "Required. Identifier of the end-user in partner\u2019s system. The value is restricted to 63 ASCII characters at the maximum.", +"type": "string" +}, +"processingState": { +"description": "Output only. Describes the processing state of the subscription. See more details at [the lifecycle of a subscription](/payments/reseller/subscription/reference/index/Receive.Notifications#payments-subscription-lifecycle).", +"enum": [ +"PROCESSING_STATE_UNSPECIFIED", +"PROCESSING_STATE_CANCELLING", +"PROCESSING_STATE_RECURRING" +], +"enumDescriptions": [ +"The processing state is unspecified.", +"The subscription is being cancelled.", +"The subscription is recurring." +], +"readOnly": true, +"type": "string" +}, +"products": { +"description": "Optional. Deprecated: consider using `line_items` as the input. Required. Resource name that identifies the purchased products. The format will be 'partners/{partner_id}/products/{product_id}'.", +"items": { +"type": "string" +}, +"type": "array" +}, +"promotionSpecs": { +"description": "Optional. Subscription-level promotions. Only free trial is supported on this level. It determines the first renewal time of the subscription to be the end of the free trial period. Specify the promotion resource name only when used as input.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec" +}, +"type": "array" +}, +"promotions": { +"description": "Optional. Deprecated: consider using the top-level `promotion_specs` as the input. Optional. Resource name that identifies one or more promotions that can be applied on the product. A typical promotion for a subscription is Free trial. The format will be 'partners/{partner_id}/promotions/{promotion_id}'.", +"items": { +"type": "string" +}, +"type": "array" +}, +"purchaseTime": { +"description": "Optional. The timestamp when the user transaction was made with the Partner. Specify for the case of \"bundle with choice\", and it must be before the provision_time (when the user makes a selection).", +"format": "google-datetime", +"type": "string" +}, +"redirectUri": { +"description": "Output only. The place where partners should redirect the end-user to after creation. This field might also be populated when creation failed. However, Partners should always prepare a default URL to redirect the user in case this field is empty.", +"readOnly": true, +"type": "string" +}, +"renewalTime": { +"description": "Output only. The time at which the subscription is expected to be renewed by Google - a new charge will be incurred and the service entitlement will be renewed. A non-immediate cancellation will take place at this time too, before which, the service entitlement for the end user will remain valid. UTC timezone in ISO 8061 format. For example: \"2019-08-31T17:28:54.564Z\"", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"serviceLocation": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Location", +"description": "Required. The location that the service is provided as indicated by the partner." +}, +"state": { +"description": "Output only. Describes the state of the subscription. See more details at [the lifecycle of a subscription](/payments/reseller/subscription/reference/index/Receive.Notifications#payments-subscription-lifecycle).", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_CREATED", +"STATE_ACTIVE", +"STATE_CANCELLED", +"STATE_IN_GRACE_PERIOD", +"STATE_CANCEL_AT_END_OF_CYCLE", +"STATE_SUSPENDED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The subscription is created, a state before it is moved to STATE_ACTIVE.", +"The subscription is active.", +"The subscription is cancelled. This is the final state of the subscription, as it can no longer be modified or reactivated.", +"The subscription is in grace period. It can happen: 1) in manual extend mode, the subscription is not extended by the partner at the end of current cycle. 2) for outbound authorization enabled partners, a renewal purchase order is rejected.", +"The subscription is waiting to be cancelled by the next recurrence cycle.", +"The subscription is suspended." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. System generated timestamp when the subscription is most recently updated. UTC timezone.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"upgradeDowngradeDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionUpgradeDowngradeDetails", +"description": "Optional. Details about the previous subscription that this new subscription upgrades/downgrades from. Only populated if this subscription is an upgrade/downgrade from another subscription." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionCancellationDetails": { +"description": "Describes the details of a cancelled or cancelling subscription.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionCancellationDetails", +"properties": { +"reason": { +"description": "Output only. The reason of the cancellation.", +"enum": [ +"CANCELLATION_REASON_UNSPECIFIED", +"CANCELLATION_REASON_FRAUD", +"CANCELLATION_REASON_REMORSE", +"CANCELLATION_REASON_ACCIDENTAL_PURCHASE", +"CANCELLATION_REASON_PAST_DUE", +"CANCELLATION_REASON_ACCOUNT_CLOSED", +"CANCELLATION_REASON_UPGRADE_DOWNGRADE", +"CANCELLATION_REASON_USER_DELINQUENCY", +"CANCELLATION_REASON_SYSTEM_ERROR", +"CANCELLATION_REASON_SYSTEM_CANCEL", +"CANCELLATION_REASON_OTHER" +], +"enumDescriptions": [ +"Reason is unspecified. Should not be used.", +"Fraudualant transaction.", +"Buyer's remorse.", +"Accidential purchase.", +"Payment is past due.", +"Used for notification only, do not use in Cancel API. User account closed.", +"Used for notification only, do not use in Cancel API. Cancellation due to upgrade or downgrade.", +"Cancellation due to user delinquency", +"Used for notification only, do not use in Cancel API. Cancellation due to an unrecoverable system error.", +"Used for notification only, do not use in Cancel API. The subscription is cancelled by Google automatically since it is no longer valid.", +"Other reason." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem": { +"description": "Individual line item definition of a subscription.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem", +"properties": { +"amount": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Amount", +"description": "Output only. The price of the product/service in this line item. The amount could be the wholesale price, or it can include a cost of sale based on the contract.", +"readOnly": true +}, +"bundleDetails": { +"$ref": "SubscriptionLineItemBundleDetails", +"description": "Output only. The bundle details for the line item. Only populated if the line item corresponds to a hard bundle.", +"readOnly": true +}, +"description": { +"description": "Output only. Description of this line item.", +"readOnly": true, +"type": "string" +}, +"finiteBillingCycleDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails", +"description": "Optional. Details for a subscription line item with finite billing cycles. If unset, the line item will be charged indefinitely. Used only with LINE_ITEM_RECURRENCE_TYPE_PERIODIC." +}, +"lineItemFreeTrialEndTime": { +"description": "Output only. The free trial end time will be populated after the line item is successfully processed. End time of the line item free trial period, in ISO 8061 format. For example, \"2019-08-31T17:28:54.564Z\". It will be set the same as createTime if no free trial promotion is specified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lineItemIndex": { +"description": "Output only. A unique index of the subscription line item.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"lineItemPromotionSpecs": { +"description": "Optional. The promotions applied on the line item. It can be: - an introductory pricing promotion. - a free trial promotion. This feature is not enabled. If used, the request will be rejected. When used as input in Create or Provision API, specify its resource name only.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec" +}, +"type": "array" +}, +"oneTimeRecurrenceDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemOneTimeRecurrenceDetails", +"description": "Output only. Details only set for a ONE_TIME recurrence line item.", +"readOnly": true +}, +"product": { +"description": "Required. Product resource name that identifies one the line item The format is 'partners/{partner_id}/products/{product_id}'.", +"type": "string" +}, +"productPayload": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload", +"description": "Optional. Product specific payload for this line item." +}, +"recurrenceType": { +"description": "Output only. The recurrence type of the line item.", +"enum": [ +"LINE_ITEM_RECURRENCE_TYPE_UNSPECIFIED", +"LINE_ITEM_RECURRENCE_TYPE_PERIODIC", +"LINE_ITEM_RECURRENCE_TYPE_ONE_TIME" +], +"enumDescriptions": [ +"The line item recurrence type is unspecified.", +"The line item recurs periodically.", +"The line item does not recur in the future." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the line item.", +"enum": [ +"LINE_ITEM_STATE_UNSPECIFIED", +"LINE_ITEM_STATE_ACTIVE", +"LINE_ITEM_STATE_INACTIVE", +"LINE_ITEM_STATE_NEW", +"LINE_ITEM_STATE_ACTIVATING", +"LINE_ITEM_STATE_DEACTIVATING", +"LINE_ITEM_STATE_WAITING_TO_DEACTIVATE", +"LINE_ITEM_STATE_OFF_CYCLE_CHARGING" +], +"enumDescriptions": [ +"Unspecified state.", +"The line item is in ACTIVE state. If the subscription is cancelled or suspended, the line item will not be charged even if the line item is active.", +"The line item is in INACTIVE state.", +"The line item is new, and is not activated or charged yet.", +"The line item is being activated in order to be charged. If a free trial applies to the line item, the line item is pending a prorated charge at the end of the free trial period, as indicated by `line_item_free_trial_end_time`.", +"The line item is being deactivated, and a prorated refund in being processed.", +"The line item is scheduled to be deactivated at the end of the current cycle.", +"Line item is being charged off-cycle." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails": { +"description": "The details for an element in the hard bundle.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails", +"properties": { +"product": { +"description": "Output only. Product resource name that identifies the bundle element. The format is 'partners/{partner_id}/products/{product_id}'.", +"readOnly": true, +"type": "string" +}, +"userAccountLinkedTime": { +"description": "Output only. The time when this product is linked to an end user.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemOneTimeRecurrenceDetails": { +"description": "Details for a ONE_TIME recurrence line item.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemOneTimeRecurrenceDetails", +"properties": { +"servicePeriod": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ServicePeriod", +"description": "Output only. The service period of the ONE_TIME line item.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionMigrationDetails": { +"description": "Describes the details of the migrated subscription.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionMigrationDetails", +"properties": { +"migratedSubscriptionId": { +"description": "Output only. The migrated subscription id in the legacy system.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec": { +"description": "Describes the spec for one promotion.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec", +"properties": { +"freeTrialDuration": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Duration", +"description": "Output only. The duration of the free trial if the promotion is of type FREE_TRIAL.", +"readOnly": true +}, +"introductoryPricingDetails": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetails", +"description": "Output only. The details of the introductory pricing spec if the promotion is of type INTRODUCTORY_PRICING.", +"readOnly": true +}, +"promotion": { +"description": "Required. Promotion resource name that identifies a promotion. The format is 'partners/{partner_id}/promotions/{promotion_id}'.", +"type": "string" +}, +"type": { +"description": "Output only. The type of the promotion for the spec.", +"enum": [ +"PROMOTION_TYPE_UNSPECIFIED", +"PROMOTION_TYPE_FREE_TRIAL", +"PROMOTION_TYPE_INTRODUCTORY_PRICING" +], +"enumDescriptions": [ +"The promotion type is unspecified.", +"The promotion is a free trial.", +"The promotion is a reduced introductory pricing." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1SubscriptionUpgradeDowngradeDetails": { +"description": "Details about the previous subscription that this new subscription upgrades/downgrades from.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionUpgradeDowngradeDetails", +"properties": { +"billingCycleSpec": { +"description": "Required. Specifies the billing cycle spec for the new upgraded/downgraded subscription.", +"enum": [ +"BILLING_CYCLE_SPEC_UNSPECIFIED", +"BILLING_CYCLE_SPEC_ALIGN_WITH_PREVIOUS_SUBSCRIPTION", +"BILLING_CYCLE_SPEC_START_IMMEDIATELY" +], +"enumDescriptions": [ +"Billing cycle spec is not specified.", +"The billing cycle of the new subscription aligns with the previous subscription it upgrades or downgrades from.", +"The billing cycle of the new subscription starts immediately." +], +"type": "string" +}, +"previousSubscriptionId": { +"description": "Required. The previous subscription id to be replaced. This is not the full resource name, use the subscription_id segment only.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionRequest": { +"description": "Request to revoke a cancellation request.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionResponse": { +"description": "Response that contains the updated subscription resource.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionResponse", +"properties": { +"subscription": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription", +"description": "The updated subscription resource." +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1UserSession": { +"description": "A user session contains a short-lived token that includes information required to interact with Google Payments Reseller Platform using the following web endpoints. - A user session token should be generated dynamically for an authenticated user. You should refrain from sharing a token directly with a user in an unauthenticated context, such as SMS, or email. - You can re-generate new session tokens repeatedly for same `generate` request if necessary, regardless of the previous tokens being expired or not. You don't need to worry about multiple sessions resulting in duplicate fulfillments as guaranteed by the same subscription id. Please refer to the [Google Managed Signup](/payments/reseller/subscription/reference/index/User.Signup.Integration/Google.Managed.Signup.\\(In.Preview\\)) documentation for additional integration details.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1UserSession", +"properties": { +"expireTime": { +"description": "Output only. The time at which the user session expires.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"token": { +"description": "Output only. The encrypted token of the user session, including the information of the user's intent and request. This token should be provided when redirecting the user to Google.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload": { +"description": "Payload specific to Youtube products.", +"id": "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload", +"properties": { +"accessEndTime": { +"description": "Output only. The access expiration time for this line item.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"partnerEligibilityIds": { +"description": "The list of eligibility_ids which are applicable for the line item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"partnerPlanType": { +"description": "Optional. Specifies the plan type offered to the end user by the partner.", +"enum": [ +"PARTNER_PLAN_TYPE_UNSPECIFIED", +"PARTNER_PLAN_TYPE_STANDALONE", +"PARTNER_PLAN_TYPE_HARD_BUNDLE", +"PARTNER_PLAN_TYPE_SOFT_BUNDLE" +], +"enumDescriptions": [ +"Unspecified. Should not use, reserved as an invalid value.", +"This item is offered as a standalone product to the user.", +"This item is bundled with another partner offering, the item is provisioned at purchase time.", +"This item is bundled with another partner offering, the item is provisioned after puchase, when the user opts in this Google service." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeLocalizedText": { +"description": "Localized variant of a text in a particular language.", +"id": "GoogleTypeLocalizedText", +"properties": { +"languageCode": { +"description": "The text's BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"text": { +"description": "Localized string in the language corresponding to language_code below.", +"type": "string" +} +}, +"type": "object" +}, +"ProductBundleDetails": { +"description": "Details for a bundle product.", +"id": "ProductBundleDetails", +"properties": { +"bundleElements": { +"description": "The individual products that are included in the bundle.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1ProductBundleDetailsBundleElement" +}, +"type": "array" +}, +"entitlementMode": { +"description": "The entitlement mode of the bundle product.", +"enum": [ +"ENTITLEMENT_MODE_UNSPECIFIED", +"ENTITLEMENT_MODE_FULL", +"ENTITLEMENT_MODE_INCREMENTAL" +], +"enumDescriptions": [ +"Unspecified. It's reserved as an unexpected value, should not be used.", +"All the bundle elements must be fully activated in a single request.", +"The bundle elements could be incrementally activated." +], +"type": "string" +} +}, +"type": "object" +}, +"SubscriptionLineItemBundleDetails": { +"description": "The bundle details for a line item corresponding to a hard bundle.", +"id": "SubscriptionLineItemBundleDetails", +"properties": { +"bundleElementDetails": { +"description": "Output only. The details for each element in the hard bundle.", +"items": { +"$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Payments Reseller Subscription API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playdeveloperreporting.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playdeveloperreporting.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..66665995cbabc95e3650f2f701cbe42b78f853a3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playdeveloperreporting.v1beta1.json @@ -0,0 +1,2197 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/playdeveloperreporting": { +"description": "See metrics and data about the apps in your Google Play Developer account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://playdeveloperreporting.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Playdeveloperreporting", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/play/developer/reporting", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "playdeveloperreporting:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://playdeveloperreporting.mtls.googleapis.com/", +"name": "playdeveloperreporting", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"anomalies": { +"methods": { +"list": { +"description": "Lists anomalies in any of the datasets.", +"flatPath": "v1beta1/apps/{appsId}/anomalies", +"httpMethod": "GET", +"id": "playdeveloperreporting.anomalies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering criteria for anomalies. For basic filter guidance, please check: https://google.aip.dev/160. **Supported functions:** * `activeBetween(startTime, endTime)`: If specified, only list anomalies that were active in between `startTime` (inclusive) and `endTime` (exclusive). Both parameters are expected to conform to an RFC-3339 formatted string (e.g. `2012-04-21T11:30:00-04:00`). UTC offsets are supported. Both `startTime` and `endTime` accept the special value `UNBOUNDED`, to signify intervals with no lower or upper bound, respectively. Examples: * `activeBetween(\"2021-04-21T11:30:00Z\", \"2021-07-21T00:00:00Z\")` * `activeBetween(UNBOUNDED, \"2021-11-21T00:00:00-04:00\")` * `activeBetween(\"2021-07-21T00:00:00-04:00\", UNBOUNDED)`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 10 anomalies will be returned. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListErrorReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListErrorReports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent app for which anomalies were detected. Format: apps/{app}", +"location": "path", +"pattern": "^apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/anomalies", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1ListAnomaliesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"apps": { +"methods": { +"fetchReleaseFilterOptions": { +"description": "Describes filtering options for releases.", +"flatPath": "v1beta1/apps/{appsId}:fetchReleaseFilterOptions", +"httpMethod": "GET", +"id": "playdeveloperreporting.apps.fetchReleaseFilterOptions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource, i.e. app the filtering options are for. Format: apps/{app}", +"location": "path", +"pattern": "^apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:fetchReleaseFilterOptions", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1ReleaseFilterOptions" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"search": { +"description": "Searches for Apps accessible by the user.", +"flatPath": "v1beta1/apps:search", +"httpMethod": "GET", +"id": "playdeveloperreporting.apps.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of apps to return. The service may return fewer than this value. If unspecified, at most 50 apps will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `SearchAccessibleApps` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchAccessibleApps` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/apps:search", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1SearchAccessibleAppsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"vitals": { +"resources": { +"anrrate": { +"methods": { +"get": { +"description": "Describes the properties of the metric set.", +"flatPath": "v1beta1/apps/{appsId}/anrRateMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.anrrate.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/anrRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/anrRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1AnrRateMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metric set.", +"flatPath": "v1beta1/apps/{appsId}/anrRateMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.anrrate.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/anrRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/anrRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"crashrate": { +"methods": { +"get": { +"description": "Describes the properties of the metric set.", +"flatPath": "v1beta1/apps/{appsId}/crashRateMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.crashrate.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/crashRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/crashRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1CrashRateMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metric set.", +"flatPath": "v1beta1/apps/{appsId}/crashRateMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.crashrate.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/crashRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/crashRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"errors": { +"resources": { +"counts": { +"methods": { +"get": { +"description": "Describes the properties of the metrics set.", +"flatPath": "v1beta1/apps/{appsId}/errorCountMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.errors.counts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the errors metric set. Format: apps/{app}/errorCountMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/errorCountMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1ErrorCountMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metrics set.", +"flatPath": "v1beta1/apps/{appsId}/errorCountMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.errors.counts.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/errorCountMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/errorCountMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryErrorCountMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryErrorCountMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"issues": { +"methods": { +"search": { +"description": "Searches all error issues in which reports have been grouped.", +"flatPath": "v1beta1/apps/{appsId}/errorIssues:search", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.errors.issues.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A selection predicate to retrieve only a subset of the issues. Counts in the returned error issues will only reflect occurrences that matched the filter. For filtering basics, please check [AIP-160](https://google.aip.dev/160). ** Supported field names:** * `apiLevel`: Matches error issues that occurred in the requested Android versions (specified as the numeric API level) only. Example: `apiLevel = 28 OR apiLevel = 29`. * `versionCode`: Matches error issues that occurred in the requested app version codes only. Example: `versionCode = 123 OR versionCode = 456`. * `deviceModel`: Matches error issues that occurred in the requested devices. Example: `deviceModel = \"google/walleye\" OR deviceModel = \"google/marlin\"`. * `deviceBrand`: Matches error issues that occurred in the requested device brands. Example: `deviceBrand = \"Google\". * `deviceType`: Matches error issues that occurred in the requested device types. Example: `deviceType = \"PHONE\"`. * `errorIssueType`: Matches error issues of the requested types only. Valid candidates: `CRASH`, `ANR`, `NON_FATAL`. Example: `errorIssueType = CRASH OR errorIssueType = ANR`. * `appProcessState`: Matches error issues on the process state of an app, indicating whether an app runs in the foreground (user-visible) or background. Valid candidates: `FOREGROUND`, `BACKGROUND`. Example: `appProcessState = FOREGROUND`. * `isUserPerceived`: Matches error issues that are user-perceived. It is not accompanied by any operators. Example: `isUserPerceived`. ** Supported operators:** * Comparison operators: The only supported comparison operator is equality. The filtered field must appear on the left hand side of the comparison. * Logical Operators: Logical operators `AND` and `OR` can be used to build complex filters following a conjunctive normal form (CNF), i.e., conjunctions of disjunctions. The `OR` operator takes precedence over `AND` so the use of parenthesis is not necessary when building CNF. The `OR` operator is only supported to build disjunctions that apply to the same field, e.g., `versionCode = 123 OR errorIssueType = ANR` is not a valid filter. ** Examples ** Some valid filtering expressions: * `versionCode = 123 AND errorIssueType = ANR` * `versionCode = 123 AND errorIssueType = OR errorIssueType = CRASH` * `versionCode = 123 AND (errorIssueType = OR errorIssueType = CRASH)`", +"location": "query", +"type": "string" +}, +"interval.endTime.day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.timeZone.id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"location": "query", +"type": "string" +}, +"interval.endTime.timeZone.version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"location": "query", +"type": "string" +}, +"interval.endTime.utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"interval.endTime.year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.timeZone.id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"location": "query", +"type": "string" +}, +"interval.startTime.timeZone.version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"location": "query", +"type": "string" +}, +"interval.startTime.utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"interval.startTime.year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"orderBy": { +"description": "Specifies a field that will be used to order the results. ** Supported dimensions:** * `errorReportCount`: Orders issues by number of error reports. * `distinctUsers`: Orders issues by number of unique affected users. ** Supported operations:** * `asc` for ascending order. * `desc` for descending order. Format: A field and an operation, e.g., `errorReportCount desc` *Note:* currently only one field is supported at a time.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of error issues to return. The service may return fewer than this value. If unspecified, at most 50 error issues will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource of the error issues, indicating the application for which they were received. Format: apps/{app}", +"location": "path", +"pattern": "^apps/[^/]+$", +"required": true, +"type": "string" +}, +"sampleErrorReportLimit": { +"description": "Optional. Number of sample error reports to return per ErrorIssue. If unspecified, 0 will be used. *Note:* currently only 0 and 1 are supported.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v1beta1/{+parent}/errorIssues:search", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1SearchErrorIssuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"reports": { +"methods": { +"search": { +"description": "Searches all error reports received for an app.", +"flatPath": "v1beta1/apps/{appsId}/errorReports:search", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.errors.reports.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A selection predicate to retrieve only a subset of the reports. For filtering basics, please check [AIP-160](https://google.aip.dev/160). ** Supported field names:** * `apiLevel`: Matches error reports that occurred in the requested Android versions (specified as the numeric API level) only. Example: `apiLevel = 28 OR apiLevel = 29`. * `versionCode`: Matches error reports that occurred in the requested app version codes only. Example: `versionCode = 123 OR versionCode = 456`. * `deviceModel`: Matches error issues that occurred in the requested devices. Example: `deviceModel = \"google/walleye\" OR deviceModel = \"google/marlin\"`. * `deviceBrand`: Matches error issues that occurred in the requested device brands. Example: `deviceBrand = \"Google\". * `deviceType`: Matches error reports that occurred in the requested device types. Example: `deviceType = \"PHONE\"`. * `errorIssueType`: Matches error reports of the requested types only. Valid candidates: `CRASH`, `ANR`, `NON_FATAL`. Example: `errorIssueType = CRASH OR errorIssueType = ANR`. * `errorIssueId`: Matches error reports belonging to the requested error issue ids only. Example: `errorIssueId = 1234 OR errorIssueId = 4567`. * `errorReportId`: Matches error reports with the requested error report id. Example: `errorReportId = 1234 OR errorReportId = 4567`. * `appProcessState`: Matches error reports on the process state of an app, indicating whether an app runs in the foreground (user-visible) or background. Valid candidates: `FOREGROUND`, `BACKGROUND`. Example: `appProcessState = FOREGROUND`. * `isUserPerceived`: Matches error reports that are user-perceived. It is not accompanied by any operators. Example: `isUserPerceived`. ** Supported operators:** * Comparison operators: The only supported comparison operator is equality. The filtered field must appear on the left hand side of the comparison. * Logical Operators: Logical operators `AND` and `OR` can be used to build complex filters following a conjunctive normal form (CNF), i.e., conjunctions of disjunctions. The `OR` operator takes precedence over `AND` so the use of parenthesis is not necessary when building CNF. The `OR` operator is only supported to build disjunctions that apply to the same field, e.g., `versionCode = 123 OR versionCode = ANR`. The filter expression `versionCode = 123 OR errorIssueType = ANR` is not valid. ** Examples ** Some valid filtering expressions: * `versionCode = 123 AND errorIssueType = ANR` * `versionCode = 123 AND errorIssueType = OR errorIssueType = CRASH` * `versionCode = 123 AND (errorIssueType = OR errorIssueType = CRASH)`", +"location": "query", +"type": "string" +}, +"interval.endTime.day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.endTime.timeZone.id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"location": "query", +"type": "string" +}, +"interval.endTime.timeZone.version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"location": "query", +"type": "string" +}, +"interval.endTime.utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"interval.endTime.year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"interval.startTime.timeZone.id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"location": "query", +"type": "string" +}, +"interval.startTime.timeZone.version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"location": "query", +"type": "string" +}, +"interval.startTime.utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"interval.startTime.year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageSize": { +"description": "The maximum number of reports to return. The service may return fewer than this value. If unspecified, at most 50 reports will be returned. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `SearchErrorReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchErrorReports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource of the reports, indicating the application for which they were received. Format: apps/{app}", +"location": "path", +"pattern": "^apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/errorReports:search", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1SearchErrorReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +} +} +}, +"excessivewakeuprate": { +"methods": { +"get": { +"description": "Describes the properties of the metric set.", +"flatPath": "v1beta1/apps/{appsId}/excessiveWakeupRateMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.excessivewakeuprate.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/excessiveWakeupRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/excessiveWakeupRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1ExcessiveWakeupRateMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metric set.", +"flatPath": "v1beta1/apps/{appsId}/excessiveWakeupRateMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.excessivewakeuprate.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/excessiveWakeupRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/excessiveWakeupRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryExcessiveWakeupRateMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryExcessiveWakeupRateMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"slowrenderingrate": { +"methods": { +"get": { +"description": "Describes the properties of the metric set.", +"flatPath": "v1beta1/apps/{appsId}/slowRenderingRateMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.slowrenderingrate.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/slowRenderingRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/slowRenderingRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1SlowRenderingRateMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metric set.", +"flatPath": "v1beta1/apps/{appsId}/slowRenderingRateMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.slowrenderingrate.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/slowRenderingRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/slowRenderingRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QuerySlowRenderingRateMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QuerySlowRenderingRateMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"slowstartrate": { +"methods": { +"get": { +"description": "Describes the properties of the metric set.", +"flatPath": "v1beta1/apps/{appsId}/slowStartRateMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.slowstartrate.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/slowStartRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/slowStartRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1SlowStartRateMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metric set.", +"flatPath": "v1beta1/apps/{appsId}/slowStartRateMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.slowstartrate.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/slowStartRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/slowStartRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QuerySlowStartRateMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QuerySlowStartRateMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +}, +"stuckbackgroundwakelockrate": { +"methods": { +"get": { +"description": "Describes the properties of the metric set.", +"flatPath": "v1beta1/apps/{appsId}/stuckBackgroundWakelockRateMetricSet", +"httpMethod": "GET", +"id": "playdeveloperreporting.vitals.stuckbackgroundwakelockrate.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/stuckBackgroundWakelockRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/stuckBackgroundWakelockRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1StuckBackgroundWakelockRateMetricSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +}, +"query": { +"description": "Queries the metrics in the metric set.", +"flatPath": "v1beta1/apps/{appsId}/stuckBackgroundWakelockRateMetricSet:query", +"httpMethod": "POST", +"id": "playdeveloperreporting.vitals.stuckbackgroundwakelockrate.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name. Format: apps/{app}/stuckBackgroundWakelockRateMetricSet", +"location": "path", +"pattern": "^apps/[^/]+/stuckBackgroundWakelockRateMetricSet$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"request": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryStuckBackgroundWakelockRateMetricSetRequest" +}, +"response": { +"$ref": "GooglePlayDeveloperReportingV1beta1QueryStuckBackgroundWakelockRateMetricSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/playdeveloperreporting" +] +} +} +} +} +} +}, +"revision": "20241128", +"rootUrl": "https://playdeveloperreporting.googleapis.com/", +"schemas": { +"GooglePlayDeveloperReportingV1beta1Anomaly": { +"description": "Represents an anomaly detected in a dataset. Our anomaly detection systems flag datapoints in a time series that fall outside of and expected range derived from historical data. Although those expected ranges have an upper and a lower bound, we only flag anomalies when the data has become unexpectedly _worse_, which usually corresponds to the case where the metric crosses the upper bound. Multiple contiguous datapoints in a timeline outside of the expected range will be grouped into a single anomaly. Therefore, an anomaly represents effectively a segment of a metric's timeline. The information stored in the `timeline_spec`, `dimensions` and `metric` can be used to fetch a full timeline with extended ragne for context. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1Anomaly", +"properties": { +"dimensions": { +"description": "Combination of dimensions in which the anomaly was detected.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1DimensionValue" +}, +"type": "array" +}, +"metric": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricValue", +"description": "Metric where the anomaly was detected, together with the anomalous value." +}, +"metricSet": { +"description": "Metric set resource where the anomaly was detected.", +"type": "string" +}, +"name": { +"description": "Identifier. Name of the anomaly. Format: apps/{app}/anomalies/{anomaly}", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Timeline specification that covers the anomaly period." +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1AnrRateMetricSet": { +"description": "Singleton resource representing the set of ANR (Application not responding) metrics. This metric set contains ANRs data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about crashes, another stability metric.", +"id": "GooglePlayDeveloperReportingV1beta1AnrRateMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}/anrRateMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1App": { +"description": "A representation of an app in the Play Store.", +"id": "GooglePlayDeveloperReportingV1beta1App", +"properties": { +"displayName": { +"description": "Title of the app. This is the latest title as set in the Play Console and may not yet have been reviewed, so might not match the Play Store. Example: `Google Maps`.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}", +"type": "string" +}, +"packageName": { +"description": "Package name of the app. Example: `com.example.app123`.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1AppVersion": { +"description": "Representations of an app version.", +"id": "GooglePlayDeveloperReportingV1beta1AppVersion", +"properties": { +"versionCode": { +"description": "Numeric version code of the app version (set by the app's developer).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1CrashRateMetricSet": { +"description": "Singleton resource representing the set of crashrate metrics. This metric set contains crashes data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about ANRs, another stability metric.", +"id": "GooglePlayDeveloperReportingV1beta1CrashRateMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}/crashRateMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1DecimalConfidenceInterval": { +"description": "Represents the confidence interval of a metric.", +"id": "GooglePlayDeveloperReportingV1beta1DecimalConfidenceInterval", +"properties": { +"lowerBound": { +"$ref": "GoogleTypeDecimal", +"description": "The confidence interval's lower bound." +}, +"upperBound": { +"$ref": "GoogleTypeDecimal", +"description": "The confidence interval's upper bound." +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1DeviceId": { +"description": "Identifier of a device.", +"id": "GooglePlayDeveloperReportingV1beta1DeviceId", +"properties": { +"buildBrand": { +"description": "Value of Build.BRAND.", +"type": "string" +}, +"buildDevice": { +"description": "Value of Build.DEVICE.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1DeviceModelSummary": { +"description": "Summary of a device", +"id": "GooglePlayDeveloperReportingV1beta1DeviceModelSummary", +"properties": { +"deviceId": { +"$ref": "GooglePlayDeveloperReportingV1beta1DeviceId", +"description": "Identifier of the device." +}, +"deviceUri": { +"description": "Link to the device in Play Device Catalog.", +"type": "string" +}, +"marketingName": { +"description": "Display name of the device.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1DimensionValue": { +"description": "Represents the value of a single dimension.", +"id": "GooglePlayDeveloperReportingV1beta1DimensionValue", +"properties": { +"dimension": { +"description": "Name of the dimension.", +"type": "string" +}, +"int64Value": { +"description": "Actual value, represented as an int64.", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "Actual value, represented as a string.", +"type": "string" +}, +"valueLabel": { +"description": "Optional. Human-friendly label for the value, always in English. For example, 'Spain' for the 'ES' country code. Whereas the dimension value is stable, this value label is subject to change. Do not assume that the (value, value_label) relationship is stable. For example, the ISO country code 'MK' changed its name recently to 'North Macedonia'.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1ErrorCountMetricSet": { +"description": "Singleton resource representing the set of error report metrics. This metric set contains un-normalized error report counts. **Supported aggregation periods:** * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. * DAILY: metrics are aggregated in calendar date intervals. The default and only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `errorReportCount` (`google.type.Decimal`): Absolute count of individual error reports that have been received for an app. * `distinctUsers` (`google.type.Decimal`): Count of distinct users for which reports have been received. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. This value is not rounded, however it may be an approximation. **Required dimension:** This dimension must be always specified in all requests in the `dimensions` field in query requests. * `reportType` (string): the type of error. The value should correspond to one of the possible values in ErrorType. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceType` (string): identifier of the device's form factor, e.g., PHONE. * `issueId` (string): the id an error was assigned to. The value should correspond to the `{issue}` component of the issue name. * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors.counts contains normalized metrics about Crashes, another stability metric. * vitals.errors.counts contains normalized metrics about ANRs, another stability metric.", +"id": "GooglePlayDeveloperReportingV1beta1ErrorCountMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "The resource name. Format: apps/{app}/errorCountMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1ErrorIssue": { +"description": "A group of related ErrorReports received for an app. Similar error reports are grouped together into issues with a likely identical root cause. **Please note:** this resource is currently in Alpha. There could be changes to the issue grouping that would result in similar but more recent error reports being assigned to different issues. This could also cause some issues disappearing entirely and being replaced by new ones. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1ErrorIssue", +"properties": { +"annotations": { +"description": "List of annotations for an issue. Annotations provide additional information that may help in diagnosing and fixing the issue.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1IssueAnnotation" +}, +"type": "array" +}, +"cause": { +"description": "Cause of the issue. Depending on the type this can be either: * APPLICATION_NOT_RESPONDING: the type of ANR that occurred, e.g., 'Input dispatching timed out'. * CRASH: for Java unhandled exception errors, the type of the innermost exception that was thrown, e.g., IllegalArgumentException. For signals in native code, the signal that was raised, e.g. SIGSEGV.", +"type": "string" +}, +"distinctUsers": { +"description": "An estimate of the number of unique users who have experienced this issue (only considering occurrences matching the filters and within the requested time period).", +"format": "int64", +"type": "string" +}, +"distinctUsersPercent": { +"$ref": "GoogleTypeDecimal", +"description": "An estimated percentage of users affected by any issue that are affected by this issue (only considering occurrences matching the filters and within the requested time period)." +}, +"errorReportCount": { +"description": "The total number of error reports in this issue (only considering occurrences matching the filters and within the requested time period).", +"format": "int64", +"type": "string" +}, +"firstAppVersion": { +"$ref": "GooglePlayDeveloperReportingV1beta1AppVersion", +"description": "The earliest (inclusive) app version appearing in this ErrorIssue in the requested time period (only considering occurrences matching the filters)." +}, +"firstOsVersion": { +"$ref": "GooglePlayDeveloperReportingV1beta1OsVersion", +"description": "The smallest OS version in which this error cluster has occurred in the requested time period (only considering occurrences matching the filters and within the requested time period)." +}, +"issueUri": { +"description": "Link to the issue in Android vitals in the Play Console.", +"type": "string" +}, +"lastAppVersion": { +"$ref": "GooglePlayDeveloperReportingV1beta1AppVersion", +"description": "The latest (inclusive) app version appearing in this ErrorIssue in the requested time period (only considering occurrences matching the filters)." +}, +"lastErrorReportTime": { +"description": "Start of the hour during which the last error report in this issue occurred.", +"format": "google-datetime", +"type": "string" +}, +"lastOsVersion": { +"$ref": "GooglePlayDeveloperReportingV1beta1OsVersion", +"description": "The latest OS version in which this error cluster has occurred in the requested time period (only considering occurrences matching the filters and within the requested time period)." +}, +"location": { +"description": "Location where the issue happened. Depending on the type this can be either: * APPLICATION_NOT_RESPONDING: the name of the activity or service that stopped responding. * CRASH: the likely method name that caused the error.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the issue. Format: apps/{app}/{issue}", +"type": "string" +}, +"sampleErrorReports": { +"description": "Output only. Sample error reports which belong to this ErrorIssue. *Note:* currently a maximum of 1 per ErrorIssue is supported. Format: \"apps/{app}/{report}\"", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"type": { +"description": "Type of the errors grouped in this issue.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"APPLICATION_NOT_RESPONDING", +"CRASH", +"NON_FATAL" +], +"enumDescriptions": [ +"Unspecified error type.", +"Application Not Responding (ANR) error. To learn more about this type of errors visit the corresponding Android Developers documentation.", +"Crash caused by an unhandled exception in Java (or Kotlin or any other JVM language) or a signal in native code such as SIGSEGV.", +"Non-fatal caused by events that do not immediately cause crashes, but is likely to lead to one." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1ErrorReport": { +"description": "An error report received for an app. There reports are produced by the Android platform code when a (potentially fatal) error condition is detected. Identical reports from many users will be deduplicated and coalesced into a single ErrorReport. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1ErrorReport", +"properties": { +"appVersion": { +"$ref": "GooglePlayDeveloperReportingV1beta1AppVersion", +"description": "The app version on which an event in this error report occurred on." +}, +"deviceModel": { +"$ref": "GooglePlayDeveloperReportingV1beta1DeviceModelSummary", +"description": "A device model on which an event in this error report occurred on." +}, +"eventTime": { +"description": "Start of the hour during which the latest event in this error report occurred.", +"format": "google-datetime", +"type": "string" +}, +"issue": { +"description": "The issue this report was associated with. **Please note:** this resource is currently in Alpha. There could be changes to the issue grouping that would result in similar but more recent error reports being assigned to a different issue.", +"type": "string" +}, +"name": { +"description": "The resource name of the report. Format: apps/{app}/{report}", +"type": "string" +}, +"osVersion": { +"$ref": "GooglePlayDeveloperReportingV1beta1OsVersion", +"description": "The OS version on which an event in this error report occurred on." +}, +"reportText": { +"description": "Textual representation of the error report. These textual reports are produced by the platform. The reports are then sanitized and filtered to remove any potentially sensitive information. Although their format is fairly stable, they are not entirely meant for machine consumption and we cannot guarantee that there won't be subtle changes to the formatting that may break systems trying to parse information out of the reports.", +"type": "string" +}, +"type": { +"description": "Type of the error for which this report was generated.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"APPLICATION_NOT_RESPONDING", +"CRASH", +"NON_FATAL" +], +"enumDescriptions": [ +"Unspecified error type.", +"Application Not Responding (ANR) error. To learn more about this type of errors visit the corresponding Android Developers documentation.", +"Crash caused by an unhandled exception in Java (or Kotlin or any other JVM language) or a signal in native code such as SIGSEGV.", +"Non-fatal caused by events that do not immediately cause crashes, but is likely to lead to one." +], +"type": "string" +}, +"vcsInformation": { +"description": "Version control system information from BUNDLE-METADATA/version-control-info.textproto or META-INF/version-control-info.textproto of the app bundle or APK, respectively.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1ExcessiveWakeupRateMetricSet": { +"description": "Singleton resource representing the set of Excessive Weakeups metrics. This metric set contains AlarmManager wakeup counts data combined with process state data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `excessiveWakeupRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had more than 10 wakeups per hour. * `excessiveWakeupRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `excessiveWakeupRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `excessiveWakeupRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `excessiveWakeupRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `excessiveWakeupRate` metric. A user is counted in this metric if they app was doing any work on the device, i.e., not just active foreground usage but also background work. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1ExcessiveWakeupRateMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}/excessiveWakeupRateMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1FreshnessInfo": { +"description": "Represents the latest available time that can be requested in a TimelineSpec. Different aggregation periods have different freshness. For example, `DAILY` aggregation may lag behind `HOURLY` in cases where such aggregation is computed only once at the end of the day.", +"id": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"properties": { +"freshnesses": { +"description": "Information about data freshness for every supported aggregation period. This field has set semantics, keyed by the `aggregation_period` field.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfoFreshness" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1FreshnessInfoFreshness": { +"description": "Information about data freshness for a single aggregation period.", +"id": "GooglePlayDeveloperReportingV1beta1FreshnessInfoFreshness", +"properties": { +"aggregationPeriod": { +"description": "Aggregation period for which data is available.", +"enum": [ +"AGGREGATION_PERIOD_UNSPECIFIED", +"HOURLY", +"DAILY", +"FULL_RANGE" +], +"enumDescriptions": [ +"Unspecified granularity.", +"Data is aggregated in hourly intervals.", +"Data is aggregated in daily intervals.", +"Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." +], +"type": "string" +}, +"latestEndTime": { +"$ref": "GoogleTypeDateTime", +"description": "Latest end time for which data is available, for the aggregation period. The time is specified in the metric set's default timezone. *Note:* time ranges in TimelineSpec are represented as `start_time, end_time)`. For example, if the latest available timeline data point for a `DAILY` aggregation period is `2021-06-23 00:00:00 America/Los_Angeles`, the value of this field would be `2021-06-24 00:00:00 America/Los_Angeles` so it can be easily reused in [TimelineSpec.end_time." +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1IssueAnnotation": { +"description": "Representation of an annotation message for an issue.", +"id": "GooglePlayDeveloperReportingV1beta1IssueAnnotation", +"properties": { +"body": { +"description": "Contains the contents of the annotation message.", +"type": "string" +}, +"category": { +"description": "Category that the annotation belongs to. An annotation will belong to a single category. Example categories: \"Potential fix\", \"Insight\".", +"type": "string" +}, +"title": { +"description": "Title for the annotation.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1ListAnomaliesResponse": { +"description": "Response with a list of anomalies in datasets.", +"id": "GooglePlayDeveloperReportingV1beta1ListAnomaliesResponse", +"properties": { +"anomalies": { +"description": "Anomalies that were found.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1Anomaly" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1MetricValue": { +"description": "Represents the value of a metric.", +"id": "GooglePlayDeveloperReportingV1beta1MetricValue", +"properties": { +"decimalValue": { +"$ref": "GoogleTypeDecimal", +"description": "Actual value, represented as a decimal number." +}, +"decimalValueConfidenceInterval": { +"$ref": "GooglePlayDeveloperReportingV1beta1DecimalConfidenceInterval", +"description": "Confidence interval of a value that is of type `type.Decimal`." +}, +"metric": { +"description": "Name of the metric.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1MetricsRow": { +"description": "Represents a row of dimensions and metrics.", +"id": "GooglePlayDeveloperReportingV1beta1MetricsRow", +"properties": { +"aggregationPeriod": { +"description": "Granularity of the aggregation period of the row.", +"enum": [ +"AGGREGATION_PERIOD_UNSPECIFIED", +"HOURLY", +"DAILY", +"FULL_RANGE" +], +"enumDescriptions": [ +"Unspecified granularity.", +"Data is aggregated in hourly intervals.", +"Data is aggregated in daily intervals.", +"Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." +], +"type": "string" +}, +"dimensions": { +"description": "Dimension columns in the row.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1DimensionValue" +}, +"type": "array" +}, +"metrics": { +"description": "Metric columns in the row.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricValue" +}, +"type": "array" +}, +"startTime": { +"$ref": "GoogleTypeDateTime", +"description": "Starting date (and time for hourly aggregation) of the period covered by this row." +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1OsVersion": { +"description": "Representation of an OS version.", +"id": "GooglePlayDeveloperReportingV1beta1OsVersion", +"properties": { +"apiLevel": { +"description": "Numeric version code of the OS - API level", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetRequest": { +"description": "Request message for QueryAnrRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the metrics by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not . supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100,000; values above 100,000 will be coerced to 100,000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`." +}, +"userCohort": { +"description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", +"enum": [ +"USER_COHORT_UNSPECIFIED", +"OS_PUBLIC", +"OS_BETA", +"APP_TESTERS" +], +"enumDescriptions": [ +"Unspecified User cohort. This will automatically choose the default value.", +"This is default view. Contains data from public released android versions only.", +"This is the view with just android beta data excluding released OS version data.", +"This is the view with data only from users who have opted in to be testers for a given app, excluding OS beta data." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetResponse": { +"description": "Response message for QueryAnrRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows of data.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetRequest": { +"description": "Request message for QueryCrashRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the metrics by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100,000; values above 100,000 will be coerced to 100,000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`." +}, +"userCohort": { +"description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", +"enum": [ +"USER_COHORT_UNSPECIFIED", +"OS_PUBLIC", +"OS_BETA", +"APP_TESTERS" +], +"enumDescriptions": [ +"Unspecified User cohort. This will automatically choose the default value.", +"This is default view. Contains data from public released android versions only.", +"This is the view with just android beta data excluding released OS version data.", +"This is the view with data only from users who have opted in to be testers for a given app, excluding OS beta data." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetResponse": { +"description": "Response message for QueryCrashRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows of data.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryErrorCountMetricSetRequest": { +"description": "Request message for QueryErrorCountMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryErrorCountMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the data by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): identifier of the device's form factor, e.g., PHONE. * `reportType` (string): the type of error. The value should correspond to one of the possible values in ErrorType. * `issueId` (string): the id an error was assigned to. The value should correspond to the `{issue}` component of the issue name. * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions and: * `isUserPerceived` (string): denotes whether error is user perceived or not, USER_PERCEIVED or NOT_USER_PERCEIVED.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `errorReportCount` (`google.type.Decimal`): Absolute count of individual error reports that have been received for an app. * `distinctUsers` (`google.type.Decimal`): Count of distinct users for which reports have been received. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. This value is not rounded, however it may be an approximation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100000; values above 100000 will be coerced to 100000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. The default and only supported timezone is `America/Los_Angeles`." +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryErrorCountMetricSetResponse": { +"description": "Error counts query response.", +"id": "GooglePlayDeveloperReportingV1beta1QueryErrorCountMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryExcessiveWakeupRateMetricSetRequest": { +"description": "Request message for QueryExcessiveWakeupRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryExcessiveWakeupRateMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the data by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `excessiveWakeupRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had more than 10 wakeups per hour. * `excessiveWakeupRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `excessiveWakeupRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `excessiveWakeupRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `excessiveWakeupRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `excessiveWakeupRate` metric. A user is counted in this metric if they app was doing any work on the device, i.e., not just active foreground usage but also background work. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100000; values above 100000 will be coerced to 100000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`." +}, +"userCohort": { +"description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", +"enum": [ +"USER_COHORT_UNSPECIFIED", +"OS_PUBLIC", +"OS_BETA", +"APP_TESTERS" +], +"enumDescriptions": [ +"Unspecified User cohort. This will automatically choose the default value.", +"This is default view. Contains data from public released android versions only.", +"This is the view with just android beta data excluding released OS version data.", +"This is the view with data only from users who have opted in to be testers for a given app, excluding OS beta data." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryExcessiveWakeupRateMetricSetResponse": { +"description": "Response message for QueryExcessiveWakeupRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryExcessiveWakeupRateMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows of data.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QuerySlowRenderingRateMetricSetRequest": { +"description": "Request message for QuerySlowRenderingRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QuerySlowRenderingRateMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the data by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `slowRenderingRate20Fps` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had a slow rendering. * `slowRenderingRate20Fps7dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate20Fps` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `slowRenderingRate20Fps28dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate20Fps` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `slowRenderingRate30Fps` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had a slow rendering. * `slowRenderingRate30Fps7dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate30Fps` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `slowRenderingRate30Fps28dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate30Fps` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `slowRenderingRate20Fps`/`slowRenderingRate30Fps` metric. A user is counted in this metric if their app was launched in the device. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100000; values above 100000 will be coerced to 100000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`." +}, +"userCohort": { +"description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta Android versions only, excluding data from released Android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", +"enum": [ +"USER_COHORT_UNSPECIFIED", +"OS_PUBLIC", +"OS_BETA", +"APP_TESTERS" +], +"enumDescriptions": [ +"Unspecified User cohort. This will automatically choose the default value.", +"This is default view. Contains data from public released android versions only.", +"This is the view with just android beta data excluding released OS version data.", +"This is the view with data only from users who have opted in to be testers for a given app, excluding OS beta data." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QuerySlowRenderingRateMetricSetResponse": { +"description": "Response message for QuerySlowRenderingRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QuerySlowRenderingRateMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows of data.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QuerySlowStartRateMetricSetRequest": { +"description": "Request message for QuerySlowStartRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QuerySlowStartRateMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the data by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `slowStartRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had a slow start. * `slowStartRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowStartRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `slowStartRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowStartRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `slowStartRate` metric. A user is counted in this metric if their app was launched in the device. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100000; values above 100000 will be coerced to 100000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`." +}, +"userCohort": { +"description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta Android versions only, excluding data from released Android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", +"enum": [ +"USER_COHORT_UNSPECIFIED", +"OS_PUBLIC", +"OS_BETA", +"APP_TESTERS" +], +"enumDescriptions": [ +"Unspecified User cohort. This will automatically choose the default value.", +"This is default view. Contains data from public released android versions only.", +"This is the view with just android beta data excluding released OS version data.", +"This is the view with data only from users who have opted in to be testers for a given app, excluding OS beta data." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QuerySlowStartRateMetricSetResponse": { +"description": "Response message for QuerySlowStartRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QuerySlowStartRateMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows of data.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryStuckBackgroundWakelockRateMetricSetRequest": { +"description": "Request message for QueryStuckBackgroundWakelockRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryStuckBackgroundWakelockRateMetricSetRequest", +"properties": { +"dimensions": { +"description": "Dimensions to slice the data by. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filters to apply to data. The filtering expression follows [AIP-160](https://google.aip.dev/160) standard and supports filtering by equality of all breakdown dimensions.", +"type": "string" +}, +"metrics": { +"description": "Metrics to aggregate. **Supported metrics:** * `stuckBgWakelockRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had a wakelock held in the background for longer than 1 hour. * `stuckBgWakelockRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `stuckBgWakelockRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `stuckBgWakelockRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `stuckBgWakelockRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `stuckBgWakelockRate` metric. A user is counted in this metric if they app was doing any work on the device, i.e., not just active foreground usage but also background work. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100000; values above 100000 will be coerced to 100000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the request must match the call that provided the page token.", +"type": "string" +}, +"timelineSpec": { +"$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`." +}, +"userCohort": { +"description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", +"enum": [ +"USER_COHORT_UNSPECIFIED", +"OS_PUBLIC", +"OS_BETA", +"APP_TESTERS" +], +"enumDescriptions": [ +"Unspecified User cohort. This will automatically choose the default value.", +"This is default view. Contains data from public released android versions only.", +"This is the view with just android beta data excluding released OS version data.", +"This is the view with data only from users who have opted in to be testers for a given app, excluding OS beta data." +], +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1QueryStuckBackgroundWakelockRateMetricSetResponse": { +"description": "Response message for QueryStuckBackgroundWakelockRateMetricSet.", +"id": "GooglePlayDeveloperReportingV1beta1QueryStuckBackgroundWakelockRateMetricSetResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +}, +"rows": { +"description": "Returned rows of data.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1MetricsRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1Release": { +"description": "A representation of an app release.", +"id": "GooglePlayDeveloperReportingV1beta1Release", +"properties": { +"displayName": { +"description": "Readable identifier of the release.", +"type": "string" +}, +"versionCodes": { +"description": "The version codes contained in this release.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1ReleaseFilterOptions": { +"description": "A set of filtering options for releases and version codes specific to an app.", +"id": "GooglePlayDeveloperReportingV1beta1ReleaseFilterOptions", +"properties": { +"tracks": { +"description": "List of tracks to filter releases over. Provides the grouping of version codes under releases and tracks.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1SearchAccessibleAppsResponse": { +"description": "Response message for SearchAccessibleApps.", +"id": "GooglePlayDeveloperReportingV1beta1SearchAccessibleAppsResponse", +"properties": { +"apps": { +"description": "The apps accessible to the user calling the endpoint.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1App" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1SearchErrorIssuesResponse": { +"description": "Response with a paginated list of issues that matched the request.", +"id": "GooglePlayDeveloperReportingV1beta1SearchErrorIssuesResponse", +"properties": { +"errorIssues": { +"description": "ErrorIssues that were found.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1ErrorIssue" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token to fetch the next page of data.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1SearchErrorReportsResponse": { +"description": "Response with a paginated list of error reports matching the search query.", +"id": "GooglePlayDeveloperReportingV1beta1SearchErrorReportsResponse", +"properties": { +"errorReports": { +"description": "Error reports that were found.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1ErrorReport" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token to fetch the next page of reports.", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1SlowRenderingRateMetricSet": { +"description": "Singleton resource representing the set of Slow Rendering metrics. This metric set contains low-level rendering data captured by SurafeFlinger. Sessions are evaluated based on the present-to-present histogram of frames handled by any SurfaceFlinger layer owned by the app. A slow session is a session where more than 25% of frames for the session did not meet the metric's target frame rate (either 20fps, or 30fps). *NOTE:* This metric set is only available for games. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `slowRenderingRate20Fps` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had slow rendering. * `slowRenderingRate20Fps7dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate20Fps` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `slowRenderingRate20Fps28dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate20Fps` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `slowRenderingRate30Fps` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had slow rendering. * `slowRenderingRate30Fps7dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate30Fps` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `slowRenderingRate30Fps28dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowRenderingRate30Fps` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `slowRenderingRate20Fps`/`slowRenderingRate30Fps` metric. A user is counted in this metric if their app rendered any frames. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1SlowRenderingRateMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}/slowRenderingRateMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1SlowStartRateMetricSet": { +"description": "Singleton resource representing the set of Slow Start metrics. This metric set contains Activity start duration data. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `slowStartRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had a slow start. * `slowStartRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowStartRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `slowStartRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `slowStartRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `slowStartRate` metric. A user is counted in this metric if their app was launched in the device. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Required dimension:** This dimension must be specified with each request for the request to be valid. * `startType` (string): the type of start that was measured. Valid types are `HOT`, `WARM` and `COLD`. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1SlowStartRateMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}/slowStartRateMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1StuckBackgroundWakelockRateMetricSet": { +"description": "Singleton resource representing the set of Stuck Background Wakelocks metrics. This metric set contains PowerManager wakelock duration data combined with process state data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `stuckBgWakelockRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that had a wakelock held in the background for longer than 1 hour. * `stuckBgWakelockRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `stuckBgWakelockRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `stuckBgWakelockRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `stuckBgWakelockRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `stuckBgWakelockRate` metric. A user is counted in this metric if their app was doing any work on the device, i.e., not just active foreground usage but also background work. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device, e.g., 26. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. The form of the identifier is 'deviceBrand/device', where deviceBrand corresponds to Build.BRAND and device corresponds to Build.DEVICE, e.g., google/coral. * `deviceBrand` (string): unique identifier of the user's device brand, e.g., google. * `deviceType` (string): the type (also known as form factor) of the user's device, e.g., PHONE. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app.", +"id": "GooglePlayDeveloperReportingV1beta1StuckBackgroundWakelockRateMetricSet", +"properties": { +"freshnessInfo": { +"$ref": "GooglePlayDeveloperReportingV1beta1FreshnessInfo", +"description": "Summary about data freshness in this resource." +}, +"name": { +"description": "Identifier. The resource name. Format: apps/{app}/stuckBackgroundWakelockRateMetricSet", +"type": "string" +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1TimelineSpec": { +"description": "Specification of the time-related aggregation parameters of a timeline. Timelines have an aggregation period (`DAILY`, `HOURLY`, etc) which defines how events are aggregated in metrics. The points in a timeline are defined by the starting DateTime of the aggregation period. The duration is implicit in the AggregationPeriod. Hourly aggregation periods, when supported by a metric set, are always specified in UTC to avoid ambiguities around daylight saving time transitions, where an hour is skipped when adopting DST, and repeated when abandoning DST. For example, the timestamp '2021-11-07 01:00:00 America/Los_Angeles' is ambiguous since it can correspond to '2021-11-07 08:00:00 UTC' or '2021-11-07 09:00:00 UTC'. Daily aggregation periods require specifying a timezone which will determine the precise instants of the start and the end of the day. Not all metric sets support all timezones, so make sure to check which timezones are supported by the metric set you want to query.", +"id": "GooglePlayDeveloperReportingV1beta1TimelineSpec", +"properties": { +"aggregationPeriod": { +"description": "Type of the aggregation period of the datapoints in the timeline. Intervals are identified by the date and time at the start of the interval.", +"enum": [ +"AGGREGATION_PERIOD_UNSPECIFIED", +"HOURLY", +"DAILY", +"FULL_RANGE" +], +"enumDescriptions": [ +"Unspecified granularity.", +"Data is aggregated in hourly intervals.", +"Data is aggregated in daily intervals.", +"Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." +], +"type": "string" +}, +"endTime": { +"$ref": "GoogleTypeDateTime", +"description": "Ending datapoint of the timeline (exclusive). See start_time for restrictions. The timezone of the end point must match the timezone of the start point." +}, +"startTime": { +"$ref": "GoogleTypeDateTime", +"description": "Starting datapoint of the timeline (inclusive). Must be aligned to the aggregation period as follows: * HOURLY: the 'minutes', 'seconds' and 'nanos' fields must be unset. The time_zone can be left unset (defaults to UTC) or set explicitly to \"UTC\". Setting any other utc_offset or timezone id will result in a validation error. * DAILY: the 'hours', 'minutes', 'seconds' and 'nanos' fields must be unset. Different metric sets support different timezones. It can be left unset to use the default timezone specified by the metric set. The timezone of the end point must match the timezone of the start point." +} +}, +"type": "object" +}, +"GooglePlayDeveloperReportingV1beta1Track": { +"description": "A representation of a Play release track.", +"id": "GooglePlayDeveloperReportingV1beta1Track", +"properties": { +"displayName": { +"description": "Readable identifier of the track.", +"type": "string" +}, +"servingReleases": { +"description": "Represents all active releases in the track.", +"items": { +"$ref": "GooglePlayDeveloperReportingV1beta1Release" +}, +"type": "array" +}, +"type": { +"description": "The type of the track.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeDateTime": { +"description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", +"id": "GoogleTypeDateTime", +"properties": { +"day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"type": "integer" +}, +"hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +}, +"timeZone": { +"$ref": "GoogleTypeTimeZone", +"description": "Time zone." +}, +"utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"type": "string" +}, +"year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleTypeDecimal": { +"description": "A representation of a decimal value, such as 2.5. Clients may convert values into language-native decimal formats, such as Java's [BigDecimal](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).", +"id": "GoogleTypeDecimal", +"properties": { +"value": { +"description": "The decimal value, as a string. The string representation consists of an optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of zero or more decimal digits (\"the integer\"), optionally followed by a fraction, optionally followed by an exponent. An empty string **should** be interpreted as `0`. The fraction consists of a decimal point followed by zero or more decimal digits. The string must contain at least one digit in either the integer or the fraction. The number formed by the sign, the integer and the fraction is referred to as the significand. The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal digits. Services **should** normalize decimal values before storing them by: - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may** perform additional normalization based on its own needs and the internal decimal implementation selected, such as shifting the decimal point and exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services **may** preserve trailing zeroes in the fraction to indicate increased precision, but are not required to do so. Note that only the `.` character is supported to divide the integer and the fraction; `,` **should not** be supported regardless of locale. Additionally, thousand separators **should not** be supported. If a service does support them, values **must** be normalized. The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services **should** clearly document the range of supported values, the maximum supported precision (total number of digits), and, if applicable, the scale (number of digits after the decimal point), as well as how it behaves when receiving out-of-bounds values. Services **may** choose to accept values passed as input even when the value has a higher precision or scale than the service supports, and **should** round the value to fit the supported scale. Alternatively, the service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service receives a value outside of the supported range.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeTimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "GoogleTypeTimeZone", +"properties": { +"id": { +"description": "IANA Time Zone Database time zone. For example \"America/New_York\".", +"type": "string" +}, +"version": { +"description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Play Developer Reporting API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/pollen.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/pollen.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..a6ff737f141fc9c31e22af0986d260b7b04566ce --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/pollen.v1.json @@ -0,0 +1,566 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://pollen.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Pollen", +"description": "The Pollen API. ", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/maps/documentation/pollen", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "pollen:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://pollen.mtls.googleapis.com/", +"name": "pollen", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"forecast": { +"methods": { +"lookup": { +"description": "Returns up to 5 days of daily pollen information in more than 65 countries, up to 1km resolution.", +"flatPath": "v1/forecast:lookup", +"httpMethod": "GET", +"id": "pollen.forecast.lookup", +"parameterOrder": [], +"parameters": { +"days": { +"description": "Required. A number that indicates how many forecast days to request (minimum value 1, maximum value is 5).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"languageCode": { +"description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language, the API uses the closest match. Allowed values rely on the IETF BCP-47 standard. The default value is \"en\".", +"location": "query", +"type": "string" +}, +"location.latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"location": "query", +"type": "number" +}, +"location.longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"location": "query", +"type": "number" +}, +"pageSize": { +"description": "Optional. The maximum number of daily info records to return per page. The default and max value is 5, indicating 5 days of data.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token received from a previous daily call. It is used to retrieve the subsequent page. Note that when providing a value for the page token, all other request parameters provided must match the previous call that provided the page token.", +"location": "query", +"type": "string" +}, +"plantsDescription": { +"description": "Optional. Contains general information about plants, including details on their seasonality, special shapes and colors, information about allergic cross-reactions, and plant photos. The default value is \"true\".", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/forecast:lookup", +"response": { +"$ref": "LookupForecastResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"mapTypes": { +"resources": { +"heatmapTiles": { +"methods": { +"lookupHeatmapTile": { +"description": "Returns a byte array containing the data of the tile PNG image.", +"flatPath": "v1/mapTypes/{mapType}/heatmapTiles/{zoom}/{x}/{y}", +"httpMethod": "GET", +"id": "pollen.mapTypes.heatmapTiles.lookupHeatmapTile", +"parameterOrder": [ +"mapType", +"zoom", +"x", +"y" +], +"parameters": { +"mapType": { +"description": "Required. The type of the pollen heatmap. Defines the combination of pollen type and index that the map will graphically represent.", +"enum": [ +"MAP_TYPE_UNSPECIFIED", +"TREE_UPI", +"GRASS_UPI", +"WEED_UPI" +], +"enumDescriptions": [ +"Unspecified map type.", +"The heatmap type will represent a tree index graphical map.", +"The heatmap type will represent a grass index graphical map.", +"The heatmap type will represent a weed index graphical map." +], +"location": "path", +"required": true, +"type": "string" +}, +"x": { +"description": "Required. Defines the east-west point in the requested tile.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"y": { +"description": "Required. Defines the north-south point in the requested tile.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"zoom": { +"description": "Required. The map's zoom level. Defines how large or small the contents of a map appear in a map view. * Zoom level 0 is the entire world in a single tile. * Zoom level 1 is the entire world in 4 tiles. * Zoom level 2 is the entire world in 16 tiles. * Zoom level 16 is the entire world in 65,536 tiles. Allowed values: 0-16", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +} +}, +"path": "v1/mapTypes/{mapType}/heatmapTiles/{zoom}/{x}/{y}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20240825", +"rootUrl": "https://pollen.googleapis.com/", +"schemas": { +"Color": { +"description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value\u2014for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", +"id": "Color", +"properties": { +"alpha": { +"description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", +"format": "float", +"type": "number" +}, +"blue": { +"description": "The amount of blue in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"green": { +"description": "The amount of green in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"red": { +"description": "The amount of red in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DayInfo": { +"description": "This object contains the daily forecast information for each day requested.", +"id": "DayInfo", +"properties": { +"date": { +"$ref": "Date", +"description": "The date in UTC at which the pollen forecast data is represented." +}, +"plantInfo": { +"description": "This list will include up to 15 pollen species affecting the location specified in the request.", +"items": { +"$ref": "PlantInfo" +}, +"type": "array" +}, +"pollenTypeInfo": { +"description": "This list will include up to three pollen types (GRASS, WEED, TREE) affecting the location specified in the request.", +"items": { +"$ref": "PollenTypeInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "HttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"IndexInfo": { +"description": "This object contains data representing specific pollen index value, category and description.", +"id": "IndexInfo", +"properties": { +"category": { +"description": "Text classification of index numerical score interpretation. The index consists of six categories: * 0: \"None\" * 1: \"Very low\" * 2: \"Low\" * 3: \"Moderate\" * 4: \"High\" * 5: \"Very high", +"type": "string" +}, +"code": { +"description": "The index's code. This field represents the index for programming purposes by using snake cases instead of spaces. Example: \"UPI\".", +"enum": [ +"INDEX_UNSPECIFIED", +"UPI" +], +"enumDescriptions": [ +"Unspecified index.", +"Universal Pollen Index." +], +"type": "string" +}, +"color": { +"$ref": "Color", +"description": "The color used to represent the Pollen Index numeric score." +}, +"displayName": { +"description": "A human readable representation of the index name. Example: \"Universal Pollen Index\".", +"type": "string" +}, +"indexDescription": { +"description": "Textual explanation of current index level.", +"type": "string" +}, +"value": { +"description": "The index's numeric score. Numeric range is between 0 and 5.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"LookupForecastResponse": { +"id": "LookupForecastResponse", +"properties": { +"dailyInfo": { +"description": "Required. This object contains the daily forecast information for each day requested.", +"items": { +"$ref": "DayInfo" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Optional. The token to retrieve the next page.", +"type": "string" +}, +"regionCode": { +"description": "The ISO_3166-1 alpha-2 code of the country/region corresponding to the location provided in the request. This field might be omitted from the response if the location provided in the request resides in a disputed territory.", +"type": "string" +} +}, +"type": "object" +}, +"PlantDescription": { +"description": "Contains general information about plants, including details on their seasonality, special shapes and colors, information about allergic cross-reactions, and plant photos.", +"id": "PlantDescription", +"properties": { +"crossReaction": { +"description": "Textual description of pollen cross reaction plants. Example: Alder, Hazel, Hornbeam, Beech, Willow, and Oak pollen.", +"type": "string" +}, +"family": { +"description": "A human readable representation of the plant family name. Example: \"Betulaceae (the Birch family)\".", +"type": "string" +}, +"picture": { +"description": "Link to the picture of the plant.", +"type": "string" +}, +"pictureCloseup": { +"description": "Link to a closeup picture of the plant.", +"type": "string" +}, +"season": { +"description": "Textual list of explanations of seasons where the pollen is active. Example: \"Late winter, spring\".", +"type": "string" +}, +"specialColors": { +"description": "Textual description of the plants' colors of leaves, bark, flowers or seeds that helps identify the plant.", +"type": "string" +}, +"specialShapes": { +"description": "Textual description of the plants' shapes of leaves, bark, flowers or seeds that helps identify the plant.", +"type": "string" +}, +"type": { +"description": "The plant's pollen type. For example: \"GRASS\". A list of all available codes could be found here.", +"enum": [ +"POLLEN_TYPE_UNSPECIFIED", +"GRASS", +"TREE", +"WEED" +], +"enumDescriptions": [ +"Unspecified plant type.", +"Grass pollen type.", +"Tree pollen type.", +"Weed pollen type." +], +"type": "string" +} +}, +"type": "object" +}, +"PlantInfo": { +"description": "This object contains the daily information on specific plant.", +"id": "PlantInfo", +"properties": { +"code": { +"description": "The plant code name. For example: \"COTTONWOOD\". A list of all available codes could be found here.", +"enum": [ +"PLANT_UNSPECIFIED", +"ALDER", +"ASH", +"BIRCH", +"COTTONWOOD", +"ELM", +"MAPLE", +"OLIVE", +"JUNIPER", +"OAK", +"PINE", +"CYPRESS_PINE", +"HAZEL", +"GRAMINALES", +"RAGWEED", +"MUGWORT", +"JAPANESE_CEDAR", +"JAPANESE_CYPRESS" +], +"enumDescriptions": [ +"Unspecified plant code.", +"Alder is classified as a tree pollen type.", +"Ash is classified as a tree pollen type.", +"Birch is classified as a tree pollen type.", +"Cottonwood is classified as a tree pollen type.", +"Elm is classified as a tree pollen type.", +"Maple is classified as a tree pollen type.", +"Olive is classified as a tree pollen type.", +"Juniper is classified as a tree pollen type.", +"Oak is classified as a tree pollen type.", +"Pine is classified as a tree pollen type.", +"Cypress pine is classified as a tree pollen type.", +"Hazel is classified as a tree pollen type.", +"Graminales is classified as a grass pollen type.", +"Ragweed is classified as a weed pollen type.", +"Mugwort is classified as a weed pollen type.", +"Japanese cedar is classified as a tree pollen type.", +"Japanese cypress is classified as a tree pollen type." +], +"type": "string" +}, +"displayName": { +"description": "A human readable representation of the plant name. Example: \u201cCottonwood\".", +"type": "string" +}, +"inSeason": { +"description": "Indication of either the plant is in season or not.", +"type": "boolean" +}, +"indexInfo": { +"$ref": "IndexInfo", +"description": "This object contains data representing specific pollen index value, category and description." +}, +"plantDescription": { +"$ref": "PlantDescription", +"description": "Contains general information about plants, including details on their seasonality, special shapes and colors, information about allergic cross-reactions, and plant photos." +} +}, +"type": "object" +}, +"PollenTypeInfo": { +"description": "This object contains the pollen type index and health recommendation information on specific pollen type.", +"id": "PollenTypeInfo", +"properties": { +"code": { +"description": "The pollen type's code name. For example: \"GRASS\"", +"enum": [ +"POLLEN_TYPE_UNSPECIFIED", +"GRASS", +"TREE", +"WEED" +], +"enumDescriptions": [ +"Unspecified plant type.", +"Grass pollen type.", +"Tree pollen type.", +"Weed pollen type." +], +"type": "string" +}, +"displayName": { +"description": "A human readable representation of the pollen type name. Example: \"Grass\"", +"type": "string" +}, +"healthRecommendations": { +"description": "Textual list of explanations, related to health insights based on the current pollen levels.", +"items": { +"type": "string" +}, +"type": "array" +}, +"inSeason": { +"description": "Indication whether the plant is in season or not.", +"type": "boolean" +}, +"indexInfo": { +"$ref": "IndexInfo", +"description": "Contains the Universal Pollen Index (UPI) data for the pollen type." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Pollen API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/redis.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/redis.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e9b8d8e14bdeef34f4e3d1103761bf3a7788ea6f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/redis.v1.json @@ -0,0 +1,4668 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://redis.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Redis", +"description": "Creates and manages Redis instances on the Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/memorystore/docs/redis/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "redis:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://redis.mtls.googleapis.com/", +"name": "redis", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "redis.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "redis.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backupCollections": { +"methods": { +"get": { +"description": "Get a backup collection.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backupCollection resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BackupCollection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all backup collections owned by a consumer project in either the specified location (region) or all locations. If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupCollections", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The `next_page_token` value returned from a previous [ListBackupCollections] request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the backupCollection location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupCollections", +"response": { +"$ref": "ListBackupCollectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"delete": { +"description": "Deletes a specific backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.backupCollections.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backup resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports a specific backup to a customer target Cloud Storage URI.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups/{backupsId}:export", +"httpMethod": "POST", +"id": "redis.projects.locations.backupCollections.backups.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backup resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportBackupRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backup resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all backups owned by a backup collection.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The `next_page_token` value returned from a previous [ListBackupCollections] request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the backupCollection using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"clusters": { +"methods": { +"backup": { +"description": "Backup Redis Cluster. If this is the first time a backup is being created, a backup collection will be created at the backend, and this backup belongs to this collection. Both collection and backup will have a resource name. Backup will be executed for each shard. A replica (primary if nonHA) will be selected to perform the execution. Backup call will be rejected if there is an ongoing backup or update operation. Be aware that during preview, if the cluster's internal software version is too old, critical update will be performed before actual backup. Once the internal software version is updated to the minimum version required by the backup feature, subsequent backups will not require critical update. After preview, there will be no critical update needed for backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:backup", +"httpMethod": "POST", +"id": "redis.projects.locations.clusters.backup", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:backup", +"request": { +"$ref": "BackupClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a Redis cluster based on the specified properties. The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis cluster will be fully functional. The completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "POST", +"id": "redis.projects.locations.clusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. The logical name of the Redis cluster in the customer project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the customer project / location", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/clusters", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a specific Redis cluster. Cluster stops serving and data is deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.clusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific Redis cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "GET", +"id": "redis.projects.locations.clusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getCertificateAuthority": { +"description": "Gets the details of certificate authority information for Redis cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/certificateAuthority", +"httpMethod": "GET", +"id": "redis.projects.locations.clusters.getCertificateAuthority", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster certificate authority resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}/certificateAuthority` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/certificateAuthority$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "CertificateAuthority" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Redis clusters owned by a project in either the specified location (region) or all locations. The location should have the following format: * `projects/{project_id}/locations/{location_id}` If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "GET", +"id": "redis.projects.locations.clusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous ListClusters request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the metadata and configuration of a specific Redis cluster. Completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "PATCH", +"id": "redis.projects.locations.clusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Cluster: * `size_gb` * `replica_count`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rescheduleClusterMaintenance": { +"description": "Reschedules upcoming maintenance event.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:rescheduleClusterMaintenance", +"httpMethod": "POST", +"id": "redis.projects.locations.clusters.rescheduleClusterMaintenance", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis Cluster instance resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:rescheduleClusterMaintenance", +"request": { +"$ref": "RescheduleClusterMaintenanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"instances": { +"methods": { +"create": { +"description": "Creates a Redis instance based on the specified tier and memory size. By default, the instance is accessible from the project's [default network](https://cloud.google.com/vpc/docs/vpc). The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis instance will be fully functional. Completed longrunning.Operation will contain the new instance object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The logical name of the Redis instance in the customer project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-40 characters. * Must end with a number or a letter. * Must be unique within the customer project / location", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a specific Redis instance. Instance stops serving and data is deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Export Redis instance data into a Redis RDB format file in Cloud Storage. Redis will continue serving during this operation. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:export", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"failover": { +"description": "Initiates a failover of the primary node to current replica node for a specific STANDARD tier Cloud Memorystore for Redis instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:failover", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.failover", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:failover", +"request": { +"$ref": "FailoverInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific Redis instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "redis.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getAuthString": { +"description": "Gets the AUTH string for a Redis instance. If AUTH is not enabled for the instance the response will be empty. This information is not included in the details returned to GetInstance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/authString", +"httpMethod": "GET", +"id": "redis.projects.locations.instances.getAuthString", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/authString", +"response": { +"$ref": "InstanceAuthString" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Import a Redis RDB snapshot file from Cloud Storage into a Redis instance. Redis may stop serving during this operation. Instance state will be IMPORTING for entire operation. When complete, the instance will contain only data from the imported file. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:import", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.import", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:import", +"request": { +"$ref": "ImportInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Redis instances owned by a project in either the specified location (region) or all locations. The location should have the following format: * `projects/{project_id}/locations/{location_id}` If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "redis.projects.locations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous ListInstances request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the metadata and configuration of a specific Redis instance. Completed longrunning.Operation will contain the new instance object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "redis.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Redis instances are managed and addressed at regional level so location_id here refers to a GCP region; however, users may choose which specific zone (or collection of zones for cross-zone instances) an instance should be provisioned in. Refer to location_id and alternative_location_id fields for more details.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Instance: * `displayName` * `labels` * `memorySizeGb` * `redisConfig` * `replica_count`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rescheduleMaintenance": { +"description": "Reschedule maintenance for a given instance in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rescheduleMaintenance", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.rescheduleMaintenance", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:rescheduleMaintenance", +"request": { +"$ref": "RescheduleMaintenanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrades Redis instance to the newer Redis version specified in the request.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:upgrade", +"request": { +"$ref": "UpgradeInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "redis.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "redis.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "redis.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250104", +"rootUrl": "https://redis.googleapis.com/", +"schemas": { +"AOFConfig": { +"description": "Configuration of the AOF based persistence.", +"id": "AOFConfig", +"properties": { +"appendFsync": { +"description": "Optional. fsync configuration.", +"enum": [ +"APPEND_FSYNC_UNSPECIFIED", +"NO", +"EVERYSEC", +"ALWAYS" +], +"enumDescriptions": [ +"Not set. Default: EVERYSEC", +"Never fsync. Normally Linux will flush data every 30 seconds with this configuration, but it's up to the kernel's exact tuning.", +"fsync every second. Fast enough, and you may lose 1 second of data if there is a disaster", +"fsync every time new write commands are appended to the AOF. It has the best data loss protection at the cost of performance" +], +"type": "string" +} +}, +"type": "object" +}, +"AutomatedBackupConfig": { +"description": "The automated backup config for a cluster.", +"id": "AutomatedBackupConfig", +"properties": { +"automatedBackupMode": { +"description": "Optional. The automated backup mode. If the mode is disabled, the other fields will be ignored.", +"enum": [ +"AUTOMATED_BACKUP_MODE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"Default value. Automated backup config is not specified.", +"Automated backup config disabled.", +"Automated backup config enabled." +], +"type": "string" +}, +"fixedFrequencySchedule": { +"$ref": "FixedFrequencySchedule", +"description": "Optional. Trigger automated backups at a fixed frequency." +}, +"retention": { +"description": "Optional. How long to keep automated backups before the backups are deleted. The value should be between 1 day and 365 days. If not specified, the default value is 35 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"AvailabilityConfiguration": { +"description": "Configuration for availability of database instance", +"id": "AvailabilityConfiguration", +"properties": { +"automaticFailoverRoutingConfigured": { +"description": "Checks for existence of (multi-cluster) routing configuration that allows automatic failover to a different zone/region in case of an outage. Applicable to Bigtable resources.", +"type": "boolean" +}, +"availabilityType": { +"description": "Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", +"enum": [ +"AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL", +"MULTI_REGIONAL", +"AVAILABILITY_TYPE_OTHER" +], +"enumDescriptions": [ +"", +"Zonal available instance.", +"Regional available instance.", +"Multi regional instance", +"For rest of the other category" +], +"type": "string" +}, +"crossRegionReplicaConfigured": { +"description": "Checks for resources that are configured to have redundancy, and ongoing replication across regions", +"type": "boolean" +}, +"externalReplicaConfigured": { +"type": "boolean" +}, +"promotableReplicaConfigured": { +"type": "boolean" +} +}, +"type": "object" +}, +"Backup": { +"description": "Backup of a cluster.", +"id": "Backup", +"properties": { +"backupFiles": { +"description": "Output only. List of backup files of the backup.", +"items": { +"$ref": "BackupFile" +}, +"readOnly": true, +"type": "array" +}, +"backupType": { +"description": "Output only. Type of the backup.", +"enum": [ +"BACKUP_TYPE_UNSPECIFIED", +"ON_DEMAND", +"AUTOMATED" +], +"enumDescriptions": [ +"The default value, not set.", +"On-demand backup.", +"Automated backup." +], +"readOnly": true, +"type": "string" +}, +"cluster": { +"description": "Output only. Cluster resource path of this backup.", +"readOnly": true, +"type": "string" +}, +"clusterUid": { +"description": "Output only. Cluster uid of this backup.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the backup was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. Encryption information of the backup.", +"readOnly": true +}, +"engineVersion": { +"description": "Output only. redis-7.2, valkey-7.5", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time when the backup will expire.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Full resource path of the backup. the last part of the name is the backup id with the following format: [YYYYMMDDHHMMSS]_[Shorted Cluster UID] OR customer specified while backup cluster. Example: 20240515123000_1234", +"type": "string" +}, +"nodeType": { +"description": "Output only. Node type of the cluster.", +"enum": [ +"NODE_TYPE_UNSPECIFIED", +"REDIS_SHARED_CORE_NANO", +"REDIS_HIGHMEM_MEDIUM", +"REDIS_HIGHMEM_XLARGE", +"REDIS_STANDARD_SMALL" +], +"enumDescriptions": [ +"Node type unspecified", +"Redis shared core nano node_type.", +"Redis highmem medium node_type.", +"Redis highmem xlarge node_type.", +"Redis standard small node_type." +], +"readOnly": true, +"type": "string" +}, +"replicaCount": { +"description": "Output only. Number of replicas for the cluster.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"shardCount": { +"description": "Output only. Number of shards for the cluster.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"state": { +"description": "Output only. State of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"SUSPENDED" +], +"enumDescriptions": [ +"The default value, not set.", +"The backup is being created.", +"The backup is active to be used.", +"The backup is being deleted.", +"The backup is currently suspended due to reasons like project deletion, billing account closure, etc." +], +"readOnly": true, +"type": "string" +}, +"totalSizeBytes": { +"description": "Output only. Total size of the backup in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System assigned unique identifier of the backup.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupClusterRequest": { +"description": "Request for [BackupCluster].", +"id": "BackupClusterRequest", +"properties": { +"backupId": { +"description": "Optional. The id of the backup to be created. If not specified, the default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used.", +"type": "string" +}, +"ttl": { +"description": "Optional. TTL for the backup to expire. Value range is 1 day to 100 years. If not specified, the default value is 100 years.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"BackupCollection": { +"description": "BackupCollection of a cluster.", +"id": "BackupCollection", +"properties": { +"cluster": { +"description": "Output only. The full resource path of the cluster the backup collection belongs to. Example: projects/{project}/locations/{location}/clusters/{cluster}", +"readOnly": true, +"type": "string" +}, +"clusterUid": { +"description": "Output only. The cluster uid of the backup collection.", +"readOnly": true, +"type": "string" +}, +"kmsKey": { +"description": "Output only. The KMS key used to encrypt the backups under this backup collection.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Full resource path of the backup collection.", +"type": "string" +}, +"uid": { +"description": "Output only. System assigned unique identifier of the backup collection.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupConfiguration": { +"description": "Configuration for automatic backups", +"id": "BackupConfiguration", +"properties": { +"automatedBackupEnabled": { +"description": "Whether customer visible automated backups are enabled on the instance.", +"type": "boolean" +}, +"backupRetentionSettings": { +"$ref": "RetentionSettings", +"description": "Backup retention settings." +}, +"pointInTimeRecoveryEnabled": { +"description": "Whether point-in-time recovery is enabled. This is optional field, if the database service does not have this feature or metadata is not available in control plane, this can be omitted.", +"type": "boolean" +} +}, +"type": "object" +}, +"BackupFile": { +"description": "Backup is consisted of multiple backup files.", +"id": "BackupFile", +"properties": { +"createTime": { +"description": "Output only. The time when the backup file was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"fileName": { +"description": "Output only. e.g: .rdb", +"readOnly": true, +"type": "string" +}, +"sizeBytes": { +"description": "Output only. Size of the backup file in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupRun": { +"description": "A backup run.", +"id": "BackupRun", +"properties": { +"endTime": { +"description": "The time the backup operation completed. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"error": { +"$ref": "OperationError", +"description": "Information about why the backup operation failed. This is only present if the run has the FAILED status. OPTIONAL" +}, +"startTime": { +"description": "The time the backup operation started. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"status": { +"description": "The status of this run. REQUIRED", +"enum": [ +"STATUS_UNSPECIFIED", +"SUCCESSFUL", +"FAILED" +], +"enumDescriptions": [ +"", +"The backup was successful.", +"The backup was unsuccessful." +], +"type": "string" +} +}, +"type": "object" +}, +"CertChain": { +"id": "CertChain", +"properties": { +"certificates": { +"description": "The certificates that form the CA chain, from leaf to root order.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CertificateAuthority": { +"description": "Redis cluster certificate authority", +"id": "CertificateAuthority", +"properties": { +"managedServerCa": { +"$ref": "ManagedCertificateAuthority" +}, +"name": { +"description": "Identifier. Unique name of the resource in this scope including project, location and cluster using the form: `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority`", +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "A cluster instance.", +"id": "Cluster", +"properties": { +"authorizationMode": { +"description": "Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.", +"enum": [ +"AUTH_MODE_UNSPECIFIED", +"AUTH_MODE_IAM_AUTH", +"AUTH_MODE_DISABLED" +], +"enumDescriptions": [ +"Not set.", +"IAM basic authorization mode", +"Authorization disabled mode" +], +"type": "string" +}, +"automatedBackupConfig": { +"$ref": "AutomatedBackupConfig", +"description": "Optional. The automated backup config for the cluster." +}, +"backupCollection": { +"description": "Optional. Output only. The backup collection full resource name. Example: projects/{project}/locations/{location}/backupCollections/{collection}", +"readOnly": true, +"type": "string" +}, +"clusterEndpoints": { +"description": "Optional. A list of cluster enpoints.", +"items": { +"$ref": "ClusterEndpoint" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The timestamp associated with the cluster creation request.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"crossClusterReplicationConfig": { +"$ref": "CrossClusterReplicationConfig", +"description": "Optional. Cross cluster replication config." +}, +"deletionProtectionEnabled": { +"description": "Optional. The delete operation will fail when the value is set to true.", +"type": "boolean" +}, +"discoveryEndpoints": { +"description": "Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.", +"items": { +"$ref": "DiscoveryEndpoint" +}, +"readOnly": true, +"type": "array" +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. Encryption information of the data at rest of the cluster.", +"readOnly": true +}, +"gcsSource": { +"$ref": "GcsBackupSource", +"description": "Optional. Backups stored in Cloud Storage buckets. The Cloud Storage buckets need to be the same region as the clusters. Read permission is required to import from the provided Cloud Storage objects." +}, +"kmsKey": { +"description": "Optional. The KMS key used to encrypt the at-rest data of the cluster.", +"type": "string" +}, +"maintenancePolicy": { +"$ref": "ClusterMaintenancePolicy", +"description": "Optional. ClusterMaintenancePolicy determines when to allow or deny updates." +}, +"maintenanceSchedule": { +"$ref": "ClusterMaintenanceSchedule", +"description": "Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.", +"readOnly": true +}, +"managedBackupSource": { +"$ref": "ManagedBackupSource", +"description": "Optional. Backups generated and managed by memorystore service." +}, +"name": { +"description": "Required. Identifier. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", +"type": "string" +}, +"nodeType": { +"description": "Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.", +"enum": [ +"NODE_TYPE_UNSPECIFIED", +"REDIS_SHARED_CORE_NANO", +"REDIS_HIGHMEM_MEDIUM", +"REDIS_HIGHMEM_XLARGE", +"REDIS_STANDARD_SMALL" +], +"enumDescriptions": [ +"Node type unspecified", +"Redis shared core nano node_type.", +"Redis highmem medium node_type.", +"Redis highmem xlarge node_type.", +"Redis standard small node_type." +], +"type": "string" +}, +"persistenceConfig": { +"$ref": "ClusterPersistenceConfig", +"description": "Optional. Persistence config (RDB, AOF) for the cluster." +}, +"preciseSizeGb": { +"description": "Output only. Precise value of redis memory size in GB for the entire cluster.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"pscConfigs": { +"description": "Optional. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through Private Service Connect Automation. Currently, only one PscConfig is supported.", +"items": { +"$ref": "PscConfig" +}, +"type": "array" +}, +"pscConnections": { +"description": "Output only. The list of PSC connections that are auto-created through service connectivity automation.", +"items": { +"$ref": "PscConnection" +}, +"readOnly": true, +"type": "array" +}, +"pscServiceAttachments": { +"description": "Output only. Service attachment details to configure Psc connections", +"items": { +"$ref": "PscServiceAttachment" +}, +"readOnly": true, +"type": "array" +}, +"redisConfigs": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Key/Value pairs of customer overrides for mutable Redis Configs", +"type": "object" +}, +"replicaCount": { +"description": "Optional. The number of replica nodes per shard.", +"format": "int32", +"type": "integer" +}, +"shardCount": { +"description": "Optional. Number of shards for the Redis cluster.", +"format": "int32", +"type": "integer" +}, +"sizeGb": { +"description": "Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"state": { +"description": "Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"UPDATING", +"DELETING" +], +"enumDescriptions": [ +"Not set.", +"Redis cluster is being created.", +"Redis cluster has been created and is fully usable.", +"Redis cluster configuration is being updated.", +"Redis cluster is being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateInfo": { +"$ref": "StateInfo", +"description": "Output only. Additional information about the current state of the cluster.", +"readOnly": true +}, +"transitEncryptionMode": { +"description": "Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.", +"enum": [ +"TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", +"TRANSIT_ENCRYPTION_MODE_DISABLED", +"TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION" +], +"enumDescriptions": [ +"In-transit encryption not set.", +"In-transit encryption disabled.", +"Use server managed encryption for in-transit encryption." +], +"type": "string" +}, +"uid": { +"description": "Output only. System assigned, unique identifier for the cluster.", +"readOnly": true, +"type": "string" +}, +"zoneDistributionConfig": { +"$ref": "ZoneDistributionConfig", +"description": "Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region." +} +}, +"type": "object" +}, +"ClusterEndpoint": { +"description": "ClusterEndpoint consists of PSC connections that are created as a group in each VPC network for accessing the cluster. In each group, there shall be one connection for each service attachment in the cluster.", +"id": "ClusterEndpoint", +"properties": { +"connections": { +"description": "A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster.", +"items": { +"$ref": "ConnectionDetail" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterMaintenancePolicy": { +"description": "Maintenance policy per cluster.", +"id": "ClusterMaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyMaintenanceWindow": { +"description": "Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_window is expected to be one.", +"items": { +"$ref": "ClusterWeeklyMaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterMaintenanceSchedule": { +"description": "Upcoming maitenance schedule.", +"id": "ClusterMaintenanceSchedule", +"properties": { +"endTime": { +"description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClusterPersistenceConfig": { +"description": "Configuration of the persistence functionality.", +"id": "ClusterPersistenceConfig", +"properties": { +"aofConfig": { +"$ref": "AOFConfig", +"description": "Optional. AOF configuration. This field will be ignored if mode is not AOF." +}, +"mode": { +"description": "Optional. The mode of persistence.", +"enum": [ +"PERSISTENCE_MODE_UNSPECIFIED", +"DISABLED", +"RDB", +"AOF" +], +"enumDescriptions": [ +"Not set.", +"Persistence is disabled, and any snapshot data is deleted.", +"RDB based persistence is enabled.", +"AOF based persistence is enabled." +], +"type": "string" +}, +"rdbConfig": { +"$ref": "RDBConfig", +"description": "Optional. RDB configuration. This field will be ignored if mode is not RDB." +} +}, +"type": "object" +}, +"ClusterWeeklyMaintenanceWindow": { +"description": "Time window specified for weekly operations.", +"id": "ClusterWeeklyMaintenanceWindow", +"properties": { +"day": { +"description": "Allows to define schedule that runs specified day of the week.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Start time of the window in UTC." +} +}, +"type": "object" +}, +"Compliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "Compliance", +"properties": { +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"ConnectionDetail": { +"description": "Detailed information of each PSC connection.", +"id": "ConnectionDetail", +"properties": { +"pscAutoConnection": { +"$ref": "PscAutoConnection", +"description": "Detailed information of a PSC connection that is created through service connectivity automation." +}, +"pscConnection": { +"$ref": "PscConnection", +"description": "Detailed information of a PSC connection that is created by the customer who owns the cluster." +} +}, +"type": "object" +}, +"CrossClusterReplicationConfig": { +"description": "Cross cluster replication config.", +"id": "CrossClusterReplicationConfig", +"properties": { +"clusterRole": { +"description": "The role of the cluster in cross cluster replication.", +"enum": [ +"CLUSTER_ROLE_UNSPECIFIED", +"NONE", +"PRIMARY", +"SECONDARY" +], +"enumDescriptions": [ +"Cluster role is not set. The behavior is equivalent to NONE.", +"This cluster does not participate in cross cluster replication. It is an independent cluster and does not replicate to or from any other clusters.", +"A cluster that allows both reads and writes. Any data written to this cluster is also replicated to the attached secondary clusters.", +"A cluster that allows only reads and replicates data from a primary cluster." +], +"type": "string" +}, +"membership": { +"$ref": "Membership", +"description": "Output only. An output only view of all the member clusters participating in the cross cluster replication. This view will be provided by every member cluster irrespective of its cluster role(primary or secondary). A primary cluster can provide information about all the secondary clusters replicating from it. However, a secondary cluster only knows about the primary cluster from which it is replicating. However, for scenarios, where the primary cluster is unavailable(e.g. regional outage), a GetCluster request can be sent to any other member cluster and this field will list all the member clusters participating in cross cluster replication.", +"readOnly": true +}, +"primaryCluster": { +"$ref": "RemoteCluster", +"description": "Details of the primary cluster that is used as the replication source for this secondary cluster. This field is only set for a secondary cluster." +}, +"secondaryClusters": { +"description": "List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster.", +"items": { +"$ref": "RemoteCluster" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last time cross cluster replication config was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomMetadataData": { +"description": "Any custom metadata associated with the resource. e.g. A spanner instance can have multiple databases with its own unique metadata. Information for these individual databases can be captured in custom metadata data", +"id": "CustomMetadataData", +"properties": { +"internalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration.", +"items": { +"$ref": "InternalResourceMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatabaseResourceFeed": { +"description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", +"id": "DatabaseResourceFeed", +"properties": { +"feedTimestamp": { +"description": "Required. Timestamp when feed is generated.", +"format": "google-datetime", +"type": "string" +}, +"feedType": { +"description": "Required. Type feed to be ingested into condor", +"enum": [ +"FEEDTYPE_UNSPECIFIED", +"RESOURCE_METADATA", +"OBSERVABILITY_DATA", +"SECURITY_FINDING_DATA", +"RECOMMENDATION_SIGNAL_DATA" +], +"enumDescriptions": [ +"", +"Database resource metadata feed from control plane", +"Database resource monitoring data", +"Database resource security health signal data", +"Database resource recommendation signal data" +], +"type": "string" +}, +"observabilityMetricData": { +"$ref": "ObservabilityMetricData" +}, +"recommendationSignalData": { +"$ref": "DatabaseResourceRecommendationSignalData" +}, +"resourceHealthSignalData": { +"$ref": "DatabaseResourceHealthSignalData" +}, +"resourceId": { +"$ref": "DatabaseResourceId", +"deprecated": true, +"description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." +}, +"resourceMetadata": { +"$ref": "DatabaseResourceMetadata" +} +}, +"type": "object" +}, +"DatabaseResourceHealthSignalData": { +"description": "Common model for database resource health signal data.", +"id": "DatabaseResourceHealthSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Any other additional metadata", +"type": "object" +}, +"compliance": { +"description": "Industry standards associated with this signal; if this signal is an issue, that could be a violation of the associated industry standard(s). For example, AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database resource does not have automated backup enable, it will violate these following industry standards.", +"items": { +"$ref": "Compliance" +}, +"type": "array" +}, +"description": { +"description": "Description associated with signal", +"type": "string" +}, +"eventTime": { +"description": "Required. The last time at which the event described by this signal took place", +"format": "google-datetime", +"type": "string" +}, +"externalUri": { +"description": "The external-uri of the signal, using which more information about this signal can be obtained. In GCP, this will take user to SCC page to get more details about signals.", +"type": "string" +}, +"name": { +"description": "Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE, SQL_LOG_ERROR_VERBOSITY etc.", +"type": "string" +}, +"provider": { +"description": "Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"resourceContainer": { +"description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalClass": { +"description": "Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.", +"enum": [ +"CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"ERROR" +], +"enumDescriptions": [ +"Unspecified signal class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality." +], +"type": "string" +}, +"signalId": { +"description": "Required. Unique identifier for the signal. This is an unique id which would be mainatined by partner to identify a signal.", +"type": "string" +}, +"signalSeverity": { +"description": "The severity of the signal, such as if it's a HIGH or LOW severity.", +"enum": [ +"SIGNAL_SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"A critical vulnerability is easily discoverable by an external actor, exploitable.", +"A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities.", +"A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually gain access and the ability to execute arbitrary code or exfiltrate data.", +"A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment." +], +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `LOGGING_MOST_ERRORS`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +}, +"state": { +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"RESOLVED", +"MUTED" +], +"enumDescriptions": [ +"Unspecified state.", +"The signal requires attention and has not been addressed yet.", +"The signal has been fixed, triaged as a non-issue or otherwise addressed and is no longer active.", +"The signal has been muted." +], +"type": "string" +} +}, +"type": "object" +}, +"DatabaseResourceId": { +"description": "DatabaseResourceId will serve as primary key for any resource ingestion event.", +"id": "DatabaseResourceId", +"properties": { +"provider": { +"description": "Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"providerDescription": { +"description": "Optional. Needs to be used only when the provider is PROVIDER_OTHER.", +"type": "string" +}, +"resourceType": { +"description": "Required. The type of resource this ID is identifying. Ex redis.googleapis.com/Instance, redis.googleapis.com/Cluster, alloydb.googleapis.com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance, spanner.googleapis.com/Database, firestore.googleapis.com/Database, sqladmin.googleapis.com/Instance, bigtableadmin.googleapis.com/Cluster, bigtableadmin.googleapis.com/Instance REQUIRED Please refer go/condor-common-datamodel", +"type": "string" +}, +"uniqueId": { +"description": "Required. A service-local token that distinguishes this resource from other resources within the same service.", +"type": "string" +} +}, +"type": "object" +}, +"DatabaseResourceMetadata": { +"description": "Common model for database resource instance metadata. Next ID: 23", +"id": "DatabaseResourceMetadata", +"properties": { +"availabilityConfiguration": { +"$ref": "AvailabilityConfiguration", +"description": "Availability configuration for this instance" +}, +"backupConfiguration": { +"$ref": "BackupConfiguration", +"description": "Backup configuration for this instance" +}, +"backupRun": { +"$ref": "BackupRun", +"description": "Latest backup run information for this instance" +}, +"creationTime": { +"description": "The creation time of the resource, i.e. the time when resource is created and recorded in partner service.", +"format": "google-datetime", +"type": "string" +}, +"currentState": { +"description": "Current state of the instance.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"customMetadata": { +"$ref": "CustomMetadataData", +"description": "Any custom metadata associated with the resource" +}, +"edition": { +"description": "Optional. Edition represents whether the instance is ENTERPRISE or ENTERPRISE_PLUS. This information is core to Cloud SQL only and is used to identify the edition of the instance.", +"enum": [ +"EDITION_UNSPECIFIED", +"EDITION_ENTERPRISE", +"EDITION_ENTERPRISE_PLUS" +], +"enumDescriptions": [ +"Default, to make it consistent with instance edition enum.", +"Represents the enterprise edition.", +"Represents the enterprise plus edition." +], +"type": "string" +}, +"entitlements": { +"description": "Entitlements associated with the resource", +"items": { +"$ref": "Entitlement" +}, +"type": "array" +}, +"expectedState": { +"description": "The state that the instance is expected to be in. For example, an instance state can transition to UNHEALTHY due to wrong patch update, while the expected state will remain at the HEALTHY.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"id": { +"$ref": "DatabaseResourceId", +"description": "Required. Unique identifier for a Database resource" +}, +"instanceType": { +"description": "The type of the instance. Specified at creation time.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"SUB_RESOURCE_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY", +"READ_REPLICA", +"OTHER", +"SUB_RESOURCE_TYPE_PRIMARY", +"SUB_RESOURCE_TYPE_SECONDARY", +"SUB_RESOURCE_TYPE_READ_REPLICA", +"SUB_RESOURCE_TYPE_OTHER" +], +"enumDeprecated": [ +true, +false, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories." +], +"type": "string" +}, +"location": { +"description": "The resource location. REQUIRED", +"type": "string" +}, +"machineConfiguration": { +"$ref": "MachineConfiguration", +"description": "Machine configuration for this resource." +}, +"primaryResourceId": { +"$ref": "DatabaseResourceId", +"description": "Identifier for this resource's immediate parent/primary resource if the current resource is a replica or derived form of another Database resource. Else it would be NULL. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional." +}, +"primaryResourceLocation": { +"description": "Primary resource location. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional.", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The product this resource represents." +}, +"resourceContainer": { +"description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Different from DatabaseResourceId.unique_id, a resource name can be reused over time. That is, after a resource named \"ABC\" is deleted, the name \"ABC\" can be used to to create a new resource within the same source. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"tagsSet": { +"$ref": "Tags", +"description": "Optional. Tags associated with this resources." +}, +"updationTime": { +"description": "The time at which the resource was updated and recorded at partner service.", +"format": "google-datetime", +"type": "string" +}, +"userLabelSet": { +"$ref": "UserLabels", +"description": "User-provided labels associated with the resource" +} +}, +"type": "object" +}, +"DatabaseResourceRecommendationSignalData": { +"description": "Common model for database resource recommendation signal data.", +"id": "DatabaseResourceRecommendationSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Any other additional metadata specific to recommendation", +"type": "object" +}, +"lastRefreshTime": { +"description": "Required. last time recommendationw as refreshed", +"format": "google-datetime", +"type": "string" +}, +"recommendationState": { +"description": "Required. Recommendation state", +"enum": [ +"UNSPECIFIED", +"ACTIVE", +"CLAIMED", +"SUCCEEDED", +"FAILED", +"DISMISSED" +], +"enumDescriptions": [ +"", +"Recommendation is active and can be applied. ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in claimed state. Recommendations content is immutable and cannot be updated by Google. CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in succeeded state. Recommendations content is immutable and cannot be updated by Google. SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in failed state. Recommendations content is immutable and cannot be updated by Google. FAILED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in dismissed state. Recommendation content can be updated by Google. DISMISSED recommendations can be marked as ACTIVE." +], +"type": "string" +}, +"recommender": { +"description": "Required. Name of recommendation. Examples: organizations/1234/locations/us-central1/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/9876", +"type": "string" +}, +"recommenderId": { +"description": "Required. ID of recommender. Examples: \"google.cloudsql.instance.PerformanceRecommender\"", +"type": "string" +}, +"recommenderSubtype": { +"description": "Required. Contains an identifier for a subtype of recommendations produced for the same recommender. Subtype is a function of content and impact, meaning a new subtype might be added when significant changes to `content` or `primary_impact.category` are introduced. See the Recommenders section to see a list of subtypes for a given Recommender. Examples: For recommender = \"google.cloudsql.instance.PerformanceRecommender\", recommender_subtype can be \"MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE\"/\"POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE\"", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `SIGNAL_TYPE_IDLE`, `SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +} +}, +"type": "object" +}, +"DiscoveryEndpoint": { +"description": "Endpoints on each network, for Redis clients to connect to the cluster.", +"id": "DiscoveryEndpoint", +"properties": { +"address": { +"description": "Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.", +"readOnly": true, +"type": "string" +}, +"port": { +"description": "Output only. The port number of the exposed Redis endpoint.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"pscConfig": { +"$ref": "PscConfig", +"description": "Output only. Customer configuration for where the endpoint is created and accessed from.", +"readOnly": true +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionInfo": { +"description": "EncryptionInfo describes the encryption information of a cluster or a backup.", +"id": "EncryptionInfo", +"properties": { +"encryptionType": { +"description": "Output only. Type of encryption.", +"enum": [ +"TYPE_UNSPECIFIED", +"GOOGLE_DEFAULT_ENCRYPTION", +"CUSTOMER_MANAGED_ENCRYPTION" +], +"enumDescriptions": [ +"Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.", +"The data is encrypted at rest with a key that is fully managed by Google. No key version will be populated. This is the default state.", +"The data is encrypted at rest with a key that is managed by the customer. KMS key versions will be populated." +], +"readOnly": true, +"type": "string" +}, +"kmsKeyPrimaryState": { +"description": "Output only. The state of the primary version of the KMS key perceived by the system. This field is not populated in backups.", +"enum": [ +"KMS_KEY_STATE_UNSPECIFIED", +"ENABLED", +"PERMISSION_DENIED", +"DISABLED", +"DESTROYED", +"DESTROY_SCHEDULED", +"EKM_KEY_UNREACHABLE_DETECTED", +"BILLING_DISABLED", +"UNKNOWN_FAILURE" +], +"enumDescriptions": [ +"The default value. This value is unused.", +"The KMS key is enabled and correctly configured.", +"Permission denied on the KMS key.", +"The KMS key is disabled.", +"The KMS key is destroyed.", +"The KMS key is scheduled to be destroyed.", +"The EKM key is unreachable.", +"Billing is disabled for the project.", +"All other unknown failures." +], +"readOnly": true, +"type": "string" +}, +"kmsKeyVersions": { +"description": "Output only. KMS key versions that are being used to protect the data at-rest.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"lastUpdateTime": { +"description": "Output only. The most recent time when the encryption info was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Entitlement": { +"description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", +"id": "Entitlement", +"properties": { +"entitlementState": { +"description": "The current state of user's accessibility to a feature/benefit.", +"enum": [ +"ENTITLEMENT_STATE_UNSPECIFIED", +"ENTITLED", +"REVOKED" +], +"enumDescriptions": [ +"", +"User is entitled to a feature/benefit, but whether it has been successfully provisioned is decided by provisioning state.", +"User is entitled to a feature/benefit, but it was requested to be revoked. Whether the revoke has been successful is decided by provisioning state." +], +"type": "string" +}, +"type": { +"description": "An enum that represents the type of this entitlement.", +"enum": [ +"ENTITLEMENT_TYPE_UNSPECIFIED", +"GEMINI" +], +"enumDescriptions": [ +"", +"The root entitlement representing Gemini package ownership." +], +"type": "string" +} +}, +"type": "object" +}, +"ExportBackupRequest": { +"description": "Request for [ExportBackup].", +"id": "ExportBackupRequest", +"properties": { +"gcsBucket": { +"description": "Google Cloud Storage bucket, like \"my-bucket\".", +"type": "string" +} +}, +"type": "object" +}, +"ExportInstanceRequest": { +"description": "Request for Export.", +"id": "ExportInstanceRequest", +"properties": { +"outputConfig": { +"$ref": "OutputConfig", +"description": "Required. Specify data to be exported." +} +}, +"type": "object" +}, +"FailoverInstanceRequest": { +"description": "Request for Failover.", +"id": "FailoverInstanceRequest", +"properties": { +"dataProtectionMode": { +"description": "Optional. Available data protection modes that the user can choose. If it's unspecified, data protection mode will be LIMITED_DATA_LOSS by default.", +"enum": [ +"DATA_PROTECTION_MODE_UNSPECIFIED", +"LIMITED_DATA_LOSS", +"FORCE_DATA_LOSS" +], +"enumDescriptions": [ +"Defaults to LIMITED_DATA_LOSS if a data protection mode is not specified.", +"Instance failover will be protected with data loss control. More specifically, the failover will only be performed if the current replication offset diff between primary and replica is under a certain threshold.", +"Instance failover will be performed without data loss control." +], +"type": "string" +} +}, +"type": "object" +}, +"FixedFrequencySchedule": { +"description": "This schedule allows the backup to be triggered at a fixed frequency (currently only daily is supported).", +"id": "FixedFrequencySchedule", +"properties": { +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. The start time of every automated backup in UTC. It must be set to the start of an hour. This field is required." +} +}, +"type": "object" +}, +"GcsBackupSource": { +"description": "Backups stored in Cloud Storage buckets. The Cloud Storage buckets need to be the same region as the clusters.", +"id": "GcsBackupSource", +"properties": { +"uris": { +"description": "Optional. URIs of the GCS objects to import. Example: gs://bucket1/object1, gs://bucket2/folder2/object2", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "The Cloud Storage location for the output content", +"id": "GcsDestination", +"properties": { +"uri": { +"description": "Required. Data destination URI (e.g. 'gs://my_bucket/my_object'). Existing files will be overwritten.", +"type": "string" +} +}, +"type": "object" +}, +"GcsSource": { +"description": "The Cloud Storage location for the input content", +"id": "GcsSource", +"properties": { +"uri": { +"description": "Required. Source data URI. (e.g. 'gs://my_bucket/my_object').", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRedisV1LocationMetadata": { +"description": "This location metadata represents additional configuration options for a given location where a Redis instance may be created. All fields are output only. It is returned as content of the `google.cloud.location.Location.metadata` field.", +"id": "GoogleCloudRedisV1LocationMetadata", +"properties": { +"availableZones": { +"additionalProperties": { +"$ref": "GoogleCloudRedisV1ZoneMetadata" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by GCE. These keys can be specified in `location_id` or `alternative_location_id` fields when creating a Redis instance.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRedisV1OperationMetadata": { +"description": "Represents the v1 metadata of the long-running operation.", +"id": "GoogleCloudRedisV1OperationMetadata", +"properties": { +"apiVersion": { +"description": "API version.", +"type": "string" +}, +"cancelRequested": { +"description": "Specifies if cancellation was requested for the operation.", +"type": "boolean" +}, +"createTime": { +"description": "Creation timestamp.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "End timestamp.", +"format": "google-datetime", +"type": "string" +}, +"statusDetail": { +"description": "Operation status details.", +"type": "string" +}, +"target": { +"description": "Operation target.", +"type": "string" +}, +"verb": { +"description": "Operation verb.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRedisV1ZoneMetadata": { +"description": "Defines specific information for a particular zone. Currently empty and reserved for future use only.", +"id": "GoogleCloudRedisV1ZoneMetadata", +"properties": {}, +"type": "object" +}, +"ImportInstanceRequest": { +"description": "Request for Import.", +"id": "ImportInstanceRequest", +"properties": { +"inputConfig": { +"$ref": "InputConfig", +"description": "Required. Specify data to be imported." +} +}, +"type": "object" +}, +"InputConfig": { +"description": "The input content", +"id": "InputConfig", +"properties": { +"gcsSource": { +"$ref": "GcsSource", +"description": "Google Cloud Storage location where input content is located." +} +}, +"type": "object" +}, +"Instance": { +"description": "A Memorystore for Redis instance.", +"id": "Instance", +"properties": { +"alternativeLocationId": { +"description": "Optional. If specified, at least one node will be provisioned in this zone in addition to the zone specified in location_id. Only applicable to standard tier. If provided, it must be a different zone from the one provided in [location_id]. Additional nodes beyond the first 2 will be placed in zones selected by the service.", +"type": "string" +}, +"authEnabled": { +"description": "Optional. Indicates whether OSS Redis AUTH is enabled for the instance. If set to \"true\" AUTH is enabled on the instance. Default value is \"false\" meaning AUTH is disabled.", +"type": "boolean" +}, +"authorizedNetwork": { +"description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected. If left unspecified, the `default` network will be used.", +"type": "string" +}, +"availableMaintenanceVersions": { +"description": "Optional. The available maintenance versions that an instance could update to.", +"items": { +"type": "string" +}, +"type": "array" +}, +"connectMode": { +"description": "Optional. The network connect mode of the Redis instance. If not provided, the connect mode defaults to DIRECT_PEERING.", +"enum": [ +"CONNECT_MODE_UNSPECIFIED", +"DIRECT_PEERING", +"PRIVATE_SERVICE_ACCESS" +], +"enumDescriptions": [ +"Not set.", +"Connect via direct peering to the Memorystore for Redis hosted service.", +"Connect your Memorystore for Redis instance using Private Service Access. Private services access provides an IP address range for multiple Google Cloud services, including Memorystore." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"currentLocationId": { +"description": "Output only. The current zone where the Redis primary node is located. In basic tier, this will always be the same as [location_id]. In standard tier, this can be the zone of any node in the instance.", +"readOnly": true, +"type": "string" +}, +"customerManagedKey": { +"description": "Optional. The KMS key reference that the customer provides when trying to create the instance.", +"type": "string" +}, +"displayName": { +"description": "An arbitrary and optional user-provided name for the instance.", +"type": "string" +}, +"host": { +"description": "Output only. Hostname or IP address of the exposed Redis endpoint used by clients to connect to the service.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata", +"type": "object" +}, +"locationId": { +"description": "Optional. The zone where the instance will be provisioned. If not provided, the service will choose a zone from the specified region for the instance. For standard tier, additional nodes will be added across multiple zones for protection against zonal failures. If specified, at least one node will be provisioned in this zone.", +"type": "string" +}, +"maintenancePolicy": { +"$ref": "MaintenancePolicy", +"description": "Optional. The maintenance policy for the instance. If not provided, maintenance events can be performed at any time." +}, +"maintenanceSchedule": { +"$ref": "MaintenanceSchedule", +"description": "Output only. Date and time of upcoming maintenance events which have been scheduled.", +"readOnly": true +}, +"maintenanceVersion": { +"description": "Optional. The self service update maintenance version. The version is date based such as \"20210712_00_00\".", +"type": "string" +}, +"memorySizeGb": { +"description": "Required. Redis memory size in GiB.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Redis instances are managed and addressed at regional level so location_id here refers to a GCP region; however, users may choose which specific zone (or collection of zones for cross-zone instances) an instance should be provisioned in. Refer to location_id and alternative_location_id fields for more details.", +"type": "string" +}, +"nodes": { +"description": "Output only. Info per node.", +"items": { +"$ref": "NodeInfo" +}, +"readOnly": true, +"type": "array" +}, +"persistenceConfig": { +"$ref": "PersistenceConfig", +"description": "Optional. Persistence configuration parameters" +}, +"persistenceIamIdentity": { +"description": "Output only. Cloud IAM identity used by import / export operations to transfer data to/from Cloud Storage. Format is \"serviceAccount:\". The value may change over time for a given instance so should be checked before each import/export operation.", +"readOnly": true, +"type": "string" +}, +"port": { +"description": "Output only. The port number of the exposed Redis endpoint.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"readEndpoint": { +"description": "Output only. Hostname or IP address of the exposed readonly Redis endpoint. Standard tier only. Targets all healthy replica nodes in instance. Replication is asynchronous and replica nodes will exhibit some lag behind the primary. Write requests must target 'host'.", +"readOnly": true, +"type": "string" +}, +"readEndpointPort": { +"description": "Output only. The port number of the exposed readonly redis endpoint. Standard tier only. Write requests should target 'port'.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"readReplicasMode": { +"description": "Optional. Read replicas mode for the instance. Defaults to READ_REPLICAS_DISABLED.", +"enum": [ +"READ_REPLICAS_MODE_UNSPECIFIED", +"READ_REPLICAS_DISABLED", +"READ_REPLICAS_ENABLED" +], +"enumDescriptions": [ +"If not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED.", +"If disabled, read endpoint will not be provided and the instance cannot scale up or down the number of replicas.", +"If enabled, read endpoint will be provided and the instance can scale up and down the number of replicas. Not valid for basic tier." +], +"type": "string" +}, +"redisConfigs": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Redis configuration parameters, according to http://redis.io/topics/config. Currently, the only supported parameters are: Redis version 3.2 and newer: * maxmemory-policy * notify-keyspace-events Redis version 4.0 and newer: * activedefrag * lfu-decay-time * lfu-log-factor * maxmemory-gb Redis version 5.0 and newer: * stream-node-max-bytes * stream-node-max-entries", +"type": "object" +}, +"redisVersion": { +"description": "Optional. The version of Redis software. If not provided, latest supported version will be used. Currently, the supported values are: * `REDIS_3_2` for Redis 3.2 compatibility * `REDIS_4_0` for Redis 4.0 compatibility (default) * `REDIS_5_0` for Redis 5.0 compatibility * `REDIS_6_X` for Redis 6.x compatibility * `REDIS_7_0` for Redis 7.0 compatibility", +"type": "string" +}, +"replicaCount": { +"description": "Optional. The number of replica nodes. The valid range for the Standard Tier with read replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled for a Standard Tier instance, the only valid value is 1 and the default is 1. The valid value for basic tier is 0 and the default is also 0.", +"format": "int32", +"type": "integer" +}, +"reservedIpRange": { +"description": "Optional. For DIRECT_PEERING mode, the CIDR range of internal addresses that are reserved for this instance. Range must be unique and non-overlapping with existing subnets in an authorized network. For PRIVATE_SERVICE_ACCESS mode, the name of one allocated IP address ranges associated with this private service access connection. If not provided, the service will choose an unused /29 block, for example, 10.0.0.0/29 or 192.168.0.0/29. For READ_REPLICAS_ENABLED the default block size is /28.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"secondaryIpRange": { +"description": "Optional. Additional IP range for node placement. Required when enabling read replicas on an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or \"auto\". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address range associated with the private service access connection, or \"auto\".", +"type": "string" +}, +"serverCaCerts": { +"description": "Output only. List of server CA certificates for the instance.", +"items": { +"$ref": "TlsCertificate" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. The current state of this instance.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"REPAIRING", +"MAINTENANCE", +"IMPORTING", +"FAILING_OVER" +], +"enumDescriptions": [ +"Not set.", +"Redis instance is being created.", +"Redis instance has been created and is fully usable.", +"Redis instance configuration is being updated. Certain kinds of updates may cause the instance to become unusable while the update is in progress.", +"Redis instance is being deleted.", +"Redis instance is being repaired and may be unusable.", +"Maintenance is being performed on this Redis instance.", +"Redis instance is importing data (availability may be affected).", +"Redis instance is failing over (availability may be affected)." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Additional information about the current status of this instance, if available.", +"readOnly": true, +"type": "string" +}, +"suspensionReasons": { +"description": "Optional. reasons that causes instance in \"SUSPENDED\" state.", +"items": { +"enum": [ +"SUSPENSION_REASON_UNSPECIFIED", +"CUSTOMER_MANAGED_KEY_ISSUE" +], +"enumDescriptions": [ +"Not set.", +"Something wrong with the CMEK key provided by customer." +], +"type": "string" +}, +"type": "array" +}, +"tier": { +"description": "Required. The service tier of the instance.", +"enum": [ +"TIER_UNSPECIFIED", +"BASIC", +"STANDARD_HA" +], +"enumDescriptions": [ +"Not set.", +"BASIC tier: standalone instance", +"STANDARD_HA tier: highly available primary/replica instances" +], +"type": "string" +}, +"transitEncryptionMode": { +"description": "Optional. The TLS mode of the Redis instance. If not provided, TLS is disabled for the instance.", +"enum": [ +"TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", +"SERVER_AUTHENTICATION", +"DISABLED" +], +"enumDescriptions": [ +"Not set.", +"Client to Server traffic encryption enabled with server authentication.", +"TLS is disabled for the instance." +], +"type": "string" +} +}, +"type": "object" +}, +"InstanceAuthString": { +"description": "Instance AUTH string details.", +"id": "InstanceAuthString", +"properties": { +"authString": { +"description": "AUTH string set on the instance.", +"type": "string" +} +}, +"type": "object" +}, +"InternalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration settings. Similarly bigtable can have multiple clusters within same bigtable instance.", +"id": "InternalResourceMetadata", +"properties": { +"backupConfiguration": { +"$ref": "BackupConfiguration", +"description": "Backup configuration for this database" +}, +"backupRun": { +"$ref": "BackupRun", +"description": "Information about the last backup attempt for this database" +}, +"product": { +"$ref": "Product" +}, +"resourceId": { +"$ref": "DatabaseResourceId" +}, +"resourceName": { +"description": "Required. internal resource name for spanner this will be database name e.g.\"spanner.googleapis.com/projects/123/abc/instances/inst1/databases/db1\"", +"type": "string" +} +}, +"type": "object" +}, +"ListBackupCollectionsResponse": { +"description": "Response for [ListBackupCollections].", +"id": "ListBackupCollectionsResponse", +"properties": { +"backupCollections": { +"description": "A list of backupCollections in the project. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder backupCollection entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/backupCollections/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListBackupCollections\".", +"items": { +"$ref": "BackupCollection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "Response for [ListBackups].", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "A list of backups in the project.", +"items": { +"$ref": "Backup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Backups that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListClustersResponse": { +"description": "Response for ListClusters.", +"id": "ListClustersResponse", +"properties": { +"clusters": { +"description": "A list of Redis clusters in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/clusters/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListClusters\".", +"items": { +"$ref": "Cluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Response for ListInstances.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "A list of Redis instances in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/instances/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListInstances\".", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "Resource ID for the region. For example: \"us-east1\".", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by Compute Engine. These keys can be specified in `location_id` or `alternative_location_id` fields when creating a Redis instance.", +"type": "object" +}, +"name": { +"description": "Full resource name for the region. For example: \"projects/example-project/locations/us-east1\".", +"type": "string" +} +}, +"type": "object" +}, +"MachineConfiguration": { +"description": "MachineConfiguration describes the configuration of a machine specific to Database Resource.", +"id": "MachineConfiguration", +"properties": { +"cpuCount": { +"deprecated": true, +"description": "The number of CPUs. Deprecated. Use vcpu_count instead. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int32", +"type": "integer" +}, +"memorySizeInBytes": { +"description": "Memory size in bytes. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int64", +"type": "string" +}, +"shardCount": { +"description": "Optional. Number of shards (if applicable).", +"format": "int32", +"type": "integer" +}, +"vcpuCount": { +"description": "Optional. The number of vCPUs. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "Maintenance policy for an instance.", +"id": "MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the policy was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyMaintenanceWindow": { +"description": "Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one.", +"items": { +"$ref": "WeeklyMaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"MaintenanceSchedule": { +"description": "Upcoming maintenance schedule. If no maintenance is scheduled, fields are not populated.", +"id": "MaintenanceSchedule", +"properties": { +"canReschedule": { +"deprecated": true, +"description": "If the scheduled maintenance can be rescheduled, default is true.", +"type": "boolean" +}, +"endTime": { +"description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ManagedBackupSource": { +"description": "Backups that generated and managed by memorystore.", +"id": "ManagedBackupSource", +"properties": { +"backup": { +"description": "Optional. Example: //redis.googleapis.com/projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup} A shorter version (without the prefix) of the backup name is also supported, like projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup_id} In this case, it assumes the backup is under redis.googleapis.com.", +"type": "string" +} +}, +"type": "object" +}, +"ManagedCertificateAuthority": { +"id": "ManagedCertificateAuthority", +"properties": { +"caCerts": { +"description": "The PEM encoded CA certificate chains for redis managed server authentication", +"items": { +"$ref": "CertChain" +}, +"type": "array" +} +}, +"type": "object" +}, +"Membership": { +"description": "An output only view of all the member clusters participating in the cross cluster replication.", +"id": "Membership", +"properties": { +"primaryCluster": { +"$ref": "RemoteCluster", +"description": "Output only. The primary cluster that acts as the source of replication for the secondary clusters.", +"readOnly": true +}, +"secondaryClusters": { +"description": "Output only. The list of secondary clusters replicating from the primary cluster.", +"items": { +"$ref": "RemoteCluster" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"NodeInfo": { +"description": "Node specific properties.", +"id": "NodeInfo", +"properties": { +"id": { +"description": "Output only. Node identifying string. e.g. 'node-0', 'node-1'", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Output only. Location of the node.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ObservabilityMetricData": { +"id": "ObservabilityMetricData", +"properties": { +"aggregationType": { +"description": "Required. Type of aggregation performed on the metric.", +"enum": [ +"AGGREGATION_TYPE_UNSPECIFIED", +"PEAK", +"P99", +"P95", +"CURRENT" +], +"enumDescriptions": [ +"Unspecified aggregation type.", +"PEAK aggregation type.", +"P99 aggregation type.", +"P95 aggregation type.", +"current aggregation type." +], +"type": "string" +}, +"metricType": { +"description": "Required. Type of metric like CPU, Memory, etc.", +"enum": [ +"METRIC_TYPE_UNSPECIFIED", +"CPU_UTILIZATION", +"MEMORY_UTILIZATION", +"NETWORK_CONNECTIONS", +"STORAGE_UTILIZATION", +"STORAGE_USED_BYTES" +], +"enumDescriptions": [ +"Unspecified metric type.", +"CPU utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Memory utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Number of network connections for a resource.", +"Storage utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Sotrage used by a resource." +], +"type": "string" +}, +"observationTime": { +"description": "Required. The time the metric value was observed.", +"format": "google-datetime", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"value": { +"$ref": "TypedValue", +"description": "Required. Value of the metric type." +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "{ `createTime`: The time the operation was created. `endTime`: The time the operation finished running. `target`: Server-defined resource path for the target of the operation. `verb`: Name of the verb executed by the operation. `statusDetail`: Human-readable status of the operation, if any. `cancelRequested`: Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. `apiVersion`: API version used to start the operation. }", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationError": { +"description": "An error that occurred during a backup creation operation.", +"id": "OperationError", +"properties": { +"code": { +"description": "Identifies the specific error that occurred. REQUIRED", +"type": "string" +}, +"errorType": { +"enum": [ +"OPERATION_ERROR_TYPE_UNSPECIFIED", +"KMS_KEY_ERROR", +"DATABASE_ERROR", +"STOCKOUT_ERROR", +"CANCELLATION_ERROR", +"SQLSERVER_ERROR", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"key destroyed, expired, not found, unreachable or permission denied.", +"Database is not accessible", +"The zone or region does not have sufficient resources to handle the request at the moment", +"User initiated cancellation", +"SQL server specific error", +"Any other internal error." +], +"type": "string" +}, +"message": { +"description": "Additional information about the error encountered. REQUIRED", +"type": "string" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Pre-defined metadata fields.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OutputConfig": { +"description": "The output content", +"id": "OutputConfig", +"properties": { +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Google Cloud Storage destination for output content." +} +}, +"type": "object" +}, +"PersistenceConfig": { +"description": "Configuration of the persistence functionality.", +"id": "PersistenceConfig", +"properties": { +"persistenceMode": { +"description": "Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.", +"enum": [ +"PERSISTENCE_MODE_UNSPECIFIED", +"DISABLED", +"RDB" +], +"enumDescriptions": [ +"Not set.", +"Persistence is disabled for the instance, and any existing snapshots are deleted.", +"RDB based Persistence is enabled." +], +"type": "string" +}, +"rdbNextSnapshotTime": { +"description": "Output only. The next time that a snapshot attempt is scheduled to occur.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"rdbSnapshotPeriod": { +"description": "Optional. Period between RDB snapshots. Snapshots will be attempted every period starting from the provided snapshot start time. For example, a start time of 01/01/2033 06:45 and SIX_HOURS snapshot period will do nothing until 01/01/2033, and then trigger snapshots every day at 06:45, 12:45, 18:45, and 00:45 the next day, and so on. If not provided, TWENTY_FOUR_HOURS will be used as default.", +"enum": [ +"SNAPSHOT_PERIOD_UNSPECIFIED", +"ONE_HOUR", +"SIX_HOURS", +"TWELVE_HOURS", +"TWENTY_FOUR_HOURS" +], +"enumDescriptions": [ +"Not set.", +"Snapshot every 1 hour.", +"Snapshot every 6 hours.", +"Snapshot every 12 hours.", +"Snapshot every 24 hours." +], +"type": "string" +}, +"rdbSnapshotStartTime": { +"description": "Optional. Date and time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Product": { +"description": "Product specification for Condor resources.", +"id": "Product", +"properties": { +"engine": { +"description": "The specific engine that the underlying database is running.", +"enum": [ +"ENGINE_UNSPECIFIED", +"ENGINE_MYSQL", +"MYSQL", +"ENGINE_POSTGRES", +"POSTGRES", +"ENGINE_SQL_SERVER", +"SQL_SERVER", +"ENGINE_NATIVE", +"NATIVE", +"ENGINE_CLOUD_SPANNER_WITH_POSTGRES_DIALECT", +"ENGINE_CLOUD_SPANNER_WITH_GOOGLESQL_DIALECT", +"ENGINE_MEMORYSTORE_FOR_REDIS", +"ENGINE_MEMORYSTORE_FOR_REDIS_CLUSTER", +"ENGINE_OTHER", +"ENGINE_FIRESTORE_WITH_NATIVE_MODE", +"ENGINE_FIRESTORE_WITH_DATASTORE_MODE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means engine type is not known or available.", +"MySQL binary running as an engine in the database instance.", +"MySQL binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"Native database binary running as engine in instance.", +"Native database binary running as engine in instance.", +"Cloud Spanner with PostgreSQL dialect.", +"Cloud Spanner with Google SQL dialect.", +"Memorystore with Redis dialect.", +"Memorystore with Redis cluster dialect.", +"Other refers to rest of other database engine. This is to be when engine is known, but it is not present in this enum.", +"Firestore with native mode.", +"Firestore with datastore mode." +], +"type": "string" +}, +"type": { +"description": "Type of specific database product. It could be CloudSQL, AlloyDB etc..", +"enum": [ +"PRODUCT_TYPE_UNSPECIFIED", +"PRODUCT_TYPE_CLOUD_SQL", +"CLOUD_SQL", +"PRODUCT_TYPE_ALLOYDB", +"ALLOYDB", +"PRODUCT_TYPE_SPANNER", +"PRODUCT_TYPE_ON_PREM", +"ON_PREM", +"PRODUCT_TYPE_MEMORYSTORE", +"PRODUCT_TYPE_BIGTABLE", +"PRODUCT_TYPE_OTHER", +"PRODUCT_TYPE_FIRESTORE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +false, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"Cloud SQL product area in GCP", +"Cloud SQL product area in GCP", +"AlloyDB product area in GCP", +"AlloyDB product area in GCP", +"Spanner product area in GCP", +"On premises database product.", +"On premises database product.", +"Memorystore product area in GCP", +"Bigtable product area in GCP", +"Other refers to rest of other product type. This is to be when product type is known, but it is not present in this enum.", +"Firestore product area in GCP." +], +"type": "string" +}, +"version": { +"description": "Version of the underlying database engine. Example values: For MySQL, it could be \"8.0\", \"5.7\" etc.. For Postgres, it could be \"14\", \"15\" etc..", +"type": "string" +} +}, +"type": "object" +}, +"PscAutoConnection": { +"description": "Details of consumer resources in a PSC connection that is created through Service Connectivity Automation.", +"id": "PscAutoConnection", +"properties": { +"address": { +"description": "Output only. The IP allocated on the consumer network for the PSC forwarding rule.", +"readOnly": true, +"type": "string" +}, +"connectionType": { +"description": "Output only. Type of the PSC connection.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"CONNECTION_TYPE_DISCOVERY", +"CONNECTION_TYPE_PRIMARY", +"CONNECTION_TYPE_READER" +], +"enumDescriptions": [ +"Cluster endpoint Type is not set", +"Cluster endpoint that will be used as for cluster topology discovery.", +"Cluster endpoint that will be used as primary endpoint to access primary.", +"Cluster endpoint that will be used as reader endpoint to access replicas." +], +"readOnly": true, +"type": "string" +}, +"forwardingRule": { +"description": "Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.", +"readOnly": true, +"type": "string" +}, +"network": { +"description": "Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.", +"type": "string" +}, +"projectId": { +"description": "Required. The consumer project_id where the forwarding rule is created from.", +"type": "string" +}, +"pscConnectionId": { +"description": "Output only. The PSC connection id of the forwarding rule connected to the service attachment.", +"readOnly": true, +"type": "string" +}, +"pscConnectionStatus": { +"description": "Output only. The status of the PSC connection. Please note that this value is updated periodically. Please use Private Service Connect APIs for the latest status.", +"enum": [ +"PSC_CONNECTION_STATUS_UNSPECIFIED", +"PSC_CONNECTION_STATUS_ACTIVE", +"PSC_CONNECTION_STATUS_NOT_FOUND" +], +"enumDescriptions": [ +"PSC connection status is not specified.", +"The connection is active", +"Connection not found" +], +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PscConfig": { +"id": "PscConfig", +"properties": { +"network": { +"description": "Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.", +"type": "string" +} +}, +"type": "object" +}, +"PscConnection": { +"description": "Details of consumer resources in a PSC connection.", +"id": "PscConnection", +"properties": { +"address": { +"description": "Required. The IP allocated on the consumer network for the PSC forwarding rule.", +"type": "string" +}, +"connectionType": { +"description": "Output only. Type of the PSC connection.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"CONNECTION_TYPE_DISCOVERY", +"CONNECTION_TYPE_PRIMARY", +"CONNECTION_TYPE_READER" +], +"enumDescriptions": [ +"Cluster endpoint Type is not set", +"Cluster endpoint that will be used as for cluster topology discovery.", +"Cluster endpoint that will be used as primary endpoint to access primary.", +"Cluster endpoint that will be used as reader endpoint to access replicas." +], +"readOnly": true, +"type": "string" +}, +"forwardingRule": { +"description": "Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.", +"type": "string" +}, +"network": { +"description": "Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.", +"type": "string" +}, +"projectId": { +"description": "Optional. Project ID of the consumer project where the forwarding rule is created in.", +"type": "string" +}, +"pscConnectionId": { +"description": "Required. The PSC connection id of the forwarding rule connected to the service attachment.", +"type": "string" +}, +"pscConnectionStatus": { +"description": "Output only. The status of the PSC connection. Please note that this value is updated periodically. To get the latest status of a PSC connection, follow https://cloud.google.com/vpc/docs/configure-private-service-connect-services#endpoint-details.", +"enum": [ +"PSC_CONNECTION_STATUS_UNSPECIFIED", +"PSC_CONNECTION_STATUS_ACTIVE", +"PSC_CONNECTION_STATUS_NOT_FOUND" +], +"enumDescriptions": [ +"PSC connection status is not specified.", +"The connection is active", +"Connection not found" +], +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Required. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.", +"type": "string" +} +}, +"type": "object" +}, +"PscServiceAttachment": { +"description": "Configuration of a service attachment of the cluster, for creating PSC connections.", +"id": "PscServiceAttachment", +"properties": { +"connectionType": { +"description": "Output only. Type of a PSC connection targeting this service attachment.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"CONNECTION_TYPE_DISCOVERY", +"CONNECTION_TYPE_PRIMARY", +"CONNECTION_TYPE_READER" +], +"enumDescriptions": [ +"Cluster endpoint Type is not set", +"Cluster endpoint that will be used as for cluster topology discovery.", +"Cluster endpoint that will be used as primary endpoint to access primary.", +"Cluster endpoint that will be used as reader endpoint to access replicas." +], +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Output only. Service attachment URI which your self-created PscConnection should use as target", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RDBConfig": { +"description": "Configuration of the RDB based persistence.", +"id": "RDBConfig", +"properties": { +"rdbSnapshotPeriod": { +"description": "Optional. Period between RDB snapshots.", +"enum": [ +"SNAPSHOT_PERIOD_UNSPECIFIED", +"ONE_HOUR", +"SIX_HOURS", +"TWELVE_HOURS", +"TWENTY_FOUR_HOURS" +], +"enumDescriptions": [ +"Not set.", +"One hour.", +"Six hours.", +"Twelve hours.", +"Twenty four hours." +], +"type": "string" +}, +"rdbSnapshotStartTime": { +"description": "Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ReconciliationOperationMetadata": { +"description": "Operation metadata returned by the CLH during resource state reconciliation.", +"id": "ReconciliationOperationMetadata", +"properties": { +"deleteResource": { +"deprecated": true, +"description": "DEPRECATED. Use exclusive_action instead.", +"type": "boolean" +}, +"exclusiveAction": { +"description": "Excluisive action returned by the CLH.", +"enum": [ +"UNKNOWN_REPAIR_ACTION", +"DELETE", +"RETRY" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"Unknown repair action.", +"The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.", +"This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." +], +"type": "string" +} +}, +"type": "object" +}, +"RemoteCluster": { +"description": "Details of the remote cluster associated with this cluster in a cross cluster replication setup.", +"id": "RemoteCluster", +"properties": { +"cluster": { +"description": "The full resource path of the remote cluster in the format: projects//locations//clusters/", +"type": "string" +}, +"uid": { +"description": "Output only. The unique identifier of the remote cluster.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RescheduleClusterMaintenanceRequest": { +"description": "Request for rescheduling a cluster maintenance.", +"id": "RescheduleClusterMaintenanceRequest", +"properties": { +"rescheduleType": { +"description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", +"enum": [ +"RESCHEDULE_TYPE_UNSPECIFIED", +"IMMEDIATE", +"SPECIFIC_TIME" +], +"enumDescriptions": [ +"Not set.", +"If the user wants to schedule the maintenance to happen now.", +"If the user wants to reschedule the maintenance to a specific time." +], +"type": "string" +}, +"scheduleTime": { +"description": "Optional. Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RescheduleMaintenanceRequest": { +"description": "Request for RescheduleMaintenance.", +"id": "RescheduleMaintenanceRequest", +"properties": { +"rescheduleType": { +"description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", +"enum": [ +"RESCHEDULE_TYPE_UNSPECIFIED", +"IMMEDIATE", +"NEXT_AVAILABLE_WINDOW", +"SPECIFIC_TIME" +], +"enumDescriptions": [ +"Not set.", +"If the user wants to schedule the maintenance to happen now.", +"If the user wants to use the existing maintenance policy to find the next available window.", +"If the user wants to reschedule the maintenance to a specific time." +], +"type": "string" +}, +"scheduleTime": { +"description": "Optional. Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RetentionSettings": { +"id": "RetentionSettings", +"properties": { +"durationBasedRetention": { +"description": "Duration based retention period i.e. 172800 seconds (2 days)", +"format": "google-duration", +"type": "string" +}, +"quantityBasedRetention": { +"format": "int32", +"type": "integer" +}, +"retentionUnit": { +"deprecated": true, +"description": "The unit that 'retained_backups' represents.", +"enum": [ +"RETENTION_UNIT_UNSPECIFIED", +"COUNT", +"TIME", +"DURATION", +"RETENTION_UNIT_OTHER" +], +"enumDescriptions": [ +"Backup retention unit is unspecified, will be treated as COUNT.", +"Retention will be by count, eg. \"retain the most recent 7 backups\".", +"Retention will be by Time, eg. \"retain backups till a specific time\" i.e. till 2024-05-01T00:00:00Z.", +"Retention will be by duration, eg. \"retain the backups for 172800 seconds (2 days)\".", +"For rest of the other category" +], +"type": "string" +}, +"timeBasedRetention": { +"format": "google-duration", +"type": "string" +}, +"timestampBasedRetentionTime": { +"description": "Timestamp based retention period i.e. 2024-05-01T00:00:00Z", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"StateInfo": { +"description": "Represents additional information about the state of the cluster.", +"id": "StateInfo", +"properties": { +"updateInfo": { +"$ref": "UpdateInfo", +"description": "Describes ongoing update on the cluster when cluster state is UPDATING." +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Tags": { +"description": "Message type for storing tags. Tags provide a way to create annotations for resources, and in some cases conditionally allow or deny policies based on whether a resource has a specific tag.", +"id": "Tags", +"properties": { +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "The Tag key/value mappings.", +"type": "object" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TlsCertificate": { +"description": "TlsCertificate Resource", +"id": "TlsCertificate", +"properties": { +"cert": { +"description": "PEM representation.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"serialNumber": { +"description": "Serial number, as extracted from the certificate.", +"type": "string" +}, +"sha1Fingerprint": { +"description": "Sha1 Fingerprint of the certificate.", +"type": "string" +} +}, +"type": "object" +}, +"TypedValue": { +"description": "TypedValue represents the value of a metric type. It can either be a double, an int64, a string or a bool.", +"id": "TypedValue", +"properties": { +"boolValue": { +"description": "For boolean value", +"type": "boolean" +}, +"doubleValue": { +"description": "For double value", +"format": "double", +"type": "number" +}, +"int64Value": { +"description": "For integer value", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "For string value", +"type": "string" +} +}, +"type": "object" +}, +"UpdateInfo": { +"description": "Represents information about an updating cluster.", +"id": "UpdateInfo", +"properties": { +"targetReplicaCount": { +"description": "Target number of replica nodes per shard.", +"format": "int32", +"type": "integer" +}, +"targetShardCount": { +"description": "Target number of shards for redis cluster", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpgradeInstanceRequest": { +"description": "Request for UpgradeInstance.", +"id": "UpgradeInstanceRequest", +"properties": { +"redisVersion": { +"description": "Required. Specifies the target version of Redis software to upgrade to.", +"type": "string" +} +}, +"type": "object" +}, +"UserLabels": { +"description": "Message type for storing user labels. User labels are used to tag App Engine resources, allowing users to search for resources matching a set of labels and to aggregate usage data by labels.", +"id": "UserLabels", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +} +}, +"type": "object" +}, +"WeeklyMaintenanceWindow": { +"description": "Time window in which disruptive maintenance updates occur. Non-disruptive updates can occur inside or outside this window.", +"id": "WeeklyMaintenanceWindow", +"properties": { +"day": { +"description": "Required. The day of week that maintenance updates occur.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"duration": { +"description": "Output only. Duration of the maintenance window. The current window is fixed at 1 hour.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. Start time of the window in UTC time." +} +}, +"type": "object" +}, +"ZoneDistributionConfig": { +"description": "Zone distribution config for allocation of cluster resources.", +"id": "ZoneDistributionConfig", +"properties": { +"mode": { +"description": "Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.", +"enum": [ +"ZONE_DISTRIBUTION_MODE_UNSPECIFIED", +"MULTI_ZONE", +"SINGLE_ZONE" +], +"enumDescriptions": [ +"Not Set. Default: MULTI_ZONE", +"Distribute all resources across 3 zones picked at random, within the region.", +"Distribute all resources in a single zone. The zone field must be specified, when this mode is selected." +], +"type": "string" +}, +"zone": { +"description": "Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Cloud Memorystore for Redis API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/remotebuildexecution.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/remotebuildexecution.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..0db953347c14b078bf84f4c48a3c58963d50390c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/remotebuildexecution.v2.json @@ -0,0 +1,2623 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud Platform data" + } + } + } + }, + "basePath": "", + "baseUrl": "https://remotebuildexecution.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Remote Build Execution", + "description": "Supplies a Remote Execution API service for tools such as bazel.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/remote-build-execution/docs/", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "remotebuildexecution:v2", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://remotebuildexecution.mtls.googleapis.com/", + "name": "remotebuildexecution", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "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.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "actionResults": { + "methods": { + "get": { + "description": "Retrieve a cached execution result. Implementations SHOULD ensure that any blobs referenced from the ContentAddressableStorage are available at the time of returning the ActionResult and will be for some period of time afterwards. The lifetimes of the referenced blobs SHOULD be increased if necessary and applicable. Errors: * `NOT_FOUND`: The requested `ActionResult` is not in the cache.", + "flatPath": "v2/{v2Id}/actionResults/{hash}/{sizeBytes}", + "httpMethod": "GET", + "id": "remotebuildexecution.actionResults.get", + "parameterOrder": [ + "instanceName", + "hash", + "sizeBytes" + ], + "parameters": { + "hash": { + "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.", + "location": "path", + "required": true, + "type": "string" + }, + "inlineOutputFiles": { + "description": "A hint to the server to inline the contents of the listed output files. Each path needs to exactly match one file path in either `output_paths` or `output_files` (DEPRECATED since v2.1) in the Command message.", + "location": "query", + "repeated": true, + "type": "string" + }, + "inlineStderr": { + "description": "A hint to the server to request inlining stderr in the ActionResult message.", + "location": "query", + "type": "boolean" + }, + "inlineStdout": { + "description": "A hint to the server to request inlining stdout in the ActionResult message.", + "location": "query", + "type": "boolean" + }, + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + }, + "sizeBytes": { + "description": "The size of the blob, in bytes.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/actionResults/{hash}/{sizeBytes}", + "response": { + "$ref": "BuildBazelRemoteExecutionV2ActionResult" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "description": "Upload a new execution result. In order to allow the server to perform access control based on the type of action, and to assist with client debugging, the client MUST first upload the Action that produced the result, along with its Command, into the `ContentAddressableStorage`. Server implementations MAY modify the `UpdateActionResultRequest.action_result` and return an equivalent value. Errors: * `INVALID_ARGUMENT`: One or more arguments are invalid. * `FAILED_PRECONDITION`: One or more errors occurred in updating the action result, such as a missing command or action. * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the entry to the cache.", + "flatPath": "v2/{v2Id}/actionResults/{hash}/{sizeBytes}", + "httpMethod": "PUT", + "id": "remotebuildexecution.actionResults.update", + "parameterOrder": [ + "instanceName", + "hash", + "sizeBytes" + ], + "parameters": { + "hash": { + "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.", + "location": "path", + "required": true, + "type": "string" + }, + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + }, + "resultsCachePolicy.priority": { + "description": "The priority (relative importance) of this content in the overall cache. Generally, a lower value means a longer retention time or other advantage, but the interpretation of a given value is server-dependent. A priority of 0 means a *default* value, decided by the server. The particular semantics of this field is up to the server. In particular, every server will have their own supported range of priorities, and will decide how these map into retention/eviction policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "sizeBytes": { + "description": "The size of the blob, in bytes.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/actionResults/{hash}/{sizeBytes}", + "request": { + "$ref": "BuildBazelRemoteExecutionV2ActionResult" + }, + "response": { + "$ref": "BuildBazelRemoteExecutionV2ActionResult" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "actions": { + "methods": { + "execute": { + "description": "Execute an action remotely. In order to execute an action, the client must first upload all of the inputs, the Command to run, and the Action into the ContentAddressableStorage. It then calls `Execute` with an `action_digest` referring to them. The server will run the action and eventually return the result. The input `Action`'s fields MUST meet the various canonicalization requirements specified in the documentation for their types so that it has the same digest as other logically equivalent `Action`s. The server MAY enforce the requirements and return errors if a non-canonical input is received. It MAY also proceed without verifying some or all of the requirements, such as for performance reasons. If the server does not verify the requirement, then it will treat the `Action` as distinct from another logically equivalent action if they hash differently. Returns a stream of google.longrunning.Operation messages describing the resulting execution, with eventual `response` ExecuteResponse. The `metadata` on the operation is of type ExecuteOperationMetadata. If the client remains connected after the first response is returned after the server, then updates are streamed as if the client had called WaitExecution until the execution completes or the request reaches an error. The operation can also be queried using Operations API. The server NEED NOT implement other methods or functionality of the Operations API. Errors discovered during creation of the `Operation` will be reported as gRPC Status errors, while errors that occurred while running the action will be reported in the `status` field of the `ExecuteResponse`. The server MUST NOT set the `error` field of the `Operation` proto. The possible errors include: * `INVALID_ARGUMENT`: One or more arguments are invalid. * `FAILED_PRECONDITION`: One or more errors occurred in setting up the action requested, such as a missing input or command or no worker being available. The client may be able to fix the errors and retry. * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run the action. * `UNAVAILABLE`: Due to a transient condition, such as all workers being occupied (and the server does not support a queue), the action could not be started. The client should retry. * `INTERNAL`: An internal error occurred in the execution engine or the worker. * `DEADLINE_EXCEEDED`: The execution timed out. * `CANCELLED`: The operation was cancelled by the client. This status is only possible if the server implements the Operations API CancelOperation method, and it was called for the current execution. In the case of a missing input or command, the server SHOULD additionally send a PreconditionFailure error detail where, for each requested blob not present in the CAS, there is a `Violation` with a `type` of `MISSING` and a `subject` of `\"blobs/{hash}/{size}\"` indicating the digest of the missing blob. The server does not need to guarantee that a call to this method leads to at most one execution of the action. The server MAY execute the action multiple times, potentially in parallel. These redundant executions MAY continue to run, even if the operation is completed.", + "flatPath": "v2/{v2Id}/actions:execute", + "httpMethod": "POST", + "id": "remotebuildexecution.actions.execute", + "parameterOrder": [ + "instanceName" + ], + "parameters": { + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/actions:execute", + "request": { + "$ref": "BuildBazelRemoteExecutionV2ExecuteRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "blobs": { + "methods": { + "batchRead": { + "description": "Download many blobs at once. The server may enforce a limit of the combined total size of blobs to be downloaded using this API. This limit may be obtained using the Capabilities API. Requests exceeding the limit should either be split into smaller chunks or downloaded using the ByteStream API, as appropriate. This request is equivalent to calling a Bytestream `Read` request on each individual blob, in parallel. The requests may succeed or fail independently. Errors: * `INVALID_ARGUMENT`: The client attempted to read more than the server supported limit. Every error on individual read will be returned in the corresponding digest status.", + "flatPath": "v2/{v2Id}/blobs:batchRead", + "httpMethod": "POST", + "id": "remotebuildexecution.blobs.batchRead", + "parameterOrder": [ + "instanceName" + ], + "parameters": { + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/blobs:batchRead", + "request": { + "$ref": "BuildBazelRemoteExecutionV2BatchReadBlobsRequest" + }, + "response": { + "$ref": "BuildBazelRemoteExecutionV2BatchReadBlobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "batchUpdate": { + "description": "Upload many blobs at once. The server may enforce a limit of the combined total size of blobs to be uploaded using this API. This limit may be obtained using the Capabilities API. Requests exceeding the limit should either be split into smaller chunks or uploaded using the ByteStream API, as appropriate. This request is equivalent to calling a Bytestream `Write` request on each individual blob, in parallel. The requests may succeed or fail independently. Errors: * `INVALID_ARGUMENT`: The client attempted to upload more than the server supported limit. Individual requests may return the following errors, additionally: * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob. * `INVALID_ARGUMENT`: The Digest does not match the provided data.", + "flatPath": "v2/{v2Id}/blobs:batchUpdate", + "httpMethod": "POST", + "id": "remotebuildexecution.blobs.batchUpdate", + "parameterOrder": [ + "instanceName" + ], + "parameters": { + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/blobs:batchUpdate", + "request": { + "$ref": "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest" + }, + "response": { + "$ref": "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "findMissing": { + "description": "Determine if blobs are present in the CAS. Clients can use this API before uploading blobs to determine which ones are already present in the CAS and do not need to be uploaded again. Servers SHOULD increase the lifetimes of the referenced blobs if necessary and applicable. There are no method-specific errors.", + "flatPath": "v2/{v2Id}/blobs:findMissing", + "httpMethod": "POST", + "id": "remotebuildexecution.blobs.findMissing", + "parameterOrder": [ + "instanceName" + ], + "parameters": { + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/blobs:findMissing", + "request": { + "$ref": "BuildBazelRemoteExecutionV2FindMissingBlobsRequest" + }, + "response": { + "$ref": "BuildBazelRemoteExecutionV2FindMissingBlobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getTree": { + "description": "Fetch the entire directory tree rooted at a node. This request must be targeted at a Directory stored in the ContentAddressableStorage (CAS). The server will enumerate the `Directory` tree recursively and return every node descended from the root. The GetTreeRequest.page_token parameter can be used to skip ahead in the stream (e.g. when retrying a partially completed and aborted request), by setting it to a value taken from GetTreeResponse.next_page_token of the last successfully processed GetTreeResponse). The exact traversal order is unspecified and, unless retrieving subsequent pages from an earlier request, is not guaranteed to be stable across multiple invocations of `GetTree`. If part of the tree is missing from the CAS, the server will return the portion present and omit the rest. Errors: * `NOT_FOUND`: The requested tree root is not present in the CAS.", + "flatPath": "v2/{v2Id}/blobs/{hash}/{sizeBytes}:getTree", + "httpMethod": "GET", + "id": "remotebuildexecution.blobs.getTree", + "parameterOrder": [ + "instanceName", + "hash", + "sizeBytes" + ], + "parameters": { + "hash": { + "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.", + "location": "path", + "required": true, + "type": "string" + }, + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "A maximum page size to request. If present, the server will request no more than this many items. Regardless of whether a page size is specified, the server may place its own limit on the number of items to be returned and require the client to retrieve more items using a subsequent request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, which must be a value received in a previous GetTreeResponse. If present, the server will use that token as an offset, returning only that page and the ones that succeed it.", + "location": "query", + "type": "string" + }, + "sizeBytes": { + "description": "The size of the blob, in bytes.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/blobs/{hash}/{sizeBytes}:getTree", + "response": { + "$ref": "BuildBazelRemoteExecutionV2GetTreeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "operations": { + "methods": { + "waitExecution": { + "description": "Wait for an execution operation to complete. When the client initially makes the request, the server immediately responds with the current status of the execution. The server will leave the request stream open until the operation completes, and then respond with the completed operation. The server MAY choose to stream additional updates as execution progresses, such as to provide an update as to the state of the execution.", + "flatPath": "v2/operations/{operationsId}:waitExecution", + "httpMethod": "POST", + "id": "remotebuildexecution.operations.waitExecution", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the Operation returned by Execute.", + "location": "path", + "pattern": "^operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:waitExecution", + "request": { + "$ref": "BuildBazelRemoteExecutionV2WaitExecutionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "v2": { + "methods": { + "getCapabilities": { + "description": "GetCapabilities returns the server capabilities configuration of the remote endpoint. Only the capabilities of the services supported by the endpoint will be returned: * Execution + CAS + Action Cache endpoints should return both CacheCapabilities and ExecutionCapabilities. * Execution only endpoints should return ExecutionCapabilities. * CAS + Action Cache only endpoints should return CacheCapabilities.", + "flatPath": "v2/{v2Id}/capabilities", + "httpMethod": "GET", + "id": "remotebuildexecution.getCapabilities", + "parameterOrder": [ + "instanceName" + ], + "parameters": { + "instanceName": { + "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instanceName}/capabilities", + "response": { + "$ref": "BuildBazelRemoteExecutionV2ServerCapabilities" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + }, + "revision": "20210712", + "rootUrl": "https://remotebuildexecution.googleapis.com/", + "schemas": { + "BuildBazelRemoteExecutionV2Action": { + "description": "An `Action` captures all the information about an execution which is required to reproduce it. `Action`s are the core component of the [Execution] service. A single `Action` represents a repeatable action that can be performed by the execution service. `Action`s can be succinctly identified by the digest of their wire format encoding and, once an `Action` has been executed, will be cached in the action cache. Future requests can then use the cached result rather than needing to run afresh. When a server completes execution of an Action, it MAY choose to cache the result in the ActionCache unless `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By default, future calls to Execute the same `Action` will also serve their results from the cache. Clients must take care to understand the caching behaviour. Ideally, all `Action`s will be reproducible so that serving a result from cache is always desirable and correct.", + "id": "BuildBazelRemoteExecutionV2Action", + "properties": { + "commandDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Command to run, which MUST be present in the ContentAddressableStorage." + }, + "doNotCache": { + "description": "If true, then the `Action`'s result cannot be cached, and in-flight requests for the same `Action` may not be merged.", + "type": "boolean" + }, + "inputRootDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the root Directory for the input files. The files in the directory tree are available in the correct location on the build machine before the command is executed. The root directory, as well as every subdirectory and content blob referred to, MUST be in the ContentAddressableStorage." + }, + "platform": { + "$ref": "BuildBazelRemoteExecutionV2Platform", + "description": "The optional platform requirements for the execution environment. The server MAY choose to execute the action on any worker satisfying the requirements, so the client SHOULD ensure that running the action on any such worker will have the same result. A detailed lexicon for this can be found in the accompanying platform.md. New in version 2.2: clients SHOULD set these platform properties as well as those in the Command. Servers SHOULD prefer those set here." + }, + "salt": { + "description": "An optional additional salt value used to place this `Action` into a separate cache namespace from other instances having the same field contents. This salt typically comes from operational configuration specific to sources such as repo and service configuration, and allows disowning an entire set of ActionResults that might have been poisoned by buggy software or tool failures.", + "format": "byte", + "type": "string" + }, + "timeout": { + "description": "A timeout after which the execution should be killed. If the timeout is absent, then the client is specifying that the execution should continue as long as the server will let it. The server SHOULD impose a timeout if the client does not specify one, however, if the client does specify a timeout that is longer than the server's maximum timeout, the server MUST reject the request. The timeout is a part of the Action message, and therefore two `Actions` with different timeouts are different, even if they are otherwise identical. This is because, if they were not, running an `Action` with a lower timeout than is required might result in a cache hit from an execution run with a longer timeout, hiding the fact that the timeout is too short. By encoding it directly in the `Action`, a lower timeout will result in a cache miss and the execution timeout will fail immediately, rather than whenever the cache entry gets evicted.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities": { + "description": "Describes the server/instance capabilities for updating the action cache.", + "id": "BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities", + "properties": { + "updateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ActionResult": { + "description": "An ActionResult represents the result of an Action being run. It is advised that at least one field (for example `ActionResult.execution_metadata.Worker`) have a non-default value, to ensure that the serialized value is non-empty, which can then be used as a basic data sanity check.", + "id": "BuildBazelRemoteExecutionV2ActionResult", + "properties": { + "executionMetadata": { + "$ref": "BuildBazelRemoteExecutionV2ExecutedActionMetadata", + "description": "The details of the execution that originally produced this result." + }, + "exitCode": { + "description": "The exit code of the command.", + "format": "int32", + "type": "integer" + }, + "outputDirectories": { + "description": "The output directories of the action. For each output directory requested in the `output_directories` or `output_paths` field of the Action, if the corresponding directory existed after the action completed, a single entry will be present in the output list, which will contain the digest of a Tree message containing the directory tree, and the path equal exactly to the corresponding Action output_directories member. As an example, suppose the Action had an output directory `a/b/dir` and the execution produced the following contents in `a/b/dir`: a file named `bar` and a directory named `foo` with an executable file named `baz`. Then, output_directory will contain (hashes shortened for readability): ```json // OutputDirectory proto: { path: \"a/b/dir\" tree_digest: { hash: \"4a73bc9d03...\", size: 55 } } // Tree proto with hash \"4a73bc9d03...\" and size 55: { root: { files: [ { name: \"bar\", digest: { hash: \"4a73bc9d03...\", size: 65534 } } ], directories: [ { name: \"foo\", digest: { hash: \"4cf2eda940...\", size: 43 } } ] } children : { // (Directory proto with hash \"4cf2eda940...\" and size 43) files: [ { name: \"baz\", digest: { hash: \"b2c941073e...\", size: 1294, }, is_executable: true } ] } } ``` If an output of the same name as listed in `output_files` of the Command was found in `output_directories`, but was not a directory, the server will return a FAILED_PRECONDITION.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputDirectory" + }, + "type": "array" + }, + "outputDirectorySymlinks": { + "description": "The output directories of the action that are symbolic links to other directories. Those may be links to other output directories, or input directories, or even absolute paths outside of the working directory, if the server supports SymlinkAbsolutePathStrategy.ALLOWED. For each output directory requested in the `output_directories` field of the Action, if the directory existed after the action completed, a single entry will be present either in this field, or in the `output_directories` field, if the directory was not a symbolic link. If an output of the same name was found, but was a symbolic link to a file instead of a directory, the server will return a FAILED_PRECONDITION. If the action does not produce the requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted. DEPRECATED as of v2.1. Servers that wish to be compatible with v2.0 API should still populate this field in addition to `output_symlinks`.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputSymlink" + }, + "type": "array" + }, + "outputFileSymlinks": { + "description": "The output files of the action that are symbolic links to other files. Those may be links to other output files, or input files, or even absolute paths outside of the working directory, if the server supports SymlinkAbsolutePathStrategy.ALLOWED. For each output file requested in the `output_files` or `output_paths` field of the Action, if the corresponding file existed after the action completed, a single entry will be present either in this field, or in the `output_files` field, if the file was not a symbolic link. If an output symbolic link of the same name as listed in `output_files` of the Command was found, but its target type was not a regular file, the server will return a FAILED_PRECONDITION. If the action does not produce the requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted. DEPRECATED as of v2.1. Servers that wish to be compatible with v2.0 API should still populate this field in addition to `output_symlinks`.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputSymlink" + }, + "type": "array" + }, + "outputFiles": { + "description": "The output files of the action. For each output file requested in the `output_files` or `output_paths` field of the Action, if the corresponding file existed after the action completed, a single entry will be present either in this field, or the `output_file_symlinks` field if the file was a symbolic link to another file (`output_symlinks` field after v2.1). If an output listed in `output_files` was found, but was a directory rather than a regular file, the server will return a FAILED_PRECONDITION. If the action does not produce the requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputFile" + }, + "type": "array" + }, + "outputSymlinks": { + "description": "New in v2.1: this field will only be populated if the command `output_paths` field was used, and not the pre v2.1 `output_files` or `output_directories` fields. The output paths of the action that are symbolic links to other paths. Those may be links to other outputs, or inputs, or even absolute paths outside of the working directory, if the server supports SymlinkAbsolutePathStrategy.ALLOWED. A single entry for each output requested in `output_paths` field of the Action, if the corresponding path existed after the action completed and was a symbolic link. If the action does not produce a requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputSymlink" + }, + "type": "array" + }, + "stderrDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest for a blob containing the standard error of the action, which can be retrieved from the ContentAddressableStorage." + }, + "stderrRaw": { + "description": "The standard error buffer of the action. The server SHOULD NOT inline stderr unless requested by the client in the GetActionResultRequest message. The server MAY omit inlining, even if requested, and MUST do so if inlining would cause the response to exceed message size limits.", + "format": "byte", + "type": "string" + }, + "stdoutDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest for a blob containing the standard output of the action, which can be retrieved from the ContentAddressableStorage." + }, + "stdoutRaw": { + "description": "The standard output buffer of the action. The server SHOULD NOT inline stdout unless requested by the client in the GetActionResultRequest message. The server MAY omit inlining, even if requested, and MUST do so if inlining would cause the response to exceed message size limits.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchReadBlobsRequest": { + "description": "A request message for ContentAddressableStorage.BatchReadBlobs.", + "id": "BuildBazelRemoteExecutionV2BatchReadBlobsRequest", + "properties": { + "digests": { + "description": "The individual blob digests.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2Digest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchReadBlobsResponse": { + "description": "A response message for ContentAddressableStorage.BatchReadBlobs.", + "id": "BuildBazelRemoteExecutionV2BatchReadBlobsResponse", + "properties": { + "responses": { + "description": "The responses to the requests.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse": { + "description": "A response corresponding to a single blob that the client tried to download.", + "id": "BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse", + "properties": { + "data": { + "description": "The raw binary data.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest to which this response corresponds." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The result of attempting to download that blob." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest": { + "description": "A request message for ContentAddressableStorage.BatchUpdateBlobs.", + "id": "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest", + "properties": { + "requests": { + "description": "The individual upload requests.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest": { + "description": "A request corresponding to a single blob that the client wants to upload.", + "id": "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest", + "properties": { + "data": { + "description": "The raw binary data.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the blob. This MUST be the digest of `data`." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse": { + "description": "A response message for ContentAddressableStorage.BatchUpdateBlobs.", + "id": "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse", + "properties": { + "responses": { + "description": "The responses to the requests.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse": { + "description": "A response corresponding to a single blob that the client tried to upload.", + "id": "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The blob digest to which this response corresponds." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The result of attempting to upload that blob." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2CacheCapabilities": { + "description": "Capabilities of the remote cache system.", + "id": "BuildBazelRemoteExecutionV2CacheCapabilities", + "properties": { + "actionCacheUpdateCapabilities": { + "$ref": "BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities", + "description": "Capabilities for updating the action cache." + }, + "cachePriorityCapabilities": { + "$ref": "BuildBazelRemoteExecutionV2PriorityCapabilities", + "description": "Supported cache priority range for both CAS and ActionCache." + }, + "digestFunction": { + "description": "All the digest functions supported by the remote cache. Remote cache may support multiple digest functions simultaneously.", + "items": { + "enum": [ + "UNKNOWN", + "SHA256", + "SHA1", + "MD5", + "VSO", + "SHA384", + "SHA512", + "MURMUR3" + ], + "enumDescriptions": [ + "It is an error for the server to return this value.", + "The SHA-256 digest function.", + "The SHA-1 digest function.", + "The MD5 digest function.", + "The Microsoft \"VSO-Hash\" paged SHA256 digest function. See https://github.com/microsoft/BuildXL/blob/master/Documentation/Specs/PagedHash.md .", + "The SHA-384 digest function.", + "The SHA-512 digest function.", + "Murmur3 128-bit digest function, x64 variant. Note that this is not a cryptographic hash function and its collision properties are not strongly guaranteed. See https://github.com/aappleby/smhasher/wiki/MurmurHash3 ." + ], + "type": "string" + }, + "type": "array" + }, + "maxBatchTotalSizeBytes": { + "description": "Maximum total size of blobs to be uploaded/downloaded using batch methods. A value of 0 means no limit is set, although in practice there will always be a message size limitation of the protocol in use, e.g. GRPC.", + "format": "int64", + "type": "string" + }, + "supportedCompressor": { + "description": "Compressors supported by the \"compressed-blobs\" bytestream resources. Servers MUST support identity/no-compression, even if it is not listed here. Note that this does not imply which if any compressors are supported by the server at the gRPC level.", + "items": { + "enum": [ + "IDENTITY", + "ZSTD" + ], + "enumDescriptions": [ + "No compression. Servers and clients MUST always support this, and do not need to advertise it.", + "Zstandard compression." + ], + "type": "string" + }, + "type": "array" + }, + "symlinkAbsolutePathStrategy": { + "description": "Whether absolute symlink targets are supported.", + "enum": [ + "UNKNOWN", + "DISALLOWED", + "ALLOWED" + ], + "enumDescriptions": [ + "Invalid value.", + "Server will return an `INVALID_ARGUMENT` on input symlinks with absolute targets. If an action tries to create an output symlink with an absolute target, a `FAILED_PRECONDITION` will be returned.", + "Server will allow symlink targets to escape the input root tree, possibly resulting in non-hermetic builds." + ], + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Command": { + "description": "A `Command` is the actual command executed by a worker running an Action and specifications of its environment. Except as otherwise required, the environment (such as which system libraries or binaries are available, and what filesystems are mounted where) is defined by and specific to the implementation of the remote execution API.", + "id": "BuildBazelRemoteExecutionV2Command", + "properties": { + "arguments": { + "description": "The arguments to the command. The first argument must be the path to the executable, which must be either a relative path, in which case it is evaluated with respect to the input root, or an absolute path.", + "items": { + "type": "string" + }, + "type": "array" + }, + "environmentVariables": { + "description": "The environment variables to set when running the program. The worker may provide its own default environment variables; these defaults can be overridden using this field. Additional variables can also be specified. In order to ensure that equivalent Commands always hash to the same value, the environment variables MUST be lexicographically sorted by name. Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2CommandEnvironmentVariable" + }, + "type": "array" + }, + "outputDirectories": { + "description": "A list of the output directories that the client expects to retrieve from the action. Only the listed directories will be returned (an entire directory structure will be returned as a Tree message digest, see OutputDirectory), as well as files listed in `output_files`. Other files or directories that may be created during command execution are discarded. The paths are relative to the working directory of the action execution. The paths are specified using a single forward slash (`/`) as a path separator, even if the execution platform natively uses a different separator. The path MUST NOT include a trailing slash, nor a leading slash, being a relative path. The special value of empty string is allowed, although not recommended, and can be used to capture the entire working directory tree, including inputs. In order to ensure consistent hashing of the same Action, the output paths MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 bytes). An output directory cannot be duplicated or have the same path as any of the listed output files. An output directory is allowed to be a parent of another output directory. Directories leading up to the output directories (but not the output directories themselves) are created by the worker prior to execution, even if they are not explicitly part of the input root. DEPRECATED since 2.1: Use `output_paths` instead.", + "items": { + "type": "string" + }, + "type": "array" + }, + "outputFiles": { + "description": "A list of the output files that the client expects to retrieve from the action. Only the listed files, as well as directories listed in `output_directories`, will be returned to the client as output. Other files or directories that may be created during command execution are discarded. The paths are relative to the working directory of the action execution. The paths are specified using a single forward slash (`/`) as a path separator, even if the execution platform natively uses a different separator. The path MUST NOT include a trailing slash, nor a leading slash, being a relative path. In order to ensure consistent hashing of the same Action, the output paths MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 bytes). An output file cannot be duplicated, be a parent of another output file, or have the same path as any of the listed output directories. Directories leading up to the output files are created by the worker prior to execution, even if they are not explicitly part of the input root. DEPRECATED since v2.1: Use `output_paths` instead.", + "items": { + "type": "string" + }, + "type": "array" + }, + "outputNodeProperties": { + "description": "A list of keys for node properties the client expects to retrieve for output files and directories. Keys are either names of string-based NodeProperty or names of fields in NodeProperties. In order to ensure that equivalent `Action`s always hash to the same value, the node properties MUST be lexicographically sorted by name. Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. The interpretation of string-based properties is server-dependent. If a property is not recognized by the server, the server will return an `INVALID_ARGUMENT`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "outputPaths": { + "description": "A list of the output paths that the client expects to retrieve from the action. Only the listed paths will be returned to the client as output. The type of the output (file or directory) is not specified, and will be determined by the server after action execution. If the resulting path is a file, it will be returned in an OutputFile) typed field. If the path is a directory, the entire directory structure will be returned as a Tree message digest, see OutputDirectory) Other files or directories that may be created during command execution are discarded. The paths are relative to the working directory of the action execution. The paths are specified using a single forward slash (`/`) as a path separator, even if the execution platform natively uses a different separator. The path MUST NOT include a trailing slash, nor a leading slash, being a relative path. In order to ensure consistent hashing of the same Action, the output paths MUST be deduplicated and sorted lexicographically by code point (or, equivalently, by UTF-8 bytes). Directories leading up to the output paths are created by the worker prior to execution, even if they are not explicitly part of the input root. New in v2.1: this field supersedes the DEPRECATED `output_files` and `output_directories` fields. If `output_paths` is used, `output_files` and `output_directories` will be ignored!", + "items": { + "type": "string" + }, + "type": "array" + }, + "platform": { + "$ref": "BuildBazelRemoteExecutionV2Platform", + "description": "The platform requirements for the execution environment. The server MAY choose to execute the action on any worker satisfying the requirements, so the client SHOULD ensure that running the action on any such worker will have the same result. A detailed lexicon for this can be found in the accompanying platform.md. DEPRECATED as of v2.2: platform properties are now specified directly in the action. See documentation note in the Action for migration." + }, + "workingDirectory": { + "description": "The working directory, relative to the input root, for the command to run in. It must be a directory which exists in the input tree. If it is left empty, then the action is run in the input root.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2CommandEnvironmentVariable": { + "description": "An `EnvironmentVariable` is one variable to set in the running program's environment.", + "id": "BuildBazelRemoteExecutionV2CommandEnvironmentVariable", + "properties": { + "name": { + "description": "The variable name.", + "type": "string" + }, + "value": { + "description": "The variable value.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Digest": { + "description": "A content digest. A digest for a given blob consists of the size of the blob and its hash. The hash algorithm to use is defined by the server. The size is considered to be an integral part of the digest and cannot be separated. That is, even if the `hash` field is correctly specified but `size_bytes` is not, the server MUST reject the request. The reason for including the size in the digest is as follows: in a great many cases, the server needs to know the size of the blob it is about to work with prior to starting an operation with it, such as flattening Merkle tree structures or streaming it to a worker. Technically, the server could implement a separate metadata store, but this results in a significantly more complicated implementation as opposed to having the client specify the size up-front (or storing the size along with the digest in every message where digests are embedded). This does mean that the API leaks some implementation details of (what we consider to be) a reasonable server implementation, but we consider this to be a worthwhile tradeoff. When a `Digest` is used to refer to a proto message, it always refers to the message in binary encoded form. To ensure consistent hashing, clients and servers MUST ensure that they serialize messages according to the following rules, even if there are alternate valid encodings for the same message: * Fields are serialized in tag order. * There are no unknown fields. * There are no duplicate fields. * Fields are serialized according to the default semantics for their type. Most protocol buffer implementations will always follow these rules when serializing, but care should be taken to avoid shortcuts. For instance, concatenating two messages to merge them may produce duplicate fields.", + "id": "BuildBazelRemoteExecutionV2Digest", + "properties": { + "hash": { + "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.", + "type": "string" + }, + "sizeBytes": { + "description": "The size of the blob, in bytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Directory": { + "description": "A `Directory` represents a directory node in a file tree, containing zero or more children FileNodes, DirectoryNodes and SymlinkNodes. Each `Node` contains its name in the directory, either the digest of its content (either a file blob or a `Directory` proto) or a symlink target, as well as possibly some metadata about the file or directory. In order to ensure that two equivalent directory trees hash to the same value, the following restrictions MUST be obeyed when constructing a a `Directory`: * Every child in the directory must have a path of exactly one segment. Multiple levels of directory hierarchy may not be collapsed. * Each child in the directory must have a unique path segment (file name). Note that while the API itself is case-sensitive, the environment where the Action is executed may or may not be case-sensitive. That is, it is legal to call the API with a Directory that has both \"Foo\" and \"foo\" as children, but the Action may be rejected by the remote system upon execution. * The files, directories and symlinks in the directory must each be sorted in lexicographical order by path. The path strings must be sorted by code point, equivalently, by UTF-8 bytes. * The NodeProperties of files, directories, and symlinks must be sorted in lexicographical order by property name. A `Directory` that obeys the restrictions is said to be in canonical form. As an example, the following could be used for a file named `bar` and a directory named `foo` with an executable file named `baz` (hashes shortened for readability): ```json // (Directory proto) { files: [ { name: \"bar\", digest: { hash: \"4a73bc9d03...\", size: 65534 }, node_properties: [ { \"name\": \"MTime\", \"value\": \"2017-01-15T01:30:15.01Z\" } ] } ], directories: [ { name: \"foo\", digest: { hash: \"4cf2eda940...\", size: 43 } } ] } // (Directory proto with hash \"4cf2eda940...\" and size 43) { files: [ { name: \"baz\", digest: { hash: \"b2c941073e...\", size: 1294, }, is_executable: true } ] } ```", + "id": "BuildBazelRemoteExecutionV2Directory", + "properties": { + "directories": { + "description": "The subdirectories in the directory.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2DirectoryNode" + }, + "type": "array" + }, + "files": { + "description": "The files in the directory.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2FileNode" + }, + "type": "array" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "symlinks": { + "description": "The symlinks in the directory.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2SymlinkNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2DirectoryNode": { + "description": "A `DirectoryNode` represents a child of a Directory which is itself a `Directory` and its associated metadata.", + "id": "BuildBazelRemoteExecutionV2DirectoryNode", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Directory object represented. See Digest for information about how to take the digest of a proto message." + }, + "name": { + "description": "The name of the directory.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecuteOperationMetadata": { + "description": "Metadata about an ongoing execution, which will be contained in the metadata field of the Operation.", + "id": "BuildBazelRemoteExecutionV2ExecuteOperationMetadata", + "properties": { + "actionDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Action being executed." + }, + "stage": { + "description": "The current stage of execution.", + "enum": [ + "UNKNOWN", + "CACHE_CHECK", + "QUEUED", + "EXECUTING", + "COMPLETED" + ], + "enumDescriptions": [ + "Invalid value.", + "Checking the result against the cache.", + "Currently idle, awaiting a free machine to execute.", + "Currently being executed by a worker.", + "Finished execution." + ], + "type": "string" + }, + "stderrStreamName": { + "description": "If set, the client can use this resource name with ByteStream.Read to stream the standard error from the endpoint hosting streamed responses.", + "type": "string" + }, + "stdoutStreamName": { + "description": "If set, the client can use this resource name with ByteStream.Read to stream the standard output from the endpoint hosting streamed responses.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecuteRequest": { + "description": "A request message for Execution.Execute.", + "id": "BuildBazelRemoteExecutionV2ExecuteRequest", + "properties": { + "actionDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Action to execute." + }, + "executionPolicy": { + "$ref": "BuildBazelRemoteExecutionV2ExecutionPolicy", + "description": "An optional policy for execution of the action. The server will have a default policy if this is not provided." + }, + "resultsCachePolicy": { + "$ref": "BuildBazelRemoteExecutionV2ResultsCachePolicy", + "description": "An optional policy for the results of this execution in the remote cache. The server will have a default policy if this is not provided. This may be applied to both the ActionResult and the associated blobs." + }, + "skipCacheLookup": { + "description": "If true, the action will be executed even if its result is already present in the ActionCache. The execution is still allowed to be merged with other in-flight executions of the same action, however - semantically, the service MUST only guarantee that the results of an execution with this field set were not visible before the corresponding execution request was sent. Note that actions from execution requests setting this field set are still eligible to be entered into the action cache upon completion, and services SHOULD overwrite any existing entries that may exist. This allows skip_cache_lookup requests to be used as a mechanism for replacing action cache entries that reference outputs no longer available or that are poisoned in any way. If false, the result may be served from the action cache.", + "type": "boolean" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecuteResponse": { + "description": "The response message for Execution.Execute, which will be contained in the response field of the Operation.", + "id": "BuildBazelRemoteExecutionV2ExecuteResponse", + "properties": { + "cachedResult": { + "description": "True if the result was served from cache, false if it was executed.", + "type": "boolean" + }, + "message": { + "description": "Freeform informational message with details on the execution of the action that may be displayed to the user upon failure or when requested explicitly.", + "type": "string" + }, + "result": { + "$ref": "BuildBazelRemoteExecutionV2ActionResult", + "description": "The result of the action." + }, + "serverLogs": { + "additionalProperties": { + "$ref": "BuildBazelRemoteExecutionV2LogFile" + }, + "description": "An optional list of additional log outputs the server wishes to provide. A server can use this to return execution-specific logs however it wishes. This is intended primarily to make it easier for users to debug issues that may be outside of the actual job execution, such as by identifying the worker executing the action or by providing logs from the worker's setup phase. The keys SHOULD be human readable so that a client can display them to a user.", + "type": "object" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "If the status has a code other than `OK`, it indicates that the action did not finish execution. For example, if the operation times out during execution, the status will have a `DEADLINE_EXCEEDED` code. Servers MUST use this field for errors in execution, rather than the error field on the `Operation` object. If the status code is other than `OK`, then the result MUST NOT be cached. For an error status, the `result` field is optional; the server may populate the output-, stdout-, and stderr-related fields if it has any information available, such as the stdout and stderr of a timed-out action." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecutedActionMetadata": { + "description": "ExecutedActionMetadata contains details about a completed execution.", + "id": "BuildBazelRemoteExecutionV2ExecutedActionMetadata", + "properties": { + "auxiliaryMetadata": { + "description": "Details that are specific to the kind of worker used. For example, on POSIX-like systems this could contain a message with getrusage(2) statistics.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "executionCompletedTimestamp": { + "description": "When the worker completed executing the action command.", + "format": "google-datetime", + "type": "string" + }, + "executionStartTimestamp": { + "description": "When the worker started executing the action command.", + "format": "google-datetime", + "type": "string" + }, + "inputFetchCompletedTimestamp": { + "description": "When the worker finished fetching action inputs.", + "format": "google-datetime", + "type": "string" + }, + "inputFetchStartTimestamp": { + "description": "When the worker started fetching action inputs.", + "format": "google-datetime", + "type": "string" + }, + "outputUploadCompletedTimestamp": { + "description": "When the worker finished uploading action outputs.", + "format": "google-datetime", + "type": "string" + }, + "outputUploadStartTimestamp": { + "description": "When the worker started uploading action outputs.", + "format": "google-datetime", + "type": "string" + }, + "queuedTimestamp": { + "description": "When was the action added to the queue.", + "format": "google-datetime", + "type": "string" + }, + "worker": { + "description": "The name of the worker which ran the execution.", + "type": "string" + }, + "workerCompletedTimestamp": { + "description": "When the worker completed the action, including all stages.", + "format": "google-datetime", + "type": "string" + }, + "workerStartTimestamp": { + "description": "When the worker received the action.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecutionCapabilities": { + "description": "Capabilities of the remote execution system.", + "id": "BuildBazelRemoteExecutionV2ExecutionCapabilities", + "properties": { + "digestFunction": { + "description": "Remote execution may only support a single digest function.", + "enum": [ + "UNKNOWN", + "SHA256", + "SHA1", + "MD5", + "VSO", + "SHA384", + "SHA512", + "MURMUR3" + ], + "enumDescriptions": [ + "It is an error for the server to return this value.", + "The SHA-256 digest function.", + "The SHA-1 digest function.", + "The MD5 digest function.", + "The Microsoft \"VSO-Hash\" paged SHA256 digest function. See https://github.com/microsoft/BuildXL/blob/master/Documentation/Specs/PagedHash.md .", + "The SHA-384 digest function.", + "The SHA-512 digest function.", + "Murmur3 128-bit digest function, x64 variant. Note that this is not a cryptographic hash function and its collision properties are not strongly guaranteed. See https://github.com/aappleby/smhasher/wiki/MurmurHash3 ." + ], + "type": "string" + }, + "execEnabled": { + "description": "Whether remote execution is enabled for the particular server/instance.", + "type": "boolean" + }, + "executionPriorityCapabilities": { + "$ref": "BuildBazelRemoteExecutionV2PriorityCapabilities", + "description": "Supported execution priority range." + }, + "supportedNodeProperties": { + "description": "Supported node properties.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecutionPolicy": { + "description": "An `ExecutionPolicy` can be used to control the scheduling of the action.", + "id": "BuildBazelRemoteExecutionV2ExecutionPolicy", + "properties": { + "priority": { + "description": "The priority (relative importance) of this action. Generally, a lower value means that the action should be run sooner than actions having a greater priority value, but the interpretation of a given value is server- dependent. A priority of 0 means the *default* priority. Priorities may be positive or negative, and such actions should run later or sooner than actions having the default priority, respectively. The particular semantics of this field is up to the server. In particular, every server will have their own supported range of priorities, and will decide how these map into scheduling policy.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2FileNode": { + "description": "A `FileNode` represents a single file and associated metadata.", + "id": "BuildBazelRemoteExecutionV2FileNode", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the file's content." + }, + "isExecutable": { + "description": "True if file is executable, false otherwise.", + "type": "boolean" + }, + "name": { + "description": "The name of the file.", + "type": "string" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2FindMissingBlobsRequest": { + "description": "A request message for ContentAddressableStorage.FindMissingBlobs.", + "id": "BuildBazelRemoteExecutionV2FindMissingBlobsRequest", + "properties": { + "blobDigests": { + "description": "A list of the blobs to check.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2Digest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2FindMissingBlobsResponse": { + "description": "A response message for ContentAddressableStorage.FindMissingBlobs.", + "id": "BuildBazelRemoteExecutionV2FindMissingBlobsResponse", + "properties": { + "missingBlobDigests": { + "description": "A list of the blobs requested *not* present in the storage.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2Digest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2GetTreeResponse": { + "description": "A response message for ContentAddressableStorage.GetTree.", + "id": "BuildBazelRemoteExecutionV2GetTreeResponse", + "properties": { + "directories": { + "description": "The directories descended from the requested root.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2Directory" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If present, signifies that there are more results which the client can retrieve by passing this as the page_token in a subsequent request. If empty, signifies that this is the last page of results.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2LogFile": { + "description": "A `LogFile` is a log stored in the CAS.", + "id": "BuildBazelRemoteExecutionV2LogFile", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the log contents." + }, + "humanReadable": { + "description": "This is a hint as to the purpose of the log, and is set to true if the log is human-readable text that can be usefully displayed to a user, and false otherwise. For instance, if a command-line client wishes to print the server logs to the terminal for a failed action, this allows it to avoid displaying a binary file.", + "type": "boolean" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2NodeProperties": { + "description": "Node properties for FileNodes, DirectoryNodes, and SymlinkNodes. The server is responsible for specifying the properties that it accepts.", + "id": "BuildBazelRemoteExecutionV2NodeProperties", + "properties": { + "mtime": { + "description": "The file's last modification timestamp.", + "format": "google-datetime", + "type": "string" + }, + "properties": { + "description": "A list of string-based NodeProperties.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperty" + }, + "type": "array" + }, + "unixMode": { + "description": "The UNIX file mode, e.g., 0755.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2NodeProperty": { + "description": "A single property for FileNodes, DirectoryNodes, and SymlinkNodes. The server is responsible for specifying the property `name`s that it accepts. If permitted by the server, the same `name` may occur multiple times.", + "id": "BuildBazelRemoteExecutionV2NodeProperty", + "properties": { + "name": { + "description": "The property name.", + "type": "string" + }, + "value": { + "description": "The property value.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2OutputDirectory": { + "description": "An `OutputDirectory` is the output in an `ActionResult` corresponding to a directory's full contents rather than a single file.", + "id": "BuildBazelRemoteExecutionV2OutputDirectory", + "properties": { + "path": { + "description": "The full path of the directory relative to the working directory. The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash. The empty string value is allowed, and it denotes the entire working directory.", + "type": "string" + }, + "treeDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the encoded Tree proto containing the directory's contents." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2OutputFile": { + "description": "An `OutputFile` is similar to a FileNode, but it is used as an output in an `ActionResult`. It allows a full file path rather than only a name.", + "id": "BuildBazelRemoteExecutionV2OutputFile", + "properties": { + "contents": { + "description": "The contents of the file if inlining was requested. The server SHOULD NOT inline file contents unless requested by the client in the GetActionResultRequest message. The server MAY omit inlining, even if requested, and MUST do so if inlining would cause the response to exceed message size limits.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the file's content." + }, + "isExecutable": { + "description": "True if file is executable, false otherwise.", + "type": "boolean" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "path": { + "description": "The full path of the file relative to the working directory, including the filename. The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2OutputSymlink": { + "description": "An `OutputSymlink` is similar to a Symlink, but it is used as an output in an `ActionResult`. `OutputSymlink` is binary-compatible with `SymlinkNode`.", + "id": "BuildBazelRemoteExecutionV2OutputSymlink", + "properties": { + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "path": { + "description": "The full path of the symlink relative to the working directory, including the filename. The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash.", + "type": "string" + }, + "target": { + "description": "The target path of the symlink. The path separator is a forward slash `/`. The target path can be relative to the parent directory of the symlink or it can be an absolute path starting with `/`. Support for absolute paths can be checked using the Capabilities API. `..` components are allowed anywhere in the target path.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Platform": { + "description": "A `Platform` is a set of requirements, such as hardware, operating system, or compiler toolchain, for an Action's execution environment. A `Platform` is represented as a series of key-value pairs representing the properties that are required of the platform.", + "id": "BuildBazelRemoteExecutionV2Platform", + "properties": { + "properties": { + "description": "The properties that make up this platform. In order to ensure that equivalent `Platform`s always hash to the same value, the properties MUST be lexicographically sorted by name, and then by value. Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2PlatformProperty" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2PlatformProperty": { + "description": "A single property for the environment. The server is responsible for specifying the property `name`s that it accepts. If an unknown `name` is provided in the requirements for an Action, the server SHOULD reject the execution request. If permitted by the server, the same `name` may occur multiple times. The server is also responsible for specifying the interpretation of property `value`s. For instance, a property describing how much RAM must be available may be interpreted as allowing a worker with 16GB to fulfill a request for 8GB, while a property describing the OS environment on which the action must be performed may require an exact match with the worker's OS. The server MAY use the `value` of one or more properties to determine how it sets up the execution environment, such as by making specific system files available to the worker. Both names and values are typically case-sensitive. Note that the platform is implicitly part of the action digest, so even tiny changes in the names or values (like changing case) may result in different action cache entries.", + "id": "BuildBazelRemoteExecutionV2PlatformProperty", + "properties": { + "name": { + "description": "The property name.", + "type": "string" + }, + "value": { + "description": "The property value.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2PriorityCapabilities": { + "description": "Allowed values for priority in ResultsCachePolicy and ExecutionPolicy Used for querying both cache and execution valid priority ranges.", + "id": "BuildBazelRemoteExecutionV2PriorityCapabilities", + "properties": { + "priorities": { + "items": { + "$ref": "BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange": { + "description": "Supported range of priorities, including boundaries.", + "id": "BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange", + "properties": { + "maxPriority": { + "description": "The maximum numeric value for this priority range, which represents the least urgent task or shortest retained item.", + "format": "int32", + "type": "integer" + }, + "minPriority": { + "description": "The minimum numeric value for this priority range, which represents the most urgent task or longest retained item.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2RequestMetadata": { + "description": "An optional Metadata to attach to any RPC request to tell the server about an external context of the request. The server may use this for logging or other purposes. To use it, the client attaches the header to the call using the canonical proto serialization: * name: `build.bazel.remote.execution.v2.requestmetadata-bin` * contents: the base64 encoded binary `RequestMetadata` message. Note: the gRPC library serializes binary headers encoded in base 64 by default (https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests). Therefore, if the gRPC library is used to pass/retrieve this metadata, the user may ignore the base64 encoding and assume it is simply serialized as a binary message.", + "id": "BuildBazelRemoteExecutionV2RequestMetadata", + "properties": { + "actionId": { + "description": "An identifier that ties multiple requests to the same action. For example, multiple requests to the CAS, Action Cache, and Execution API are used in order to compile foo.cc.", + "type": "string" + }, + "actionMnemonic": { + "description": "A brief description of the kind of action, for example, CppCompile or GoLink. There is no standard agreed set of values for this, and they are expected to vary between different client tools.", + "type": "string" + }, + "configurationId": { + "description": "An identifier for the configuration in which the target was built, e.g. for differentiating building host tools or different target platforms. There is no expectation that this value will have any particular structure, or equality across invocations, though some client tools may offer these guarantees.", + "type": "string" + }, + "correlatedInvocationsId": { + "description": "An identifier to tie multiple tool invocations together. For example, runs of foo_test, bar_test and baz_test on a post-submit of a given patch.", + "type": "string" + }, + "targetId": { + "description": "An identifier for the target which produced this action. No guarantees are made around how many actions may relate to a single target.", + "type": "string" + }, + "toolDetails": { + "$ref": "BuildBazelRemoteExecutionV2ToolDetails", + "description": "The details for the tool invoking the requests." + }, + "toolInvocationId": { + "description": "An identifier that ties multiple actions together to a final result. For example, multiple actions are required to build and run foo_test.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ResultsCachePolicy": { + "description": "A `ResultsCachePolicy` is used for fine-grained control over how action outputs are stored in the CAS and Action Cache.", + "id": "BuildBazelRemoteExecutionV2ResultsCachePolicy", + "properties": { + "priority": { + "description": "The priority (relative importance) of this content in the overall cache. Generally, a lower value means a longer retention time or other advantage, but the interpretation of a given value is server-dependent. A priority of 0 means a *default* value, decided by the server. The particular semantics of this field is up to the server. In particular, every server will have their own supported range of priorities, and will decide how these map into retention/eviction policy.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ServerCapabilities": { + "description": "A response message for Capabilities.GetCapabilities.", + "id": "BuildBazelRemoteExecutionV2ServerCapabilities", + "properties": { + "cacheCapabilities": { + "$ref": "BuildBazelRemoteExecutionV2CacheCapabilities", + "description": "Capabilities of the remote cache system." + }, + "deprecatedApiVersion": { + "$ref": "BuildBazelSemverSemVer", + "description": "Earliest RE API version supported, including deprecated versions." + }, + "executionCapabilities": { + "$ref": "BuildBazelRemoteExecutionV2ExecutionCapabilities", + "description": "Capabilities of the remote execution system." + }, + "highApiVersion": { + "$ref": "BuildBazelSemverSemVer", + "description": "Latest RE API version supported." + }, + "lowApiVersion": { + "$ref": "BuildBazelSemverSemVer", + "description": "Earliest non-deprecated RE API version supported." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2SymlinkNode": { + "description": "A `SymlinkNode` represents a symbolic link.", + "id": "BuildBazelRemoteExecutionV2SymlinkNode", + "properties": { + "name": { + "description": "The name of the symlink.", + "type": "string" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "target": { + "description": "The target path of the symlink. The path separator is a forward slash `/`. The target path can be relative to the parent directory of the symlink or it can be an absolute path starting with `/`. Support for absolute paths can be checked using the Capabilities API. `..` components are allowed anywhere in the target path as logical canonicalization may lead to different behavior in the presence of directory symlinks (e.g. `foo/../bar` may not be the same as `bar`). To reduce potential cache misses, canonicalization is still recommended where this is possible without impacting correctness.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ToolDetails": { + "description": "Details for the tool used to call the API.", + "id": "BuildBazelRemoteExecutionV2ToolDetails", + "properties": { + "toolName": { + "description": "Name of the tool, e.g. bazel.", + "type": "string" + }, + "toolVersion": { + "description": "Version of the tool used for the request, e.g. 5.0.3.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Tree": { + "description": "A `Tree` contains all the Directory protos in a single directory Merkle tree, compressed into one message.", + "id": "BuildBazelRemoteExecutionV2Tree", + "properties": { + "children": { + "description": "All the child directories: the directories referred to by the root and, recursively, all its children. In order to reconstruct the directory tree, the client must take the digests of each of the child directories and then build up a tree starting from the `root`.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2Directory" + }, + "type": "array" + }, + "root": { + "$ref": "BuildBazelRemoteExecutionV2Directory", + "description": "The root directory in the tree." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2WaitExecutionRequest": { + "description": "A request message for WaitExecution.", + "id": "BuildBazelRemoteExecutionV2WaitExecutionRequest", + "properties": {}, + "type": "object" + }, + "BuildBazelSemverSemVer": { + "description": "The full version of a given tool.", + "id": "BuildBazelSemverSemVer", + "properties": { + "major": { + "description": "The major version, e.g 10 for 10.2.3.", + "format": "int32", + "type": "integer" + }, + "minor": { + "description": "The minor version, e.g. 2 for 10.2.3.", + "format": "int32", + "type": "integer" + }, + "patch": { + "description": "The patch version, e.g 3 for 10.2.3.", + "format": "int32", + "type": "integer" + }, + "prerelease": { + "description": "The pre-release version. Either this field or major/minor/patch fields must be filled. They are mutually exclusive. Pre-release versions are assumed to be earlier than any released versions.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotCommandDurations": { + "description": "CommandDuration contains the various duration metrics tracked when a bot performs a command.", + "id": "GoogleDevtoolsRemotebuildbotCommandDurations", + "properties": { + "casRelease": { + "description": "The time spent to release the CAS blobs used by the task.", + "format": "google-duration", + "type": "string" + }, + "cmWaitForAssignment": { + "description": "The time spent waiting for Container Manager to assign an asynchronous container for execution.", + "format": "google-duration", + "type": "string" + }, + "dockerPrep": { + "description": "The time spent preparing the command to be run in a Docker container (includes pulling the Docker image, if necessary).", + "format": "google-duration", + "type": "string" + }, + "dockerPrepStartTime": { + "description": "The timestamp when docker preparation begins.", + "format": "google-datetime", + "type": "string" + }, + "download": { + "description": "The time spent downloading the input files and constructing the working directory.", + "format": "google-duration", + "type": "string" + }, + "downloadStartTime": { + "description": "The timestamp when downloading the input files begins.", + "format": "google-datetime", + "type": "string" + }, + "execStartTime": { + "description": "The timestamp when execution begins.", + "format": "google-datetime", + "type": "string" + }, + "execution": { + "description": "The time spent executing the command (i.e., doing useful work).", + "format": "google-duration", + "type": "string" + }, + "isoPrepDone": { + "description": "The timestamp when preparation is done and bot starts downloading files.", + "format": "google-datetime", + "type": "string" + }, + "overall": { + "description": "The time spent completing the command, in total.", + "format": "google-duration", + "type": "string" + }, + "stdout": { + "description": "The time spent uploading the stdout logs.", + "format": "google-duration", + "type": "string" + }, + "upload": { + "description": "The time spent uploading the output files.", + "format": "google-duration", + "type": "string" + }, + "uploadStartTime": { + "description": "The timestamp when uploading the output files begins.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotCommandEvents": { + "description": "CommandEvents contains counters for the number of warnings and errors that occurred during the execution of a command.", + "id": "GoogleDevtoolsRemotebuildbotCommandEvents", + "properties": { + "cmUsage": { + "description": "Indicates if and how Container Manager is being used for task execution.", + "enum": [ + "CONFIG_NONE", + "CONFIG_MATCH", + "CONFIG_MISMATCH" + ], + "enumDescriptions": [ + "Container Manager is disabled or not running for this execution.", + "Container Manager is enabled and there was a matching container available for use during execution.", + "Container Manager is enabled, but there was no matching container available for execution." + ], + "type": "string" + }, + "dockerCacheHit": { + "description": "Indicates whether we are using a cached Docker image (true) or had to pull the Docker image (false) for this command.", + "type": "boolean" + }, + "dockerImageName": { + "description": "Docker Image name.", + "type": "string" + }, + "inputCacheMiss": { + "description": "The input cache miss ratio.", + "format": "float", + "type": "number" + }, + "numErrors": { + "description": "The number of errors reported.", + "format": "uint64", + "type": "string" + }, + "numWarnings": { + "description": "The number of warnings reported.", + "format": "uint64", + "type": "string" + }, + "outputLocation": { + "description": "Indicates whether output files and/or output directories were found relative to the execution root or to the user provided work directory or both or none.", + "enum": [ + "LOCATION_UNDEFINED", + "LOCATION_NONE", + "LOCATION_EXEC_ROOT_RELATIVE", + "LOCATION_WORKING_DIR_RELATIVE", + "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE", + "LOCATION_EXEC_ROOT_RELATIVE_OUTPUT_OUTSIDE_WORKING_DIR", + "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE_OUTPUT_OUTSIDE_WORKING_DIR" + ], + "enumDescriptions": [ + "Location is set to LOCATION_UNDEFINED for tasks where the working directorty is not specified or is identical to the execution root directory.", + "No output files or directories were found neither relative to the execution root directory nor relative to the working directory.", + "Output files or directories were found relative to the execution root directory but not relative to the working directory.", + "Output files or directories were found relative to the working directory but not relative to the execution root directory.", + "Output files or directories were found both relative to the execution root directory and relative to the working directory.", + "Output files or directories were found relative to the execution root directory but not relative to the working directory. In addition at least one output file or directory was found outside of the working directory such that a working-directory-relative-path would have needed to start with a `..`.", + "Output files or directories were found both relative to the execution root directory and relative to the working directory. In addition at least one exec-root-relative output file or directory was found outside of the working directory such that a working-directory-relative-path would have needed to start with a `..`." + ], + "type": "string" + }, + "usedAsyncContainer": { + "description": "Indicates whether an asynchronous container was used for execution.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotCommandStatus": { + "description": "The internal status of the command result.", + "id": "GoogleDevtoolsRemotebuildbotCommandStatus", + "properties": { + "code": { + "description": "The status code.", + "enum": [ + "OK", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "PERMISSION_DENIED", + "INTERNAL", + "ABORTED", + "FAILED_PRECONDITION", + "CLEANUP_ERROR", + "DOWNLOAD_INPUTS_ERROR", + "UNKNOWN", + "UPLOAD_OUTPUTS_ERROR", + "UPLOAD_OUTPUTS_BYTES_LIMIT_EXCEEDED", + "DOCKER_LOGIN_ERROR", + "DOCKER_IMAGE_PULL_ERROR", + "DOCKER_IMAGE_EXIST_ERROR", + "DUPLICATE_INPUTS", + "DOCKER_IMAGE_PERMISSION_DENIED", + "DOCKER_IMAGE_NOT_FOUND", + "WORKING_DIR_NOT_FOUND", + "WORKING_DIR_NOT_IN_BASE_DIR", + "DOCKER_UNAVAILABLE", + "NO_CUDA_CAPABLE_DEVICE", + "REMOTE_CAS_DOWNLOAD_ERROR", + "REMOTE_CAS_UPLOAD_ERROR", + "LOCAL_CASPROXY_NOT_RUNNING", + "DOCKER_CREATE_CONTAINER_ERROR", + "DOCKER_INVALID_ULIMIT", + "DOCKER_UNKNOWN_RUNTIME", + "DOCKER_UNKNOWN_CAPABILITY", + "DOCKER_UNKNOWN_ERROR", + "DOCKER_CREATE_COMPUTE_SYSTEM_ERROR", + "DOCKER_PREPARELAYER_ERROR", + "DOCKER_INCOMPATIBLE_OS_ERROR", + "DOCKER_CREATE_RUNTIME_FILE_NOT_FOUND", + "DOCKER_CREATE_RUNTIME_PERMISSION_DENIED", + "DOCKER_CREATE_PROCESS_FILE_NOT_FOUND", + "DOCKER_CREATE_COMPUTE_SYSTEM_INCORRECT_PARAMETER_ERROR", + "DOCKER_TOO_MANY_SYMBOLIC_LINK_LEVELS", + "LOCAL_CONTAINER_MANAGER_NOT_RUNNING", + "DOCKER_IMAGE_VPCSC_PERMISSION_DENIED", + "WORKING_DIR_NOT_RELATIVE", + "DOCKER_MISSING_CONTAINER" + ], + "enumDescriptions": [ + "The command succeeded.", + "The command input was invalid.", + "The command had passed its expiry time while it was still running.", + "The resources requested by the command were not found.", + "The command failed due to permission errors.", + "The command failed because of some invariants expected by the underlying system have been broken. This usually indicates a bug wit the system.", + "The command was aborted.", + "The command failed because the system is not in a state required for the command, e.g. the command inputs cannot be found on the server.", + "The bot failed to do the cleanup, e.g. unable to delete the command working directory or the command process.", + "The bot failed to download the inputs.", + "Unknown error.", + "The bot failed to upload the outputs.", + "The bot tried to upload files having a total size that is too large.", + "The bot failed to login to docker.", + "The bot failed to pull docker image.", + "The bot failed to check docker images.", + "The inputs contain duplicate files.", + "The bot doesn't have the permissions to pull docker images.", + "The docker image cannot be found.", + "Working directory is not found.", + "Working directory is not under the base directory", + "There are issues with docker service/runtime.", + "The command failed with \"no cuda-capable device is detected\" error.", + "The bot encountered errors from remote CAS when downloading blobs.", + "The bot encountered errors from remote CAS when uploading blobs.", + "The local casproxy is not running.", + "The bot couldn't start the container.", + "The docker ulimit is not valid.", + "The docker runtime is unknown.", + "The docker capability is unknown.", + "The command failed with unknown docker errors.", + "Docker failed to run containers with CreateComputeSystem error.", + "Docker failed to run containers with hcsshim::PrepareLayer error.", + "Docker incompatible operating system error.", + "Docker failed to create OCI runtime because of file not found.", + "Docker failed to create OCI runtime because of permission denied.", + "Docker failed to create process because of file not found.", + "Docker failed to run containers with CreateComputeSystem error that involves an incorrect parameter (more specific version of DOCKER_CREATE_COMPUTE_SYSTEM_ERROR that is user-caused).", + "Docker failed to create an overlay mount because of too many levels of symbolic links.", + "The local Container Manager is not running.", + "Docker failed because a request was denied by the organization's policy.", + "Working directory is not relative", + "Docker cannot find the container specified in the command. This error is likely to only occur if an asynchronous container is not running when the command is run." + ], + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotResourceUsage": { + "description": "ResourceUsage is the system resource usage of the host machine.", + "id": "GoogleDevtoolsRemotebuildbotResourceUsage", + "properties": { + "cpuUsedPercent": { + "format": "double", + "type": "number" + }, + "diskUsage": { + "$ref": "GoogleDevtoolsRemotebuildbotResourceUsageStat" + }, + "memoryUsage": { + "$ref": "GoogleDevtoolsRemotebuildbotResourceUsageStat" + }, + "totalDiskIoStats": { + "$ref": "GoogleDevtoolsRemotebuildbotResourceUsageIOStats" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotResourceUsageIOStats": { + "id": "GoogleDevtoolsRemotebuildbotResourceUsageIOStats", + "properties": { + "readBytesCount": { + "format": "uint64", + "type": "string" + }, + "readCount": { + "format": "uint64", + "type": "string" + }, + "readTimeMs": { + "format": "uint64", + "type": "string" + }, + "writeBytesCount": { + "format": "uint64", + "type": "string" + }, + "writeCount": { + "format": "uint64", + "type": "string" + }, + "writeTimeMs": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotResourceUsageStat": { + "id": "GoogleDevtoolsRemotebuildbotResourceUsageStat", + "properties": { + "total": { + "format": "uint64", + "type": "string" + }, + "used": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig": { + "description": "AcceleratorConfig defines the accelerator cards to attach to the VM.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig", + "properties": { + "acceleratorCount": { + "description": "The number of guest accelerator cards exposed to each VM.", + "format": "int64", + "type": "string" + }, + "acceleratorType": { + "description": "The type of accelerator to attach to each VM, e.g. \"nvidia-tesla-k80\" for nVidia Tesla K80.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale": { + "description": "Autoscale defines the autoscaling policy of a worker pool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale", + "properties": { + "maxSize": { + "description": "The maximal number of workers. Must be equal to or greater than min_size.", + "format": "int64", + "type": "string" + }, + "minSize": { + "description": "The minimal number of workers. Must be greater than 0.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest": { + "description": "The request used for `CreateInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest", + "properties": { + "instance": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance", + "description": "Specifies the instance to create. The name in the instance, if specified in the instance, is ignored." + }, + "instanceId": { + "description": "ID of the created instance. A valid `instance_id` must: be 6-50 characters long, contain only lowercase letters, digits, hyphens and underscores, start with a lowercase letter, and end with a lowercase letter or a digit.", + "type": "string" + }, + "parent": { + "description": "Resource name of the project containing the instance. Format: `projects/[PROJECT_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest": { + "description": "The request used for `CreateWorkerPool`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest", + "properties": { + "parent": { + "description": "Resource name of the instance in which to create the new worker pool. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + }, + "poolId": { + "description": "ID of the created worker pool. A valid pool ID must: be 6-50 characters long, contain only lowercase letters, digits, hyphens and underscores, start with a lowercase letter, and end with a lowercase letter or a digit.", + "type": "string" + }, + "workerPool": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool", + "description": "Specifies the worker pool to create. The name in the worker pool, if specified, is ignored." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest": { + "description": "The request used for `DeleteInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest", + "properties": { + "name": { + "description": "Name of the instance to delete. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest": { + "description": "The request used for DeleteWorkerPool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest", + "properties": { + "name": { + "description": "Name of the worker pool to delete. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy": { + "description": "FeaturePolicy defines features allowed to be used on RBE instances, as well as instance-wide behavior changes that take effect without opt-in or opt-out at usage time.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy", + "properties": { + "containerImageSources": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Which container image sources are allowed. Currently only RBE-supported registry (gcr.io) is allowed. One can allow all repositories under a project or one specific repository only. E.g. container_image_sources { policy: RESTRICTED allowed_values: [ \"gcr.io/project-foo\", \"gcr.io/project-bar/repo-baz\", ] } will allow any repositories under \"gcr.io/project-foo\" plus the repository \"gcr.io/project-bar/repo-baz\". Default (UNSPECIFIED) is equivalent to any source is allowed." + }, + "dockerAddCapabilities": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerAddCapabilities can be used or what capabilities are allowed." + }, + "dockerChrootPath": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerChrootPath can be used." + }, + "dockerNetwork": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerNetwork can be used or what network modes are allowed. E.g. one may allow `off` value only via `allowed_values`." + }, + "dockerPrivileged": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerPrivileged can be used." + }, + "dockerRunAsRoot": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerRunAsRoot can be used." + }, + "dockerRuntime": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerRuntime is allowed to be set or what runtimes are allowed. Note linux_isolation takes precedence, and if set, docker_runtime values may be rejected if they are incompatible with the selected isolation." + }, + "dockerSiblingContainers": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerSiblingContainers can be used." + }, + "linuxIsolation": { + "description": "linux_isolation allows overriding the docker runtime used for containers started on Linux.", + "enum": [ + "LINUX_ISOLATION_UNSPECIFIED", + "GVISOR", + "OFF" + ], + "enumDescriptions": [ + "Default value. Will be using Linux default runtime.", + "Use gVisor runsc runtime.", + "Use stardard Linux runtime. This has the same behaviour as unspecified, but it can be used to revert back from gVisor." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature": { + "description": "Defines whether a feature can be used or what values are accepted.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "properties": { + "allowedValues": { + "description": "A list of acceptable values. Only effective when the policy is `RESTRICTED`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "The policy of the feature.", + "enum": [ + "POLICY_UNSPECIFIED", + "ALLOWED", + "FORBIDDEN", + "RESTRICTED" + ], + "enumDescriptions": [ + "Default value, if not explicitly set. Equivalent to FORBIDDEN, unless otherwise documented on a specific Feature.", + "Feature is explicitly allowed.", + "Feature is forbidden. Requests attempting to leverage it will get an FailedPrecondition error, with a message like: \"Feature forbidden by FeaturePolicy: Feature on instance \"", + "Only the values specified in the `allowed_values` are allowed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest": { + "description": "The request used for `GetInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest", + "properties": { + "name": { + "description": "Name of the instance to retrieve. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest": { + "description": "The request used for GetWorkerPool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest", + "properties": { + "name": { + "description": "Name of the worker pool to retrieve. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance": { + "description": "Instance conceptually encapsulates all Remote Build Execution resources for remote builds. An instance consists of storage and compute resources (for example, `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for running remote builds. All Remote Build Execution API calls are scoped to an instance.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance", + "properties": { + "featurePolicy": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy", + "description": "The policy to define whether or not RBE features can be used or how they can be used." + }, + "location": { + "description": "The location is a GCP region. Currently only `us-central1` is supported.", + "type": "string" + }, + "loggingEnabled": { + "description": "Output only. Whether stack driver logging is enabled for the instance.", + "type": "boolean" + }, + "name": { + "description": "Output only. Instance resource name formatted as: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. Name should not be populated when creating an instance since it is provided in the `instance_id` field.", + "type": "string" + }, + "state": { + "description": "Output only. State of the instance.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "RUNNING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not a valid state, but the default value of the enum.", + "The instance is in state `CREATING` once `CreateInstance` is called and before the instance is ready for use.", + "The instance is in state `RUNNING` when it is ready for use.", + "An `INACTIVE` instance indicates that there is a problem that needs to be fixed. Such instances cannot be used for execution and instances that remain in this state for a significant period of time will be removed permanently." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest", + "properties": { + "parent": { + "description": "Resource name of the project. Format: `projects/[PROJECT_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse", + "properties": { + "instances": { + "description": "The list of instances in a given project.", + "items": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest", + "properties": { + "filter": { + "description": "Optional. A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. String values are case-insensitive. The comparison operator must be either `:`, `=`, `!=`, `>`, `>=`, `<=` or `<`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. You can also filter on nested fields. To filter on multiple expressions, you can separate expression using `AND` and `OR` operators, using parentheses to specify precedence. If neither operator is specified, `AND` is assumed. Examples: Include only pools with more than 100 reserved workers: `(worker_count > 100) (worker_config.reserved = true)` Include only pools with a certain label or machines of the e2-standard family: `worker_config.labels.key1 : * OR worker_config.machine_type: e2-standard`", + "type": "string" + }, + "parent": { + "description": "Resource name of the instance. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse", + "properties": { + "workerPools": { + "description": "The list of worker pools in a given instance.", + "items": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest": { + "description": "The request used for `UpdateInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest", + "properties": { + "instance": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance", + "description": "Specifies the instance to update." + }, + "loggingEnabled": { + "description": "Deprecated, use instance.logging_enabled instead. Whether to enable Stackdriver logging for this instance.", + "type": "boolean" + }, + "name": { + "description": "Deprecated, use instance.Name instead. Name of the instance to update. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + }, + "updateMask": { + "description": "The update mask applies to instance. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If an empty update_mask is provided, only the non-default valued field in the worker pool field will be updated. Note that in order to update a field to the default value (zero, false, empty string) an explicit update_mask must be provided.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest": { + "description": "The request used for UpdateWorkerPool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest", + "properties": { + "updateMask": { + "description": "The update mask applies to worker_pool. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If an empty update_mask is provided, only the non-default valued field in the worker pool field will be updated. Note that in order to update a field to the default value (zero, false, empty string) an explicit update_mask must be provided.", + "format": "google-fieldmask", + "type": "string" + }, + "workerPool": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool", + "description": "Specifies the worker pool to update." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig": { + "description": "Defines the configuration to be used for creating workers in the worker pool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig", + "properties": { + "accelerator": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig", + "description": "The accelerator card attached to each VM." + }, + "diskSizeGb": { + "description": "Required. Size of the disk attached to the worker, in GB. See https://cloud.google.com/compute/docs/disks/", + "format": "int64", + "type": "string" + }, + "diskType": { + "description": "Required. Disk Type to use for the worker. See [Storage options](https://cloud.google.com/compute/docs/disks/#introduction). Currently only `pd-standard` and `pd-ssd` are supported.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with the workers. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International letters are permitted. Label keys must start with a letter. Label values are optional. There can not be more than 64 labels per resource.", + "type": "object" + }, + "machineType": { + "description": "Required. Machine type of the worker, such as `e2-standard-2`. See https://cloud.google.com/compute/docs/machine-types for a list of supported machine types. Note that `f1-micro` and `g1-small` are not yet supported.", + "type": "string" + }, + "maxConcurrentActions": { + "description": "The maximum number of actions a worker can execute concurrently.", + "format": "int64", + "type": "string" + }, + "minCpuPlatform": { + "description": "Minimum CPU platform to use when creating the worker. See [CPU Platforms](https://cloud.google.com/compute/docs/cpu-platforms).", + "type": "string" + }, + "networkAccess": { + "description": "Determines the type of network access granted to workers. Possible values: - \"public\": Workers can connect to the public internet. - \"private\": Workers can only connect to Google APIs and services. - \"restricted-private\": Workers can only connect to Google APIs that are reachable through `restricted.googleapis.com` (`199.36.153.4/30`).", + "type": "string" + }, + "reserved": { + "description": "Determines whether the worker is reserved (equivalent to a Compute Engine on-demand VM and therefore won't be preempted). See [Preemptible VMs](https://cloud.google.com/preemptible-vms/) for more details.", + "type": "boolean" + }, + "soleTenantNodeType": { + "description": "The node type name to be used for sole-tenant nodes.", + "type": "string" + }, + "vmImage": { + "description": "The name of the image used by each VM.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool": { + "description": "A worker pool resource in the Remote Build Execution API.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool", + "properties": { + "autoscale": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale", + "description": "The autoscale policy to apply on a pool." + }, + "channel": { + "description": "Channel specifies the release channel of the pool.", + "type": "string" + }, + "name": { + "description": "WorkerPool resource name formatted as: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. name should not be populated when creating a worker pool since it is provided in the `poolId` field.", + "type": "string" + }, + "state": { + "description": "Output only. State of the worker pool.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "RUNNING", + "UPDATING", + "DELETING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not a valid state, but the default value of the enum.", + "The worker pool is in state `CREATING` once `CreateWorkerPool` is called and before all requested workers are ready.", + "The worker pool is in state `RUNNING` when all its workers are ready for use.", + "The worker pool is in state `UPDATING` once `UpdateWorkerPool` is called and before the new configuration has all the requested workers ready for use, and no older configuration has any workers. At that point the state transitions to `RUNNING`.", + "The worker pool is in state `DELETING` once the `Delete` method is called and before the deletion completes.", + "The worker pool is in state `INACTIVE` when the instance hosting the worker pool in not running." + ], + "type": "string" + }, + "workerConfig": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig", + "description": "Specifies the properties, such as machine type and disk size, used for creating workers in a worker pool." + }, + "workerCount": { + "description": "The desired number of workers in the worker pool. Must be a value between 0 and 15000.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2AdminTemp": { + "description": "AdminTemp is a prelimiary set of administration tasks. It's called \"Temp\" because we do not yet know the best way to represent admin tasks; it's possible that this will be entirely replaced in later versions of this API. If this message proves to be sufficient, it will be renamed in the alpha or beta release of this API. This message (suitably marshalled into a protobuf.Any) can be used as the inline_assignment field in a lease; the lease assignment field should simply be `\"admin\"` in these cases. This message is heavily based on Swarming administration tasks from the LUCI project (http://github.com/luci/luci-py/appengine/swarming).", + "id": "GoogleDevtoolsRemoteworkersV1test2AdminTemp", + "properties": { + "arg": { + "description": "The argument to the admin action; see `Command` for semantics.", + "type": "string" + }, + "command": { + "description": "The admin action; see `Command` for legal values.", + "enum": [ + "UNSPECIFIED", + "BOT_UPDATE", + "BOT_RESTART", + "BOT_TERMINATE", + "HOST_RESTART" + ], + "enumDescriptions": [ + "Illegal value.", + "Download and run a new version of the bot. `arg` will be a resource accessible via `ByteStream.Read` to obtain the new bot code.", + "Restart the bot without downloading a new version. `arg` will be a message to log.", + "Shut down the bot. `arg` will be a task resource name (similar to those in tasks.proto) that the bot can use to tell the server that it is terminating.", + "Restart the host computer. `arg` will be a message to log." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2Blob": { + "description": "Describes a blob of binary content with its digest.", + "id": "GoogleDevtoolsRemoteworkersV1test2Blob", + "properties": { + "contents": { + "description": "The contents of the blob.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "The digest of the blob. This should be verified by the receiver." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandOutputs": { + "description": "DEPRECATED - use CommandResult instead. Describes the actual outputs from the task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandOutputs", + "properties": { + "exitCode": { + "description": "exit_code is only fully reliable if the status' code is OK. If the task exceeded its deadline or was cancelled, the process may still produce an exit code as it is cancelled, and this will be populated, but a successful (zero) is unlikely to be correct unless the status code is OK.", + "format": "int32", + "type": "integer" + }, + "outputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "The output files. The blob referenced by the digest should contain one of the following (implementation-dependent): * A marshalled DirectoryMetadata of the returned filesystem * A LUCI-style .isolated file" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandOverhead": { + "description": "DEPRECATED - use CommandResult instead. Can be used as part of CompleteRequest.metadata, or are part of a more sophisticated message.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandOverhead", + "properties": { + "duration": { + "description": "The elapsed time between calling Accept and Complete. The server will also have its own idea of what this should be, but this excludes the overhead of the RPCs and the bot response time.", + "format": "google-duration", + "type": "string" + }, + "overhead": { + "description": "The amount of time *not* spent executing the command (ie uploading/downloading files).", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandResult": { + "description": "All information about the execution of a command, suitable for providing as the Bots interface's `Lease.result` field.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandResult", + "properties": { + "duration": { + "description": "The elapsed time between calling Accept and Complete. The server will also have its own idea of what this should be, but this excludes the overhead of the RPCs and the bot response time.", + "format": "google-duration", + "type": "string" + }, + "exitCode": { + "description": "The exit code of the process. An exit code of \"0\" should only be trusted if `status` has a code of OK (otherwise it may simply be unset).", + "format": "int32", + "type": "integer" + }, + "metadata": { + "description": "Implementation-dependent metadata about the task. Both servers and bots may define messages which can be encoded here; bots are free to provide metadata in multiple formats, and servers are free to choose one or more of the values to process and ignore others. In particular, it is *not* considered an error for the bot to provide the server with a field that it doesn't know about.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "outputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "The output files. The blob referenced by the digest should contain one of the following (implementation-dependent): * A marshalled DirectoryMetadata of the returned filesystem * A LUCI-style .isolated file" + }, + "overhead": { + "description": "The amount of time *not* spent executing the command (ie uploading/downloading files).", + "format": "google-duration", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "An overall status for the command. For example, if the command timed out, this might have a code of DEADLINE_EXCEEDED; if it was killed by the OS for memory exhaustion, it might have a code of RESOURCE_EXHAUSTED." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTask": { + "description": "Describes a shell-style task to execute, suitable for providing as the Bots interface's `Lease.payload` field.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTask", + "properties": { + "expectedOutputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs", + "description": "The expected outputs from the task." + }, + "inputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs", + "description": "The inputs to the task." + }, + "timeouts": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts", + "description": "The timeouts of this task." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs": { + "description": "Describes the inputs to a shell-style task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs", + "properties": { + "arguments": { + "description": "The command itself to run (e.g., argv). This field should be passed directly to the underlying operating system, and so it must be sensible to that operating system. For example, on Windows, the first argument might be \"C:\\Windows\\System32\\ping.exe\" - that is, using drive letters and backslashes. A command for a *nix system, on the other hand, would use forward slashes. All other fields in the RWAPI must consistently use forward slashes, since those fields may be interpretted by both the service and the bot.", + "items": { + "type": "string" + }, + "type": "array" + }, + "environmentVariables": { + "description": "All environment variables required by the task.", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable" + }, + "type": "array" + }, + "files": { + "description": "The input filesystem to be set up prior to the task beginning. The contents should be a repeated set of FileMetadata messages though other formats are allowed if better for the implementation (eg, a LUCI-style .isolated file). This field is repeated since implementations might want to cache the metadata, in which case it may be useful to break up portions of the filesystem that change frequently (eg, specific input files) from those that don't (eg, standard header files).", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest" + }, + "type": "array" + }, + "inlineBlobs": { + "description": "Inline contents for blobs expected to be needed by the bot to execute the task. For example, contents of entries in `files` or blobs that are indirectly referenced by an entry there. The bot should check against this list before downloading required task inputs to reduce the number of communications between itself and the remote CAS server.", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Blob" + }, + "type": "array" + }, + "workingDirectory": { + "description": "Directory from which a command is executed. It is a relative directory with respect to the bot's working directory (i.e., \"./\"). If it is non-empty, then it must exist under \"./\". Otherwise, \"./\" will be used.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable": { + "description": "An environment variable required by this task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable", + "properties": { + "name": { + "description": "The envvar name.", + "type": "string" + }, + "value": { + "description": "The envvar value.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs": { + "description": "Describes the expected outputs of the command.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs", + "properties": { + "directories": { + "description": "A list of expected directories, relative to the execution root. All paths MUST be delimited by forward slashes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "files": { + "description": "A list of expected files, relative to the execution root. All paths MUST be delimited by forward slashes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "stderrDestination": { + "description": "The destination to which any stderr should be sent. The method by which the bot should send the stream contents to that destination is not defined in this API. As examples, the destination could be a file referenced in the `files` field in this message, or it could be a URI that must be written via the ByteStream API.", + "type": "string" + }, + "stdoutDestination": { + "description": "The destination to which any stdout should be sent. The method by which the bot should send the stream contents to that destination is not defined in this API. As examples, the destination could be a file referenced in the `files` field in this message, or it could be a URI that must be written via the ByteStream API.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts": { + "description": "Describes the timeouts associated with this task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts", + "properties": { + "execution": { + "description": "This specifies the maximum time that the task can run, excluding the time required to download inputs or upload outputs. That is, the worker will terminate the task if it runs longer than this.", + "format": "google-duration", + "type": "string" + }, + "idle": { + "description": "This specifies the maximum amount of time the task can be idle - that is, go without generating some output in either stdout or stderr. If the process is silent for more than the specified time, the worker will terminate the task.", + "format": "google-duration", + "type": "string" + }, + "shutdown": { + "description": "If the execution or IO timeouts are exceeded, the worker will try to gracefully terminate the task and return any existing logs. However, tasks may be hard-frozen in which case this process will fail. This timeout specifies how long to wait for a terminated task to shut down gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g. SIGKILL on *nix, CTRL_BREAK_EVENT on Windows).", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2Digest": { + "description": "The CommandTask and CommandResult messages assume the existence of a service that can serve blobs of content, identified by a hash and size known as a \"digest.\" The method by which these blobs may be retrieved is not specified here, but a model implementation is in the Remote Execution API's \"ContentAddressibleStorage\" interface. In the context of the RWAPI, a Digest will virtually always refer to the contents of a file or a directory. The latter is represented by the byte-encoded Directory message.", + "id": "GoogleDevtoolsRemoteworkersV1test2Digest", + "properties": { + "hash": { + "description": "A string-encoded hash (eg \"1a2b3c\", not the byte array [0x1a, 0x2b, 0x3c]) using an implementation-defined hash algorithm (eg SHA-256).", + "type": "string" + }, + "sizeBytes": { + "description": "The size of the contents. While this is not strictly required as part of an identifier (after all, any given hash will have exactly one canonical size), it's useful in almost all cases when one might want to send or retrieve blobs of content and is included here for this reason.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2Directory": { + "description": "The contents of a directory. Similar to the equivalent message in the Remote Execution API.", + "id": "GoogleDevtoolsRemoteworkersV1test2Directory", + "properties": { + "directories": { + "description": "Any subdirectories", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata" + }, + "type": "array" + }, + "files": { + "description": "The files in this directory", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2FileMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata": { + "description": "The metadata for a directory. Similar to the equivalent message in the Remote Execution API.", + "id": "GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata", + "properties": { + "digest": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "A pointer to the contents of the directory, in the form of a marshalled Directory message." + }, + "path": { + "description": "The path of the directory, as in FileMetadata.path.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2FileMetadata": { + "description": "The metadata for a file. Similar to the equivalent message in the Remote Execution API.", + "id": "GoogleDevtoolsRemoteworkersV1test2FileMetadata", + "properties": { + "contents": { + "description": "If the file is small enough, its contents may also or alternatively be listed here.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "A pointer to the contents of the file. The method by which a client retrieves the contents from a CAS system is not defined here." + }, + "isExecutable": { + "description": "Properties of the file", + "type": "boolean" + }, + "path": { + "description": "The path of this file. If this message is part of the CommandOutputs.outputs fields, the path is relative to the execution root and must correspond to an entry in CommandTask.outputs.files. If this message is part of a Directory message, then the path is relative to the root of that directory. All paths MUST be delimited by forward slashes.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleLongrunningOperation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "id": "GoogleLongrunningOperation", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", + "type": "boolean" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleRpcStatus": { + "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", + "id": "GoogleRpcStatus", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Remote Build Execution API", + "version": "v2", + "version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/retail.v2beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/retail.v2beta.json new file mode 100644 index 0000000000000000000000000000000000000000..12cc2903ddc1ed8dd5c5220f02bf7704b626b514 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/retail.v2beta.json @@ -0,0 +1,8141 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://retail.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Retail", +"description": "Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/recommendations", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "retail:v2beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://retail.mtls.googleapis.com/", +"name": "retail", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"getAlertConfig": { +"description": "Get the AlertConfig of the requested project.", +"flatPath": "v2beta/projects/{projectsId}/alertConfig", +"httpMethod": "GET", +"id": "retail.projects.getAlertConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full AlertConfig resource name. Format: projects/{project_number}/alertConfig", +"location": "path", +"pattern": "^projects/[^/]+/alertConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaAlertConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateAlertConfig": { +"description": "Update the alert config of the requested project.", +"flatPath": "v2beta/projects/{projectsId}/alertConfig", +"httpMethod": "PATCH", +"id": "retail.projects.updateAlertConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. The name of the AlertConfig singleton resource. Format: projects/*/alertConfig", +"location": "path", +"pattern": "^projects/[^/]+/alertConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided AlertConfig to update. If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaAlertConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaAlertConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"locations": { +"resources": { +"catalogs": { +"methods": { +"completeQuery": { +"description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.completeQuery", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"dataset": { +"description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail: This option requires enabling auto-learning function first. See [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset).", +"location": "query", +"type": "string" +}, +"deviceType": { +"description": "The device type context for completion suggestions. We recommend that you leave this field empty. It can apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", +"location": "query", +"type": "string" +}, +"enableAttributeSuggestions": { +"description": "If true, attribute suggestions are enabled and provided in the response. This field is only available for the \"cloud-retail\" dataset.", +"location": "query", +"type": "boolean" +}, +"entity": { +"description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", +"location": "query", +"type": "string" +}, +"languageCodes": { +"description": "Note that this field applies for `user-data` dataset only. For requests with `cloud-retail` dataset, setting this field has no effect. The language filters applied to the output suggestions. If set, it should contain the language of the query. If not set, suggestions are returned without considering language restrictions. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of language codes is 3.", +"location": "query", +"repeated": true, +"type": "string" +}, +"maxSuggestions": { +"description": "Completion max suggestions. If left unset or set to 0, then will fallback to the configured value CompletionConfig.max_suggestions. The maximum allowed max suggestions is 20. If it is set higher, it will be capped by 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"query": { +"description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.", +"location": "query", +"type": "string" +}, +"visitorId": { +"description": "Required field. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+catalog}:completeQuery", +"response": { +"$ref": "GoogleCloudRetailV2betaCompleteQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"exportAnalyticsMetrics": { +"description": "Exports analytics metrics. `Operation.response` is of type `ExportAnalyticsMetricsResponse`. `Operation.metadata` is of type `ExportMetadata`.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:exportAnalyticsMetrics", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.exportAnalyticsMetrics", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Full resource name of the parent catalog. Expected format: `projects/*/locations/*/catalogs/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+catalog}:exportAnalyticsMetrics", +"request": { +"$ref": "GoogleCloudRetailV2betaExportAnalyticsMetricsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getAttributesConfig": { +"description": "Gets an AttributesConfig.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getAttributesConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaAttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getCompletionConfig": { +"description": "Gets a CompletionConfig.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getCompletionConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full CompletionConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaCompletionConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDefaultBranch": { +"description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getDefaultBranch", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+catalog}:getDefaultBranch", +"response": { +"$ref": "GoogleCloudRetailV2betaGetDefaultBranchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getGenerativeQuestionFeature": { +"description": "Manages overal generative question feature state -- enables toggling feature on and off.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestionFeature", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getGenerativeQuestionFeature", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+catalog}/generativeQuestionFeature", +"response": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionsFeatureConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all the Catalogs associated with the project.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of Catalogs to return. If unspecified, defaults to 50. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token ListCatalogsResponse.next_page_token, received from a previous CatalogService.ListCatalogs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to CatalogService.ListCatalogs must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account resource name with an associated location. If the caller does not have permission to list Catalogs under this location, regardless of whether or not this location exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/catalogs", +"response": { +"$ref": "GoogleCloudRetailV2betaListCatalogsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the Catalogs.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. The fully qualified resource name of the catalog.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided Catalog to update. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaCatalog" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaCatalog" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setDefaultBranch": { +"description": "Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using \"default_branch\" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:setDefaultBranch", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.setDefaultBranch", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+catalog}:setDefaultBranch", +"request": { +"$ref": "GoogleCloudRetailV2betaSetDefaultBranchRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateAttributesConfig": { +"description": "Updates the AttributesConfig. The catalog attributes in the request will be updated in the catalog, or inserted if they do not exist. Existing catalog attributes not included in the request will remain unchanged. Attributes that are assigned to products, but do not exist at the catalog level, are always included in the response. The product attribute is assigned default values for missing catalog attribute fields, e.g., searchable and dynamic facetable options.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateAttributesConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided AttributesConfig to update. The following is the only supported field: * AttributesConfig.catalog_attributes If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaAttributesConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaAttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateCompletionConfig": { +"description": "Updates the CompletionConfigs.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateCompletionConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided CompletionConfig to update. The following are the only supported fields: * CompletionConfig.matching_order * CompletionConfig.max_suggestions * CompletionConfig.min_prefix_length * CompletionConfig.auto_learning If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaCompletionConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaCompletionConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateGenerativeQuestion": { +"description": "Allows management of individual questions.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestion", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateGenerativeQuestion", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Resource name of the catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided GenerativeQuestionConfig to update. The following are NOT supported: * GenerativeQuestionConfig.frequency If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+catalog}/generativeQuestion", +"request": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateGenerativeQuestionFeature": { +"description": "Manages overal generative question feature state -- enables toggling feature on and off.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestionFeature", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateGenerativeQuestionFeature", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Resource name of the affected catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided GenerativeQuestionsFeatureConfig to update. If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+catalog}/generativeQuestionFeature", +"request": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionsFeatureConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionsFeatureConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attributesConfig": { +"methods": { +"addCatalogAttribute": { +"description": "Adds the specified CatalogAttribute to the AttributesConfig. If the CatalogAttribute to add already exists, an ALREADY_EXISTS error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:addCatalogAttribute", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.addCatalogAttribute", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+attributesConfig}:addCatalogAttribute", +"request": { +"$ref": "GoogleCloudRetailV2betaAddCatalogAttributeRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaAttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"batchRemoveCatalogAttributes": { +"description": "Removes all specified CatalogAttributes from the AttributesConfig.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:batchRemoveCatalogAttributes", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.batchRemoveCatalogAttributes", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. The attributes config resource shared by all catalog attributes being deleted. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+attributesConfig}:batchRemoveCatalogAttributes", +"request": { +"$ref": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeCatalogAttribute": { +"description": "Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:removeCatalogAttribute", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.removeCatalogAttribute", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+attributesConfig}:removeCatalogAttribute", +"request": { +"$ref": "GoogleCloudRetailV2betaRemoveCatalogAttributeRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaAttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceCatalogAttribute": { +"description": "Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the same CatalogAttribute.key. If the CatalogAttribute to replace does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:replaceCatalogAttribute", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.replaceCatalogAttribute", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+attributesConfig}:replaceCatalogAttribute", +"request": { +"$ref": "GoogleCloudRetailV2betaReplaceCatalogAttributeRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaAttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"branches": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.branches.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"products": { +"methods": { +"addFulfillmentPlaces": { +"description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+product}:addFulfillmentPlaces", +"request": { +"$ref": "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"addLocalInventories": { +"description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+product}:addLocalInventories", +"request": { +"$ref": "GoogleCloudRetailV2betaAddLocalInventoriesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a Product.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+parent}/products", +"request": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Product.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.branches.products.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to delete does not exist, a NOT_FOUND error is returned. The Product to delete can neither be a Product.Type.COLLECTION Product member nor a Product.Type.PRIMARY Product with more than one variants. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named Product will be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports multiple Products.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:export", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of a Branch, and `default_branch` for branch_id component is supported. For example `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/products:export", +"request": { +"$ref": "GoogleCloudRetailV2betaExportProductsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Product.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.branches.products.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the requested Product does not exist, a NOT_FOUND error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Bulk import of multiple Products. Request processing may be synchronous. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:import", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires products.create permission. If updateMask is specified, requires products.update permission.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/products:import", +"request": { +"$ref": "GoogleCloudRetailV2betaImportProductsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Gets a list of Products.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.branches.products.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = \"some_product_id\"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = \"some_product_id\"` * List Products with a partibular type. For example: `type = \"PRIMARY\"` `type = \"VARIANT\"` `type = \"COLLECTION\"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If \"*\" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+parent}/products", +"response": { +"$ref": "GoogleCloudRetailV2betaListProductsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Product.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.branches.products.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. The attribute key can be updated by setting the mask path as \"attributes.${key_name}\". If a key name is present in the mask but not in the patching product from the request, this key will be deleted after the update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"purge": { +"description": "Permanently deletes all selected Products under a branch. This process is asynchronous. If the request is valid, the removal will be enqueued and processed offline. Depending on the number of Products, this operation could take hours to complete. Before the operation completes, some Products may still be returned by ProductService.GetProduct or ProductService.ListProducts. Depending on the number of Products, this operation could take hours to complete. To get a sample of Products that would be deleted, set PurgeProductsRequest.force to false.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:purge", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.purge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the branch under which the products are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}/branches/${branchId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/products:purge", +"request": { +"$ref": "GoogleCloudRetailV2betaPurgeProductsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeFulfillmentPlaces": { +"description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+product}:removeFulfillmentPlaces", +"request": { +"$ref": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeLocalInventories": { +"description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+product}:removeLocalInventories", +"request": { +"$ref": "GoogleCloudRetailV2betaRemoveLocalInventoriesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setInventory": { +"description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.setInventory", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:setInventory", +"request": { +"$ref": "GoogleCloudRetailV2betaSetInventoryRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"completionData": { +"methods": { +"import": { +"description": "Bulk import of processed completion dataset. Request processing is asynchronous. Partial updating is not supported. The operation is successfully finished only after the imported suggestions are indexed successfully and ready for serving. The process takes hours. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.completionData.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/completionData:import", +"request": { +"$ref": "GoogleCloudRetailV2betaImportCompletionDataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"controls": { +"methods": { +"create": { +"description": "Creates a Control. If the Control to create already exists, an ALREADY_EXISTS error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.controls.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"controlId": { +"description": "Required. The ID to use for the Control, which will become the final component of the Control's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/controls", +"request": { +"$ref": "GoogleCloudRetailV2betaControl" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaControl" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Control. If the Control to delete does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.controls.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Control to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Control.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.controls.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Control to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaControl" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Controls by their parent Catalog.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.controls.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List controls that are used in a single ServingConfig: 'serving_config = \"boosted_home_page_cvr\"'", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListControls` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/controls", +"response": { +"$ref": "GoogleCloudRetailV2betaListControlsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.controls.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided Control to update. The following are NOT supported: * Control.name If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaControl" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaControl" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"generativeQuestion": { +"methods": { +"batchUpdate": { +"description": "Allows management of multiple questions.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestion:batchUpdate", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.generativeQuestion.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/generativeQuestion:batchUpdate", +"request": { +"$ref": "GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"generativeQuestions": { +"methods": { +"list": { +"description": "Returns all questions for a given catalog.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestions", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.generativeQuestions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/generativeQuestions", +"response": { +"$ref": "GoogleCloudRetailV2betaListGenerativeQuestionConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"models": { +"methods": { +"create": { +"description": "Creates a new model.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dryRun": { +"description": "Optional. Whether to run a dry run to validate the request (without actually creating the model).", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The parent resource under which to create the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/models", +"request": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing model.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.models.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Model to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a model.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.models.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Model to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all the models linked to this event store.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.models.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListModels` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent for which to list models. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/models", +"response": { +"$ref": "GoogleCloudRetailV2betaListModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update of model metadata. Only fields that currently can be updated are: `filtering_option` and `periodic_tuning_state`. If other values are provided, this API method ignores them.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.models.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided 'model' to update. If not set, by default updates all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pause": { +"description": "Pauses the training of an existing model.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:pause", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to pause. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:pause", +"request": { +"$ref": "GoogleCloudRetailV2betaPauseModelRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resumes the training of an existing model.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:resume", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to resume. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:resume", +"request": { +"$ref": "GoogleCloudRetailV2betaResumeModelRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"tune": { +"description": "Tunes an existing model.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:tune", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.tune", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the model to tune. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:tune", +"request": { +"$ref": "GoogleCloudRetailV2betaTuneModelRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"placements": { +"methods": { +"predict": { +"description": "Makes a recommendation prediction.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:predict", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.placements.predict", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+placement}:predict", +"request": { +"$ref": "GoogleCloudRetailV2betaPredictRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaPredictResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.placements.search", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+placement}:search", +"request": { +"$ref": "GoogleCloudRetailV2betaSearchRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaSearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"servingConfigs": { +"methods": { +"addControl": { +"description": "Enables a Control on the specified ServingConfig. The control is added in the last position of the list of controls it belongs to (e.g. if it's a facet spec control it will be applied in the last position of servingConfig.facetSpecIds) Returns a ALREADY_EXISTS error if the control has already been applied. Returns a FAILED_PRECONDITION error if the addition could exceed maximum number of control allowed for that type of control.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:addControl", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.addControl", +"parameterOrder": [ +"servingConfig" +], +"parameters": { +"servingConfig": { +"description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+servingConfig}:addControl", +"request": { +"$ref": "GoogleCloudRetailV2betaAddControlRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a ServingConfig. A maximum of 100 ServingConfigs are allowed in a Catalog, otherwise a FAILED_PRECONDITION error is returned.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Full resource name of parent. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"servingConfigId": { +"description": "Required. The ID to use for the ServingConfig, which will become the final component of the ServingConfig's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+parent}/servingConfigs", +"request": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.servingConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ServingConfig to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.servingConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ServingConfig to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all ServingConfigs linked to this catalog.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.servingConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return. If unspecified, defaults to 100. If a value greater than 100 is provided, at most 100 results are returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListServingConfigs` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/servingConfigs", +"response": { +"$ref": "GoogleCloudRetailV2betaListServingConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a ServingConfig.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.servingConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided ServingConfig to update. The following are NOT supported: * ServingConfig.name If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"predict": { +"description": "Makes a recommendation prediction.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:predict", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.predict", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+placement}:predict", +"request": { +"$ref": "GoogleCloudRetailV2betaPredictRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaPredictResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeControl": { +"description": "Disables a Control on the specified ServingConfig. The control is removed from the ServingConfig. Returns a NOT_FOUND error if the Control is not enabled for the ServingConfig.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:removeControl", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.removeControl", +"parameterOrder": [ +"servingConfig" +], +"parameters": { +"servingConfig": { +"description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+servingConfig}:removeControl", +"request": { +"$ref": "GoogleCloudRetailV2betaRemoveControlRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:search", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.search", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+placement}:search", +"request": { +"$ref": "GoogleCloudRetailV2betaSearchRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaSearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"userEvents": { +"methods": { +"collect": { +"description": "Writes a single user event from the browser. For larger user event payload over 16 KB, the POST method should be used instead, otherwise a 400 Bad Request error is returned. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:collect", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.collect", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/userEvents:collect", +"request": { +"$ref": "GoogleCloudRetailV2betaCollectUserEventRequest" +}, +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports user events. `Operation.response` is of type `ExportResponse`. `Operation.metadata` is of type `ExportMetadata`.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:export", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of a Catalog. For example `projects/1234/locations/global/catalogs/default_catalog`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/userEvents:export", +"request": { +"$ref": "GoogleCloudRetailV2betaExportUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. `Operation.response` is of type `ImportResponse`. Note that it is possible for a subset of the items to be successfully inserted. `Operation.metadata` is of type `ImportMetadata`.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:import", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. `projects/1234/locations/global/catalogs/default_catalog`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/userEvents:import", +"request": { +"$ref": "GoogleCloudRetailV2betaImportUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"purge": { +"description": "Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:purge", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.purge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the catalog under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/userEvents:purge", +"request": { +"$ref": "GoogleCloudRetailV2betaPurgeUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rejoin": { +"description": "Starts a user-event rejoin operation with latest product catalog. Events are not annotated with detailed product information for products that are missing from the catalog when the user event is ingested. These events are stored as unjoined events with limited usage on training and serving. You can use this method to start a join operation on specified events with the latest version of product catalog. You can also use this method to correct events joined with the wrong product catalog. A rejoin operation can take hours or days to complete.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:rejoin", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.rejoin", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/userEvents:rejoin", +"request": { +"$ref": "GoogleCloudRetailV2betaRejoinUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"write": { +"description": "Writes a single user event.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:write", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.write", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"writeAsync": { +"description": "If set to true, the user event will be written asynchronously after validation, and the API will respond without waiting for the write. Therefore, silent failures can occur even if the API returns success. In case of silent failures, error messages can be found in Stackdriver logs.", +"location": "query", +"type": "boolean" +} +}, +"path": "v2beta/{+parent}/userEvents:write", +"request": { +"$ref": "GoogleCloudRetailV2betaUserEvent" +}, +"response": { +"$ref": "GoogleCloudRetailV2betaUserEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "retail.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2beta/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2beta/projects/{projectsId}/operations", +"httpMethod": "GET", +"id": "retail.projects.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20250107", +"rootUrl": "https://retail.googleapis.com/", +"schemas": { +"GoogleApiHttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "GoogleApiHttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingErrorContext": { +"description": "A description of the context in which an error occurred.", +"id": "GoogleCloudRetailLoggingErrorContext", +"properties": { +"httpRequest": { +"$ref": "GoogleCloudRetailLoggingHttpRequestContext", +"description": "The HTTP request which was processed when the error was triggered." +}, +"reportLocation": { +"$ref": "GoogleCloudRetailLoggingSourceLocation", +"description": "The location in the source code where the decision was made to report the error, usually the place where it was logged." +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingErrorLog": { +"description": "An error log which is reported to the Error Reporting system. This proto a superset of google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent.", +"id": "GoogleCloudRetailLoggingErrorLog", +"properties": { +"context": { +"$ref": "GoogleCloudRetailLoggingErrorContext", +"description": "A description of the context in which the error occurred." +}, +"importPayload": { +"$ref": "GoogleCloudRetailLoggingImportErrorContext", +"description": "The error payload that is populated on LRO import APIs." +}, +"message": { +"description": "A message describing the error.", +"type": "string" +}, +"requestPayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The API request payload, represented as a protocol buffer. Most API request types are supported. For example: \"type.googleapis.com/google.cloud.retail.v2.ProductService.CreateProductRequest\" \"type.googleapis.com/google.cloud.retail.v2.UserEventService.WriteUserEventRequest\"", +"type": "object" +}, +"responsePayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The API response payload, represented as a protocol buffer. This is used to log some \"soft errors\", where the response is valid but we consider there are some quality issues like unjoined events. The following API responses are supported and no PII is included: \"google.cloud.retail.v2.PredictionService.Predict\" \"google.cloud.retail.v2.UserEventService.WriteUserEvent\" \"google.cloud.retail.v2.UserEventService.CollectUserEvent\"", +"type": "object" +}, +"serviceContext": { +"$ref": "GoogleCloudRetailLoggingServiceContext", +"description": "The service context in which this error has occurred." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The RPC status associated with the error log." +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingHttpRequestContext": { +"description": "HTTP request data that is related to a reported error.", +"id": "GoogleCloudRetailLoggingHttpRequestContext", +"properties": { +"responseStatusCode": { +"description": "The HTTP response status code for the request.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingImportErrorContext": { +"description": "The error payload that is populated on LRO import APIs, including \"google.cloud.retail.v2.ProductService.ImportProducts\" and \"google.cloud.retail.v2.EventService.ImportUserEvents\".", +"id": "GoogleCloudRetailLoggingImportErrorContext", +"properties": { +"catalogItem": { +"description": "The detailed content which caused the error on importing a catalog item.", +"type": "string" +}, +"gcsPath": { +"description": "Cloud Storage file path of the import source. Can be set for batch operation error.", +"type": "string" +}, +"lineNumber": { +"description": "Line number of the content in file. Should be empty for permission or batch operation error.", +"type": "string" +}, +"operationName": { +"description": "The operation resource name of the LRO.", +"type": "string" +}, +"product": { +"description": "The detailed content which caused the error on importing a product.", +"type": "string" +}, +"userEvent": { +"description": "The detailed content which caused the error on importing a user event.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingServiceContext": { +"description": "Describes a running service that sends errors.", +"id": "GoogleCloudRetailLoggingServiceContext", +"properties": { +"service": { +"description": "An identifier of the service. For example, \"retail.googleapis.com\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingSourceLocation": { +"description": "Indicates a location in the source code of the service for which errors are reported.", +"id": "GoogleCloudRetailLoggingSourceLocation", +"properties": { +"functionName": { +"description": "Human-readable name of a function or method. For example, \"google.cloud.retail.v2.UserEventService.ImportUserEvents\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AddFulfillmentPlacesResponse": { +"description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AddLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2AddLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AddLocalInventoriesResponse": { +"description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2AddLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2BigQueryOutputResult": { +"description": "A BigQuery output result.", +"id": "GoogleCloudRetailV2BigQueryOutputResult", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableId": { +"description": "The ID of a BigQuery Table.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CreateModelMetadata": { +"description": "Metadata associated with a create operation.", +"id": "GoogleCloudRetailV2CreateModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportAnalyticsMetricsResponse": { +"description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2ExportAnalyticsMetricsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2OutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportErrorsConfig": { +"description": "Configuration of destination for Export related errors.", +"id": "GoogleCloudRetailV2ExportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportMetadata": { +"description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2ExportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2GcsOutputResult": { +"description": "A Gcs output result.", +"id": "GoogleCloudRetailV2GcsOutputResult", +"properties": { +"outputUri": { +"description": "The uri of Gcs output", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportCompletionDataResponse": { +"description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", +"id": "GoogleCloudRetailV2ImportCompletionDataResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRetailV2ImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2ImportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field is never set.", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were processed successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportProductsResponse": { +"description": "Response of the ImportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2ImportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportUserEventsResponse": { +"description": "Response of the ImportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2ImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRetailV2UserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Model": { +"description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", +"id": "GoogleCloudRetailV2Model", +"properties": { +"createTime": { +"description": "Output only. Timestamp the Recommendation Model was created at.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataState": { +"description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"DATA_OK", +"DATA_ERROR" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has sufficient training data.", +"The model does not have sufficient training data. Error messages can be queried via Stackdriver." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", +"type": "string" +}, +"filteringOption": { +"description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"lastTuneTime": { +"description": "Output only. The timestamp when the latest successful tune finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFeaturesConfig": { +"$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", +"description": "Optional. Additional model features config." +}, +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"periodicTuningState": { +"description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", +"enum": [ +"PERIODIC_TUNING_STATE_UNSPECIFIED", +"PERIODIC_TUNING_DISABLED", +"ALL_TUNING_DISABLED", +"PERIODIC_TUNING_ENABLED" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", +"The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", +"The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." +], +"type": "string" +}, +"servingConfigLists": { +"description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", +"items": { +"$ref": "GoogleCloudRetailV2ModelServingConfigList" +}, +"readOnly": true, +"type": "array" +}, +"servingState": { +"description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"TUNED" +], +"enumDescriptions": [ +"Unspecified serving state.", +"The model is not serving.", +"The model is serving and can be queried.", +"The model is trained on tuned hyperparameters and can be queried." +], +"readOnly": true, +"type": "string" +}, +"trainingState": { +"description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", +"enum": [ +"TRAINING_STATE_UNSPECIFIED", +"PAUSED", +"TRAINING" +], +"enumDescriptions": [ +"Unspecified training state.", +"The model training is paused.", +"The model is training." +], +"type": "string" +}, +"tuningOperation": { +"description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { +"description": "Additional configs for the frequently-bought-together model type.", +"id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", +"properties": { +"contextProductsType": { +"description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"enum": [ +"CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", +"SINGLE_CONTEXT_PRODUCT", +"MULTIPLE_CONTEXT_PRODUCTS" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", +"Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ModelModelFeaturesConfig": { +"description": "Additional model features config.", +"id": "GoogleCloudRetailV2ModelModelFeaturesConfig", +"properties": { +"frequentlyBoughtTogetherConfig": { +"$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", +"description": "Additional configs for frequently-bought-together models." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ModelServingConfigList": { +"description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", +"id": "GoogleCloudRetailV2ModelServingConfigList", +"properties": { +"servingConfigIds": { +"description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2OutputResult": { +"description": "Output result that stores the information about where the exported data is stored.", +"id": "GoogleCloudRetailV2OutputResult", +"properties": { +"bigqueryResult": { +"description": "The BigQuery location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2BigQueryOutputResult" +}, +"type": "array" +}, +"gcsResult": { +"description": "The Google Cloud Storage location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2GcsOutputResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeMetadata": { +"description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2PurgeMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeProductsMetadata": { +"description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2PurgeProductsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were deleted successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeProductsResponse": { +"description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2PurgeProductsResponse", +"properties": { +"purgeCount": { +"description": "The total count of products purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"purgeSample": { +"description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeUserEventsResponse": { +"description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2PurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RejoinUserEventsMetadata": { +"description": "Metadata for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2RejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RejoinUserEventsResponse": { +"description": "Response message for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2RejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest product catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { +"description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2RemoveLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveLocalInventoriesResponse": { +"description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2RemoveLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2SetInventoryMetadata": { +"description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2SetInventoryMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2SetInventoryResponse": { +"description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2SetInventoryResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2TuneModelMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRetailV2TuneModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2TuneModelResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRetailV2TuneModelResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2UserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRetailV2UserEventImportSummary", +"properties": { +"joinedEventsCount": { +"description": "Count of user events imported with complete existing catalog information.", +"format": "int64", +"type": "string" +}, +"unjoinedEventsCount": { +"description": "Count of user events imported, but with catalog information not found in the imported catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { +"description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddLocalInventoriesResponse": { +"description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2alphaAddLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaBigQueryOutputResult": { +"description": "A BigQuery output result.", +"id": "GoogleCloudRetailV2alphaBigQueryOutputResult", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableId": { +"description": "The ID of a BigQuery Table.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata": { +"description": "Common metadata related to the progress of the operations.", +"id": "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaCreateModelMetadata": { +"description": "Metadata associated with a create operation.", +"id": "GoogleCloudRetailV2alphaCreateModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaEnrollSolutionMetadata": { +"description": "Metadata related to the EnrollSolution method. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaEnrollSolutionMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaEnrollSolutionResponse": { +"description": "Response for EnrollSolution method.", +"id": "GoogleCloudRetailV2alphaEnrollSolutionResponse", +"properties": { +"enrolledSolution": { +"description": "Retail API solution that the project has enrolled.", +"enum": [ +"SOLUTION_TYPE_UNSPECIFIED", +"SOLUTION_TYPE_RECOMMENDATION", +"SOLUTION_TYPE_SEARCH" +], +"enumDescriptions": [ +"Default value.", +"Used for Recommendations AI.", +"Used for Retail Search." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportAnalyticsMetricsResponse": { +"description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaExportAnalyticsMetricsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2alphaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportErrorsConfig": { +"description": "Configuration of destination for Export related errors.", +"id": "GoogleCloudRetailV2alphaExportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportMetadata": { +"description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaExportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportProductsResponse": { +"description": "Response of the ExportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaExportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2alphaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportUserEventsResponse": { +"description": "Response of the ExportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaExportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2alphaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaGcsOutputResult": { +"description": "A Gcs output result.", +"id": "GoogleCloudRetailV2alphaGcsOutputResult", +"properties": { +"outputUri": { +"description": "The uri of Gcs output", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportCompletionDataResponse": { +"description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", +"id": "GoogleCloudRetailV2alphaImportCompletionDataResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRetailV2alphaImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaImportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field is never set.", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were processed successfully.", +"format": "int64", +"type": "string" +}, +"transformedUserEventsMetadata": { +"$ref": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", +"description": "Metadata related to transform user events." +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportProductsResponse": { +"description": "Response of the ImportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaImportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportUserEventsResponse": { +"description": "Response of the ImportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRetailV2alphaUserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaMerchantCenterAccountLink": { +"description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", +"id": "GoogleCloudRetailV2alphaMerchantCenterAccountLink", +"properties": { +"branchId": { +"description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", +"type": "string" +}, +"feedFilters": { +"description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", +"items": { +"$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter" +}, +"type": "array" +}, +"feedLabel": { +"description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", +"type": "string" +}, +"id": { +"description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", +"type": "string" +}, +"merchantCenterAccountId": { +"description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", +"readOnly": true, +"type": "string" +}, +"projectId": { +"description": "Output only. Google Cloud project ID.", +"readOnly": true, +"type": "string" +}, +"source": { +"description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", +"type": "string" +}, +"state": { +"description": "Output only. Represents the state of the link.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"ACTIVE", +"FAILED" +], +"enumDescriptions": [ +"Default value.", +"Link is created and LRO is not complete.", +"Link is active.", +"Link creation failed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter": { +"description": "Merchant Center Feed filter criterion.", +"id": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter", +"properties": { +"primaryFeedId": { +"description": "Merchant Center primary feed ID.", +"format": "int64", +"type": "string" +}, +"primaryFeedName": { +"description": "Merchant Center primary feed name. The name is used for the display purposes only.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModel": { +"description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", +"id": "GoogleCloudRetailV2alphaModel", +"properties": { +"createTime": { +"description": "Output only. Timestamp the Recommendation Model was created at.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataState": { +"description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"DATA_OK", +"DATA_ERROR" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has sufficient training data.", +"The model does not have sufficient training data. Error messages can be queried via Stackdriver." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", +"type": "string" +}, +"filteringOption": { +"description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"lastTuneTime": { +"description": "Output only. The timestamp when the latest successful tune finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFeaturesConfig": { +"$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", +"description": "Optional. Additional model features config." +}, +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"pageOptimizationConfig": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", +"description": "Optional. The page optimization config." +}, +"periodicTuningState": { +"description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", +"enum": [ +"PERIODIC_TUNING_STATE_UNSPECIFIED", +"PERIODIC_TUNING_DISABLED", +"ALL_TUNING_DISABLED", +"PERIODIC_TUNING_ENABLED" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", +"The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", +"The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." +], +"type": "string" +}, +"servingConfigLists": { +"description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", +"items": { +"$ref": "GoogleCloudRetailV2alphaModelServingConfigList" +}, +"readOnly": true, +"type": "array" +}, +"servingState": { +"description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"TUNED" +], +"enumDescriptions": [ +"Unspecified serving state.", +"The model is not serving.", +"The model is serving and can be queried.", +"The model is trained on tuned hyperparameters and can be queried." +], +"readOnly": true, +"type": "string" +}, +"trainingState": { +"description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", +"enum": [ +"TRAINING_STATE_UNSPECIFIED", +"PAUSED", +"TRAINING" +], +"enumDescriptions": [ +"Unspecified training state.", +"The model training is paused.", +"The model is training." +], +"type": "string" +}, +"tuningOperation": { +"description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { +"description": "Additional configs for the frequently-bought-together model type.", +"id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", +"properties": { +"contextProductsType": { +"description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"enum": [ +"CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", +"SINGLE_CONTEXT_PRODUCT", +"MULTIPLE_CONTEXT_PRODUCTS" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", +"Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelModelFeaturesConfig": { +"description": "Additional model features config.", +"id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", +"properties": { +"frequentlyBoughtTogetherConfig": { +"$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", +"description": "Additional configs for frequently-bought-together models." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelPageOptimizationConfig": { +"description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", +"id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", +"properties": { +"pageOptimizationEventType": { +"description": "Required. The type of UserEvent this page optimization is shown for. Each page has an associated event type - this will be the corresponding event type for the page that the page optimization model is used on. Supported types: * `add-to-cart`: Products being added to cart. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed * `category-page-view`: Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `home-page-view` only allows models with type `recommended-for-you`. All other page_optimization_event_type allow all Model.types.", +"type": "string" +}, +"panels": { +"description": "Required. A list of panel configurations. Limit = 5.", +"items": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel" +}, +"type": "array" +}, +"restriction": { +"description": "Optional. How to restrict results across panels e.g. can the same ServingConfig be shown on multiple panels at once. If unspecified, default to `UNIQUE_MODEL_RESTRICTION`.", +"enum": [ +"RESTRICTION_UNSPECIFIED", +"NO_RESTRICTION", +"UNIQUE_SERVING_CONFIG_RESTRICTION", +"UNIQUE_MODEL_RESTRICTION", +"UNIQUE_MODEL_TYPE_RESTRICTION" +], +"enumDescriptions": [ +"Unspecified value for restriction.", +"Allow any ServingConfig to be show on any number of panels. Example: `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity `Panel2 candidates`: home_page_ctr_no_diversity, home_page_ctr_diversity, pdp_cvr_no_diversity `Restriction` = NO_RESTRICTION `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: []", +"Do not allow the same ServingConfig.name to be shown on multiple panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_SERVING_CONFIG_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity_low) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) *", +"Do not allow multiple ServingConfigs with same Model.name to be show on on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) *", +"Do not allow multiple ServingConfigs with same Model.type to be shown on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) *" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate": { +"description": "A candidate to consider for a given panel. Currently only ServingConfig are valid candidates.", +"id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", +"properties": { +"servingConfigId": { +"description": "This has to be a valid ServingConfig identifier. For example, for a ServingConfig with full name: `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config`, this would be `my_candidate_config`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel": { +"description": "An individual panel with a list of ServingConfigs to consider for it.", +"id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel", +"properties": { +"candidates": { +"description": "Required. The candidates to consider on the panel.", +"items": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate" +}, +"type": "array" +}, +"defaultCandidate": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", +"description": "Required. The default candidate. If the model fails at serving time, we fall back to the default." +}, +"displayName": { +"description": "Optional. The name to display for the panel.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelServingConfigList": { +"description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", +"id": "GoogleCloudRetailV2alphaModelServingConfigList", +"properties": { +"servingConfigIds": { +"description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaOutputResult": { +"description": "Output result that stores the information about where the exported data is stored.", +"id": "GoogleCloudRetailV2alphaOutputResult", +"properties": { +"bigqueryResult": { +"description": "The BigQuery location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2alphaBigQueryOutputResult" +}, +"type": "array" +}, +"gcsResult": { +"description": "The Google Cloud Storage location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2alphaGcsOutputResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeMetadata": { +"description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaPurgeMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeProductsMetadata": { +"description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaPurgeProductsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were deleted successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeProductsResponse": { +"description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2alphaPurgeProductsResponse", +"properties": { +"purgeCount": { +"description": "The total count of products purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"purgeSample": { +"description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeUserEventsResponse": { +"description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2alphaPurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { +"description": "Metadata for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRejoinUserEventsResponse": { +"description": "Response message for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest product catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { +"description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse": { +"description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaSetInventoryMetadata": { +"description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2alphaSetInventoryMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaSetInventoryResponse": { +"description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2alphaSetInventoryResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaTransformedUserEventsMetadata": { +"description": "Metadata related to transform user events operation.", +"id": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", +"properties": { +"sourceEventsCount": { +"description": "Count of entries in the source user events BigQuery table.", +"format": "int64", +"type": "string" +}, +"transformedEventsCount": { +"description": "Count of entries in the transformed user events BigQuery table, which could be different from the actually imported number of user events.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaTuneModelMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRetailV2alphaTuneModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaTuneModelResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRetailV2alphaTuneModelResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaUserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRetailV2alphaUserEventImportSummary", +"properties": { +"joinedEventsCount": { +"description": "Count of user events imported with complete existing catalog information.", +"format": "int64", +"type": "string" +}, +"unjoinedEventsCount": { +"description": "Count of user events imported, but with catalog information not found in the imported catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddCatalogAttributeRequest": { +"description": "Request for CatalogService.AddCatalogAttribute method.", +"id": "GoogleCloudRetailV2betaAddCatalogAttributeRequest", +"properties": { +"catalogAttribute": { +"$ref": "GoogleCloudRetailV2betaCatalogAttribute", +"description": "Required. The CatalogAttribute to add." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddControlRequest": { +"description": "Request for AddControl method.", +"id": "GoogleCloudRetailV2betaAddControlRequest", +"properties": { +"controlId": { +"description": "Required. The id of the control to apply. Assumed to be in the same catalog as the serving config - if id is not found a NOT_FOUND error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddFulfillmentPlacesRequest": { +"description": "Request message for ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest", +"properties": { +"addTime": { +"description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +}, +"allowMissing": { +"description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"placeIds": { +"description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { +"description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2betaAddLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddLocalInventoriesRequest": { +"description": "Request message for ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2betaAddLocalInventoriesRequest", +"properties": { +"addMask": { +"description": "Indicates which inventory fields in the provided list of LocalInventory to update. The field is updated to the provided value. If a field is set while the place does not have a previous local inventory, the local inventory at that store is created. If a field is set while the value of that field is not provided, the original field value, if it exists, is deleted. If the mask is not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", +"format": "google-fieldmask", +"type": "string" +}, +"addTime": { +"description": "The time when the inventory updates are issued. Used to prevent out-of-order updates on local inventory fields. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +}, +"allowMissing": { +"description": "If set to true, and the Product is not found, the local inventory will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"localInventories": { +"description": "Required. A list of inventory information at difference places. Each place is identified by its place ID. At most 3000 inventories are allowed per request.", +"items": { +"$ref": "GoogleCloudRetailV2betaLocalInventory" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddLocalInventoriesResponse": { +"description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2betaAddLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAlertConfig": { +"description": "Project level alert config.", +"id": "GoogleCloudRetailV2betaAlertConfig", +"properties": { +"alertPolicies": { +"description": "Alert policies for a customer. They must be unique by [AlertPolicy.alert_group]", +"items": { +"$ref": "GoogleCloudRetailV2betaAlertConfigAlertPolicy" +}, +"type": "array" +}, +"name": { +"description": "Required. Immutable. The name of the AlertConfig singleton resource. Format: projects/*/alertConfig", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAlertConfigAlertPolicy": { +"description": "Alert policy for a customer.", +"id": "GoogleCloudRetailV2betaAlertConfigAlertPolicy", +"properties": { +"alertGroup": { +"description": "The feature that provides alerting capability. Supported value: - `search-data-quality` for retail search customers. - `conv-data-quality` for retail conversation customers.", +"type": "string" +}, +"enrollStatus": { +"description": "The enrollment status of a customer.", +"enum": [ +"ENROLL_STATUS_UNSPECIFIED", +"ENROLLED", +"DECLINED" +], +"enumDescriptions": [ +"Default value. Used for customers who have not responded to the alert policy.", +"Customer is enrolled in this policy.", +"Customer declined this policy." +], +"type": "string" +}, +"recipients": { +"description": "Recipients for the alert policy. One alert policy should not exceed 20 recipients.", +"items": { +"$ref": "GoogleCloudRetailV2betaAlertConfigAlertPolicyRecipient" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAlertConfigAlertPolicyRecipient": { +"description": "Recipient contact information.", +"id": "GoogleCloudRetailV2betaAlertConfigAlertPolicyRecipient", +"properties": { +"emailAddress": { +"description": "Email address of the recipient.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAttributesConfig": { +"description": "Catalog level attribute config.", +"id": "GoogleCloudRetailV2betaAttributesConfig", +"properties": { +"attributeConfigLevel": { +"description": "Output only. The AttributeConfigLevel used for this catalog.", +"enum": [ +"ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED", +"PRODUCT_LEVEL_ATTRIBUTE_CONFIG", +"CATALOG_LEVEL_ATTRIBUTE_CONFIG" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", +"At this level, we honor the attribute configurations set in Product.attributes.", +"At this level, we honor the attribute configurations set in `CatalogConfig.attribute_configs`." +], +"readOnly": true, +"type": "string" +}, +"catalogAttributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaCatalogAttribute" +}, +"description": "Enable attribute(s) config at catalog level. For example, indexable, dynamic_facetable, or searchable for each attribute. The key is catalog attribute's name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. The maximum number of catalog attributes allowed in a request is 1000.", +"type": "object" +}, +"name": { +"description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAudience": { +"description": "An intended audience of the Product for whom it's sold.", +"id": "GoogleCloudRetailV2betaAudience", +"properties": { +"ageGroups": { +"description": "The age groups of the audience. Strongly encouraged to use the standard values: \"newborn\" (up to 3 months old), \"infant\" (3\u201312 months old), \"toddler\" (1\u20135 years old), \"kids\" (5\u201313 years old), \"adult\" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).", +"items": { +"type": "string" +}, +"type": "array" +}, +"genders": { +"description": "The genders of the audience. Strongly encouraged to use the standard values: \"male\", \"female\", \"unisex\". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaBatchRemoveCatalogAttributesRequest": { +"description": "Request for CatalogService.BatchRemoveCatalogAttributes method.", +"id": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesRequest", +"properties": { +"attributeKeys": { +"description": "Required. The attribute name keys of the CatalogAttributes to delete. A maximum of 1000 catalog attributes can be deleted in a batch.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaBatchRemoveCatalogAttributesResponse": { +"description": "Response of the CatalogService.BatchRemoveCatalogAttributes.", +"id": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesResponse", +"properties": { +"deletedCatalogAttributes": { +"description": "Catalog attributes that were deleted. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resetCatalogAttributes": { +"description": "Catalog attributes that were reset. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsRequest": { +"description": "Request for BatchUpdateGenerativeQuestionConfig method.", +"id": "GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsRequest", +"properties": { +"requests": { +"description": "Required. The updates question configs.", +"items": { +"$ref": "GoogleCloudRetailV2betaUpdateGenerativeQuestionConfigRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsResponse": { +"description": "Aggregated response for UpdateGenerativeQuestionConfig method.", +"id": "GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsResponse", +"properties": { +"generativeQuestionConfigs": { +"description": "Optional. The updates question configs.", +"items": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaBigQueryOutputResult": { +"description": "A BigQuery output result.", +"id": "GoogleCloudRetailV2betaBigQueryOutputResult", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableId": { +"description": "The ID of a BigQuery Table.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaBigQuerySource": { +"description": "BigQuery source import data from.", +"id": "GoogleCloudRetailV2betaBigQuerySource", +"properties": { +"dataSchema": { +"description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for autocomplete imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", +"type": "string" +}, +"datasetId": { +"description": "Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.", +"type": "string" +}, +"gcsStagingDir": { +"description": "Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", +"type": "string" +}, +"partitionDate": { +"$ref": "GoogleTypeDate", +"description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format." +}, +"projectId": { +"description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", +"type": "string" +}, +"tableId": { +"description": "Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalog": { +"description": "The catalog configuration.", +"id": "GoogleCloudRetailV2betaCatalog", +"properties": { +"displayName": { +"description": "Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"merchantCenterLinkingConfig": { +"$ref": "GoogleCloudRetailV2betaMerchantCenterLinkingConfig", +"description": "The Merchant Center linking configuration. After a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the Merchant Center account in order to make changes to this field." +}, +"name": { +"description": "Required. Immutable. The fully qualified resource name of the catalog.", +"type": "string" +}, +"productLevelConfig": { +"$ref": "GoogleCloudRetailV2betaProductLevelConfig", +"description": "Required. The product level configuration." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalogAttribute": { +"description": "Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.", +"id": "GoogleCloudRetailV2betaCatalogAttribute", +"properties": { +"dynamicFacetableOption": { +"description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.", +"enum": [ +"DYNAMIC_FACETABLE_OPTION_UNSPECIFIED", +"DYNAMIC_FACETABLE_ENABLED", +"DYNAMIC_FACETABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Dynamic facetable option enabled for an attribute.", +"Dynamic facetable option disabled for an attribute." +], +"type": "string" +}, +"exactSearchableOption": { +"description": "If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.", +"enum": [ +"EXACT_SEARCHABLE_OPTION_UNSPECIFIED", +"EXACT_SEARCHABLE_ENABLED", +"EXACT_SEARCHABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Exact searchable option enabled for an attribute.", +"Exact searchable option disabled for an attribute." +], +"type": "string" +}, +"facetConfig": { +"$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfig", +"description": "Contains facet options." +}, +"inUse": { +"description": "Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.", +"readOnly": true, +"type": "boolean" +}, +"indexableOption": { +"description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", +"enum": [ +"INDEXABLE_OPTION_UNSPECIFIED", +"INDEXABLE_ENABLED", +"INDEXABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Indexable option enabled for an attribute.", +"Indexable option disabled for an attribute." +], +"type": "string" +}, +"key": { +"description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.", +"type": "string" +}, +"recommendationsFilteringOption": { +"description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if RECOMMENDATIONS_FILTERING_ENABLED, attribute values are filterable for recommendations. This option works for categorical features only, does not work for numerical features, inventory filtering.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"retrievableOption": { +"description": "If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.", +"enum": [ +"RETRIEVABLE_OPTION_UNSPECIFIED", +"RETRIEVABLE_ENABLED", +"RETRIEVABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Retrievable option enabled for an attribute.", +"Retrievable option disabled for an attribute." +], +"type": "string" +}, +"searchableOption": { +"description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", +"enum": [ +"SEARCHABLE_OPTION_UNSPECIFIED", +"SEARCHABLE_ENABLED", +"SEARCHABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Searchable option enabled for an attribute.", +"Searchable option disabled for an attribute." +], +"type": "string" +}, +"type": { +"description": "Output only. The type of this attribute. This is derived from the attribute in Product.attributes.", +"enum": [ +"UNKNOWN", +"TEXTUAL", +"NUMERICAL" +], +"enumDescriptions": [ +"The type of the attribute is unknown. Used when type cannot be derived from attribute that is not in_use.", +"Textual attribute.", +"Numerical attribute." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalogAttributeFacetConfig": { +"description": "Possible options for the facet that corresponds to the current attribute config.", +"id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfig", +"properties": { +"facetIntervals": { +"description": "If you don't set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.", +"items": { +"$ref": "GoogleCloudRetailV2betaInterval" +}, +"type": "array" +}, +"ignoredFacetValues": { +"description": "Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.", +"items": { +"$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigIgnoredFacetValues" +}, +"type": "array" +}, +"mergedFacet": { +"$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacet", +"description": "Use this field only if you want to merge a facet key into another facet key." +}, +"mergedFacetValues": { +"description": "Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if \"dark_blue\" merged into \"BLUE\", then the latter can't merge into \"blues\" because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.", +"items": { +"$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue" +}, +"type": "array" +}, +"rerankConfig": { +"$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigRerankConfig", +"description": "Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalogAttributeFacetConfigIgnoredFacetValues": { +"description": "Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.", +"id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigIgnoredFacetValues", +"properties": { +"endTime": { +"description": "If start time is empty and end time is not empty, then ignore these facet values before end time.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.", +"format": "google-datetime", +"type": "string" +}, +"values": { +"description": "List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacet": { +"description": "The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type).", +"id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacet", +"properties": { +"mergedFacetKey": { +"description": "The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can't be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue": { +"description": "Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.", +"id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue", +"properties": { +"mergedValue": { +"description": "All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.", +"type": "string" +}, +"values": { +"description": "All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCatalogAttributeFacetConfigRerankConfig": { +"description": "Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don't pass the facet keys engaged that you want to rerank on, this control won't be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces).", +"id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigRerankConfig", +"properties": { +"facetValues": { +"description": "If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.", +"items": { +"type": "string" +}, +"type": "array" +}, +"rerankFacet": { +"description": "If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCollectUserEventRequest": { +"description": "Request message for CollectUserEvent method.", +"id": "GoogleCloudRetailV2betaCollectUserEventRequest", +"properties": { +"ets": { +"description": "The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.", +"format": "int64", +"type": "string" +}, +"prebuiltRule": { +"description": "The prebuilt rule name that can convert a specific type of raw_json. For example: \"ga4_bq\" rule for the GA4 user event schema.", +"type": "string" +}, +"rawJson": { +"description": "An arbitrary serialized JSON string that contains necessary information that can comprise a user event. When this field is specified, the user_event field will be ignored. Note: line-delimited JSON is not supported, a single JSON only.", +"type": "string" +}, +"uri": { +"description": "The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.", +"type": "string" +}, +"userEvent": { +"description": "Required. URL encoded UserEvent proto with a length limit of 2,000,000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaColorInfo": { +"description": "The color information of a Product.", +"id": "GoogleCloudRetailV2betaColorInfo", +"properties": { +"colorFamilies": { +"description": "The standard color families. Strongly recommended to use the following standard color groups: \"Red\", \"Pink\", \"Orange\", \"Yellow\", \"Purple\", \"Green\", \"Cyan\", \"Blue\", \"Brown\", \"White\", \"Gray\", \"Black\" and \"Mixed\". Normally it is expected to have only 1 color family. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). The colorFamilies field as a system attribute is not a required field but strongly recommended to be specified. Google Search models treat this field as more important than a custom product attribute when specified.", +"items": { +"type": "string" +}, +"type": "array" +}, +"colors": { +"description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompleteQueryResponse": { +"description": "Response of the autocomplete query.", +"id": "GoogleCloudRetailV2betaCompleteQueryResponse", +"properties": { +"attributeResults": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaCompleteQueryResponseAttributeResult" +}, +"description": "A map of matched attribute suggestions. This field is only available for \"cloud-retail\" dataset. Current supported keys: * `brands` * `categories`", +"type": "object" +}, +"attributionToken": { +"description": "A unique complete token. This should be included in the UserEvent.completion_detail for search events resulting from this completion, which enables accurate attribution of complete model performance.", +"type": "string" +}, +"completionResults": { +"description": "Results of the matching suggestions. The result list is ordered and the first result is top suggestion.", +"items": { +"$ref": "GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult" +}, +"type": "array" +}, +"recentSearchResults": { +"deprecated": true, +"description": "Deprecated. Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", +"items": { +"$ref": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompleteQueryResponseAttributeResult": { +"description": "Resource that represents attribute results. The list of suggestions for the attribute.", +"id": "GoogleCloudRetailV2betaCompleteQueryResponseAttributeResult", +"properties": { +"suggestions": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult": { +"description": "Resource that represents completion results.", +"id": "GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaCustomAttribute" +}, +"description": "Custom attributes for the suggestion term. * For \"user-data\", the attributes are additional custom attributes ingested through BigQuery. * For \"cloud-retail\", the attributes are product attributes generated by Cloud Retail. It requires UserEvent.product_details is imported properly.", +"type": "object" +}, +"suggestion": { +"description": "The suggestion for the query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult": { +"deprecated": true, +"description": "Deprecated: Recent search of this user.", +"id": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult", +"properties": { +"recentSearch": { +"description": "The recent search query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompletionConfig": { +"description": "Catalog level autocomplete config for customers to customize autocomplete feature's settings.", +"id": "GoogleCloudRetailV2betaCompletionConfig", +"properties": { +"allowlistInputConfig": { +"$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", +"description": "Output only. The source data for the latest import of the autocomplete allowlist phrases.", +"readOnly": true +}, +"autoLearning": { +"description": "If set to true, the auto learning function is enabled. Auto learning uses user data to generate suggestions using ML techniques. Default value is false. Only after enabling auto learning can users use `cloud-retail` data in CompleteQueryRequest.", +"type": "boolean" +}, +"denylistInputConfig": { +"$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", +"description": "Output only. The source data for the latest import of the autocomplete denylist phrases.", +"readOnly": true +}, +"lastAllowlistImportOperation": { +"description": "Output only. Name of the LRO corresponding to the latest allowlist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", +"readOnly": true, +"type": "string" +}, +"lastDenylistImportOperation": { +"description": "Output only. Name of the LRO corresponding to the latest denylist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", +"readOnly": true, +"type": "string" +}, +"lastSuggestionsImportOperation": { +"description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", +"readOnly": true, +"type": "string" +}, +"matchingOrder": { +"description": "Specifies the matching order for autocomplete suggestions, e.g., a query consisting of 'sh' with 'out-of-order' specified would suggest \"women's shoes\", whereas a query of 'red s' with 'exact-prefix' specified would suggest \"red shoes\". Currently supported values: * 'out-of-order' * 'exact-prefix' Default value: 'exact-prefix'.", +"type": "string" +}, +"maxSuggestions": { +"description": "The maximum number of autocomplete suggestions returned per term. Default value is 20. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", +"format": "int32", +"type": "integer" +}, +"minPrefixLength": { +"description": "The minimum number of characters needed to be typed in order to get suggestions. Default value is 2. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", +"type": "string" +}, +"suggestionsInputConfig": { +"$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", +"description": "Output only. The source data for the latest import of the autocomplete suggestion phrases.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompletionDataInputConfig": { +"description": "The input config source for completion data.", +"id": "GoogleCloudRetailV2betaCompletionDataInputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRetailV2betaBigQuerySource", +"description": "Required. BigQuery input source. Add the IAM permission \"BigQuery Data Viewer\" for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCompletionDetail": { +"description": "Detailed completion information including completion attribution token and clicked completion info.", +"id": "GoogleCloudRetailV2betaCompletionDetail", +"properties": { +"completionAttributionToken": { +"description": "Completion attribution token in CompleteQueryResponse.attribution_token.", +"type": "string" +}, +"selectedPosition": { +"description": "End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0.", +"format": "int32", +"type": "integer" +}, +"selectedSuggestion": { +"description": "End user selected CompleteQueryResponse.CompletionResult.suggestion.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCondition": { +"description": "Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted.", +"id": "GoogleCloudRetailV2betaCondition", +"properties": { +"activeTimeRange": { +"description": "Range of time(s) specifying when Condition is active. Condition true if any time range matches.", +"items": { +"$ref": "GoogleCloudRetailV2betaConditionTimeRange" +}, +"type": "array" +}, +"pageCategories": { +"description": "Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;", +"items": { +"type": "string" +}, +"type": "array" +}, +"queryTerms": { +"description": "A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).", +"items": { +"$ref": "GoogleCloudRetailV2betaConditionQueryTerm" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaConditionQueryTerm": { +"description": "Query terms that we want to match on.", +"id": "GoogleCloudRetailV2betaConditionQueryTerm", +"properties": { +"fullMatch": { +"description": "Whether this is supposed to be a full or partial match.", +"type": "boolean" +}, +"value": { +"description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, \"a b c\" is 3 terms and allowed, but \" a b c d\" is 4 terms and not allowed for a partial match.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaConditionTimeRange": { +"description": "Used for time-dependent conditions. Example: Want to have rule applied for week long sale.", +"id": "GoogleCloudRetailV2betaConditionTimeRange", +"properties": { +"endTime": { +"description": "End of time range. Range is inclusive.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start of time range. Range is inclusive.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaControl": { +"description": "Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.", +"id": "GoogleCloudRetailV2betaControl", +"properties": { +"associatedServingConfigIds": { +"description": "Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.", +"type": "string" +}, +"facetSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpec", +"deprecated": true, +"description": "A facet specification to perform faceted search. Note that this field is deprecated and will throw NOT_IMPLEMENTED if used for creating a control." +}, +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", +"type": "string" +}, +"rule": { +"$ref": "GoogleCloudRetailV2betaRule", +"description": "A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost \"gShoe\" when query full matches \"Running Shoes\"." +}, +"searchSolutionUseCase": { +"description": "Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.", +"items": { +"enum": [ +"SEARCH_SOLUTION_USE_CASE_UNSPECIFIED", +"SEARCH_SOLUTION_USE_CASE_SEARCH", +"SEARCH_SOLUTION_USE_CASE_BROWSE" +], +"enumDescriptions": [ +"The value when it's unspecified. In this case, server behavior defaults to SEARCH_SOLUTION_USE_CASE_SEARCH.", +"Search use case. Expects the traffic has a non-empty query.", +"Browse use case. Expects the traffic has an empty query." +], +"type": "string" +}, +"type": "array" +}, +"solutionTypes": { +"description": "Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", +"items": { +"enum": [ +"SOLUTION_TYPE_UNSPECIFIED", +"SOLUTION_TYPE_RECOMMENDATION", +"SOLUTION_TYPE_SEARCH" +], +"enumDescriptions": [ +"Default value.", +"Used for Recommendations AI.", +"Used for Retail Search." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCreateModelMetadata": { +"description": "Metadata associated with a create operation.", +"id": "GoogleCloudRetailV2betaCreateModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCustomAttribute": { +"description": "A custom attribute that is not explicitly modeled in Product.", +"id": "GoogleCloudRetailV2betaCustomAttribute", +"properties": { +"indexable": { +"deprecated": true, +"description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are indexed, so that they can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", +"type": "boolean" +}, +"numbers": { +"description": "The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is \"lengths_cm\". Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +}, +"searchable": { +"deprecated": true, +"description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", +"type": "boolean" +}, +"text": { +"description": "The textual values of this custom attribute. For example, `[\"yellow\", \"green\"]` when the key is \"color\". Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExperimentInfo": { +"description": "Metadata for active A/B testing experiment.", +"id": "GoogleCloudRetailV2betaExperimentInfo", +"properties": { +"experiment": { +"description": "The fully qualified resource name of the experiment that provides the serving config under test, should an active experiment exist. For example: `projects/*/locations/global/catalogs/default_catalog/experiments/experiment_id`", +"type": "string" +}, +"servingConfigExperiment": { +"$ref": "GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment", +"description": "A/B test between existing Cloud Retail Search ServingConfigs." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment": { +"description": "Metadata for active serving config A/B tests.", +"id": "GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment", +"properties": { +"experimentServingConfig": { +"description": "The fully qualified resource name of the serving config `Experiment.VariantArm.serving_config_id` responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", +"type": "string" +}, +"originalServingConfig": { +"description": "The fully qualified resource name of the original SearchRequest.placement in the search request prior to reassignment by experiment API. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportAnalyticsMetricsRequest": { +"description": "Request message for the `ExportAnalyticsMetrics` method.", +"id": "GoogleCloudRetailV2betaExportAnalyticsMetricsRequest", +"properties": { +"filter": { +"description": "A filtering expression to specify restrictions on returned metrics. The expression is a sequence of terms. Each term applies a restriction to the returned metrics. Use this expression to restrict results to a specific time range. Currently we expect only one types of fields: * `timestamp`: This can be specified twice, once with a less than operator and once with a greater than operator. The `timestamp` restriction should result in one, contiguous, valid, `timestamp` range. Some examples of valid filters expressions: * Example 1: `timestamp > \"2012-04-23T18:25:43.511Z\" timestamp < \"2012-04-23T18:30:43.511Z\"` * Example 2: `timestamp > \"2012-04-23T18:25:43.511Z\"`", +"type": "string" +}, +"outputConfig": { +"$ref": "GoogleCloudRetailV2betaOutputConfig", +"description": "Required. The output location of the data." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportAnalyticsMetricsResponse": { +"description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaExportAnalyticsMetricsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2betaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportErrorsConfig": { +"description": "Configuration of destination for Export related errors.", +"id": "GoogleCloudRetailV2betaExportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportMetadata": { +"description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaExportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportProductsRequest": { +"description": "Request message for ExportProducts method.", +"id": "GoogleCloudRetailV2betaExportProductsRequest", +"properties": { +"filter": { +"description": "A filtering expression to specify restrictions on returned events. The expression is a sequence of terms. Each term applies a restriction to the returned products. Use this expression to restrict results to a specific time range, tag, or stock state or to filter products by product type. For example, `lastModifiedTime > \"2012-04-23T18:25:43.511Z\" lastModifiedTime<\"2012-04-23T18:25:43.511Z\" productType=primary` We expect only four types of fields: * `lastModifiedTime`: This can be specified twice, once with a less than operator and once with a greater than operator. The `lastModifiedTime` restriction should result in one, contiguous, valid, last-modified, time range. * `productType`: Supported values are `primary` and `variant`. The Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses and must be separated from the `productType` values by a space. * `availability`: Supported values are `IN_STOCK`, `OUT_OF_STOCK`, `PREORDER`, and `BACKORDER`. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses and must be separated from the `availability` values by a space. * `Tag expressions`: Restricts output to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses and the operators are separated from the tag values by a space. Also supported is '`-\"tagA\"`', which is equivalent to '`NOT \"tagA\"`'. Tag values must be double-quoted, UTF-8 encoded strings and have a size limit of 1,000 characters. Some examples of valid filters expressions: * Example 1: `lastModifiedTime > \"2012-04-23T18:25:43.511Z\" lastModifiedTime < \"2012-04-23T18:30:43.511Z\"` * Example 2: `lastModifiedTime > \"2012-04-23T18:25:43.511Z\" productType = \"variant\"` * Example 3: `tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") productType = \"primary\" lastModifiedTime < \"2018-04-23T18:30:43.511Z\"` * Example 4: `lastModifiedTime > \"2012-04-23T18:25:43.511Z\"` * Example 5: `availability = (IN_STOCK OR BACKORDER)`", +"type": "string" +}, +"outputConfig": { +"$ref": "GoogleCloudRetailV2betaOutputConfig", +"description": "Required. The output location of the data." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportProductsResponse": { +"description": "Response of the ExportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaExportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2betaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportUserEventsRequest": { +"description": "Request message for the `ExportUserEvents` method.", +"id": "GoogleCloudRetailV2betaExportUserEventsRequest", +"properties": { +"filter": { +"description": "A filtering expression to specify restrictions on returned events. The expression is a sequence of terms. Each term applies a restriction to the returned user events. Use this expression to restrict results to a specific time range or to filter events by eventType. For example, `eventTime > \"2012-04-23T18:25:43.511Z\" eventsMissingCatalogItems eventTime<\"2012-04-23T18:25:43.511Z\" eventType=search` We expect only three types of fields: * `eventTime`: This can be specified twice, once with a less than operator and once with a greater than operator. The `eventTime` restriction should result in one, contiguous, valid, `eventTime` range. * `eventType`: Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses and the operators are separated from the tag values by a space. * `eventsMissingCatalogItems`: This restricts results to events for which catalog items were not found in the catalog. The default behavior is to return only those events for which catalog items were found. Some examples of valid filters expressions: * Example 1: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Example 2: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = detail-page-view` * Example 3: `eventsMissingCatalogItems eventType = (NOT search) eventTime < \"2018-04-23T18:30:43.511Z\"` * Example 4: `eventTime > \"2012-04-23T18:25:43.511Z\"` * Example 5: `eventType = (detail-page-view OR search)` * Example 6: `eventsMissingCatalogItems`", +"type": "string" +}, +"outputConfig": { +"$ref": "GoogleCloudRetailV2betaOutputConfig", +"description": "Required. The output location of the data." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportUserEventsResponse": { +"description": "Response of the ExportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaExportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2betaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaFulfillmentInfo": { +"description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.", +"id": "GoogleCloudRetailV2betaFulfillmentInfo", +"properties": { +"placeIds": { +"description": "The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 3000 values are allowed. Each value must be a string with a length limit of 30 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaGcsOutputResult": { +"description": "A Gcs output result.", +"id": "GoogleCloudRetailV2betaGcsOutputResult", +"properties": { +"outputUri": { +"description": "The uri of Gcs output", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaGcsSource": { +"description": "Google Cloud Storage location for input content.", +"id": "GoogleCloudRetailV2betaGcsSource", +"properties": { +"dataSchema": { +"description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * `control` (default): One JSON Control per line. Supported values for catalog attribute imports: * `catalog_attribute` (default): One CSV CatalogAttribute per line.", +"type": "string" +}, +"inputUris": { +"description": "Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaGenerativeQuestionConfig": { +"description": "Configuration for a single generated question.", +"id": "GoogleCloudRetailV2betaGenerativeQuestionConfig", +"properties": { +"allowedInConversation": { +"description": "Optional. Whether the question is asked at serving time.", +"type": "boolean" +}, +"catalog": { +"description": "Required. Resource name of the catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"type": "string" +}, +"exampleValues": { +"description": "Output only. Values that can be used to answer the question.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"facet": { +"description": "Required. The facet to which the question is associated.", +"type": "string" +}, +"finalQuestion": { +"description": "Optional. The question that will be used at serving time. Question can have a max length of 300 bytes. When not populated, generated_question should be used.", +"type": "string" +}, +"frequency": { +"description": "Output only. The ratio of how often a question was asked.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"generatedQuestion": { +"description": "Output only. The LLM generated question.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaGenerativeQuestionsFeatureConfig": { +"description": "Configuration for overall generative question feature state.", +"id": "GoogleCloudRetailV2betaGenerativeQuestionsFeatureConfig", +"properties": { +"catalog": { +"description": "Required. Resource name of the affected catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"type": "string" +}, +"featureEnabled": { +"description": "Optional. Determines whether questions will be used at serving time. Note: This feature cannot be enabled until initial data requirements are satisfied.", +"type": "boolean" +}, +"minimumProducts": { +"description": "Optional. Minimum number of products in the response to trigger follow-up questions. Value must be 0 or positive.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaGetDefaultBranchResponse": { +"description": "Response message of CatalogService.GetDefaultBranch.", +"id": "GoogleCloudRetailV2betaGetDefaultBranchResponse", +"properties": { +"branch": { +"description": "Full resource name of the branch id currently set as default branch.", +"type": "string" +}, +"note": { +"description": "This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.", +"type": "string" +}, +"setTime": { +"description": "The time when this branch is set to default.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImage": { +"description": "Product image. Recommendations AI and Retail Search use product images to improve prediction and search results. Product images can be returned in results, and are shown in prediction or search previews in the console. Please try to provide correct product images and avoid using images with size too small.", +"id": "GoogleCloudRetailV2betaImage", +"properties": { +"height": { +"description": "Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", +"type": "string" +}, +"width": { +"description": "Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportCompletionDataRequest": { +"description": "Request message for ImportCompletionData methods.", +"id": "GoogleCloudRetailV2betaImportCompletionDataRequest", +"properties": { +"inputConfig": { +"$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", +"description": "Required. The desired input location of the data." +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportCompletionDataResponse": { +"description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", +"id": "GoogleCloudRetailV2betaImportCompletionDataResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRetailV2betaImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaImportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field is never set.", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were processed successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportProductsRequest": { +"description": "Request message for Import methods.", +"id": "GoogleCloudRetailV2betaImportProductsRequest", +"properties": { +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaImportErrorsConfig", +"description": "The desired location of errors incurred during the Import." +}, +"inputConfig": { +"$ref": "GoogleCloudRetailV2betaProductInputConfig", +"description": "Required. The desired input location of the data." +}, +"notificationPubsubTopic": { +"description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", +"type": "string" +}, +"reconciliationMode": { +"description": "The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL.", +"enum": [ +"RECONCILIATION_MODE_UNSPECIFIED", +"INCREMENTAL", +"FULL" +], +"enumDescriptions": [ +"Defaults to INCREMENTAL.", +"Inserts new products or updates existing products.", +"Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location." +], +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated. If provided, only the existing product fields are updated. Missing products will not be created.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportProductsResponse": { +"description": "Response of the ImportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaImportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportUserEventsRequest": { +"description": "Request message for the ImportUserEvents request.", +"id": "GoogleCloudRetailV2betaImportUserEventsRequest", +"properties": { +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaImportErrorsConfig", +"description": "The desired location of errors incurred during the Import. Cannot be set for inline user event imports." +}, +"inputConfig": { +"$ref": "GoogleCloudRetailV2betaUserEventInputConfig", +"description": "Required. The desired input location of the data." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportUserEventsResponse": { +"description": "Response of the ImportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRetailV2betaUserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaInterval": { +"description": "A floating point interval.", +"id": "GoogleCloudRetailV2betaInterval", +"properties": { +"exclusiveMaximum": { +"description": "Exclusive upper bound.", +"format": "double", +"type": "number" +}, +"exclusiveMinimum": { +"description": "Exclusive lower bound.", +"format": "double", +"type": "number" +}, +"maximum": { +"description": "Inclusive upper bound.", +"format": "double", +"type": "number" +}, +"minimum": { +"description": "Inclusive lower bound.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaListCatalogsResponse": { +"description": "Response for CatalogService.ListCatalogs method.", +"id": "GoogleCloudRetailV2betaListCatalogsResponse", +"properties": { +"catalogs": { +"description": "All the customer's Catalogs.", +"items": { +"$ref": "GoogleCloudRetailV2betaCatalog" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as ListCatalogsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaListControlsResponse": { +"description": "Response for ListControls method.", +"id": "GoogleCloudRetailV2betaListControlsResponse", +"properties": { +"controls": { +"description": "All the Controls for a given catalog.", +"items": { +"$ref": "GoogleCloudRetailV2betaControl" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaListGenerativeQuestionConfigsResponse": { +"description": "Response for ListQuestions method.", +"id": "GoogleCloudRetailV2betaListGenerativeQuestionConfigsResponse", +"properties": { +"generativeQuestionConfigs": { +"description": "All the questions for a given catalog.", +"items": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaListModelsResponse": { +"description": "Response to a ListModelRequest.", +"id": "GoogleCloudRetailV2betaListModelsResponse", +"properties": { +"models": { +"description": "List of Models.", +"items": { +"$ref": "GoogleCloudRetailV2betaModel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaListProductsResponse": { +"description": "Response message for ProductService.ListProducts method.", +"id": "GoogleCloudRetailV2betaListProductsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"products": { +"description": "The Products.", +"items": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaListServingConfigsResponse": { +"description": "Response for ListServingConfigs method.", +"id": "GoogleCloudRetailV2betaListServingConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +}, +"servingConfigs": { +"description": "All the ServingConfigs for a given catalog.", +"items": { +"$ref": "GoogleCloudRetailV2betaServingConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaLocalInventory": { +"description": "The inventory information at a place (e.g. a store) identified by a place ID.", +"id": "GoogleCloudRetailV2betaLocalInventory", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaCustomAttribute" +}, +"description": "Optional. Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB.", +"type": "object" +}, +"availability": { +"description": "Optional. The availability of the Product at this place_id. Default to Availability.IN_STOCK. For primary products with variants set the availability of the primary as Availability.OUT_OF_STOCK and set the true availability at the variant level. This way the primary product will be considered \"in stock\" as long as it has at least one variant in stock. For primary products with no variants set the true availability at the primary level. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability).", +"enum": [ +"AVAILABILITY_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"PREORDER", +"BACKORDER" +], +"enumDescriptions": [ +"Default product availability. Default to Availability.IN_STOCK if unset.", +"Product in stock.", +"Product out of stock.", +"Product that is in pre-order state.", +"Product that is back-ordered (i.e. temporarily out of stock)." +], +"type": "string" +}, +"fulfillmentTypes": { +"description": "Optional. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"placeId": { +"description": "Required. The place ID for the current set of inventory information.", +"type": "string" +}, +"priceInfo": { +"$ref": "GoogleCloudRetailV2betaPriceInfo", +"description": "Optional. Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaMerchantCenterFeedFilter": { +"description": "Merchant Center Feed filter criterion.", +"id": "GoogleCloudRetailV2betaMerchantCenterFeedFilter", +"properties": { +"primaryFeedId": { +"description": "Merchant Center primary feed ID.", +"format": "int64", +"type": "string" +}, +"primaryFeedName": { +"description": "Merchant Center primary feed name. The name is used for the display purposes only.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaMerchantCenterLink": { +"description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", +"id": "GoogleCloudRetailV2betaMerchantCenterLink", +"properties": { +"branchId": { +"description": "The branch ID (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", +"type": "string" +}, +"destinations": { +"description": "String representing the destination to import for, all if left empty. List of possible values is given in [Included destination](https://support.google.com/merchants/answer/7501026). List of allowed string values: \"Shopping_ads\", \"Buy_on_google_listings\", \"Display_ads\", \"Local_inventory _ads\", \"Free_listings\", \"Free_local_listings\" NOTE: The string values are case sensitive.", +"items": { +"type": "string" +}, +"type": "array" +}, +"feeds": { +"description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", +"items": { +"$ref": "GoogleCloudRetailV2betaMerchantCenterFeedFilter" +}, +"type": "array" +}, +"languageCode": { +"description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty no language filtering will be performed. Example value: `en`.", +"type": "string" +}, +"merchantCenterAccountId": { +"description": "Required. The linked [Merchant Center account ID](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", +"format": "int64", +"type": "string" +}, +"regionCode": { +"description": "Region code of offers to accept. 2-letter Uppercase ISO 3166-1 alpha-2 code. List of values can be found [here](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) under the `region` tag. If left blank no region filtering will be performed. Example value: `US`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaMerchantCenterLinkingConfig": { +"description": "Configures Merchant Center linking. Links contained in the config will be used to sync data from a Merchant Center account to a Cloud Retail branch.", +"id": "GoogleCloudRetailV2betaMerchantCenterLinkingConfig", +"properties": { +"links": { +"description": "Links between Merchant Center accounts and branches.", +"items": { +"$ref": "GoogleCloudRetailV2betaMerchantCenterLink" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModel": { +"description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", +"id": "GoogleCloudRetailV2betaModel", +"properties": { +"createTime": { +"description": "Output only. Timestamp the Recommendation Model was created at.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataState": { +"description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"DATA_OK", +"DATA_ERROR" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has sufficient training data.", +"The model does not have sufficient training data. Error messages can be queried via Stackdriver." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", +"type": "string" +}, +"filteringOption": { +"description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"lastTuneTime": { +"description": "Output only. The timestamp when the latest successful tune finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFeaturesConfig": { +"$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", +"description": "Optional. Additional model features config." +}, +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"periodicTuningState": { +"description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", +"enum": [ +"PERIODIC_TUNING_STATE_UNSPECIFIED", +"PERIODIC_TUNING_DISABLED", +"ALL_TUNING_DISABLED", +"PERIODIC_TUNING_ENABLED" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", +"The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", +"The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." +], +"type": "string" +}, +"servingConfigLists": { +"description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", +"items": { +"$ref": "GoogleCloudRetailV2betaModelServingConfigList" +}, +"readOnly": true, +"type": "array" +}, +"servingState": { +"description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"TUNED" +], +"enumDescriptions": [ +"Unspecified serving state.", +"The model is not serving.", +"The model is serving and can be queried.", +"The model is trained on tuned hyperparameters and can be queried." +], +"readOnly": true, +"type": "string" +}, +"trainingState": { +"description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", +"enum": [ +"TRAINING_STATE_UNSPECIFIED", +"PAUSED", +"TRAINING" +], +"enumDescriptions": [ +"Unspecified training state.", +"The model training is paused.", +"The model is training." +], +"type": "string" +}, +"tuningOperation": { +"description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { +"description": "Additional configs for the frequently-bought-together model type.", +"id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", +"properties": { +"contextProductsType": { +"description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"enum": [ +"CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", +"SINGLE_CONTEXT_PRODUCT", +"MULTIPLE_CONTEXT_PRODUCTS" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", +"Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModelModelFeaturesConfig": { +"description": "Additional model features config.", +"id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", +"properties": { +"frequentlyBoughtTogetherConfig": { +"$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", +"description": "Additional configs for frequently-bought-together models." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModelServingConfigList": { +"description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", +"id": "GoogleCloudRetailV2betaModelServingConfigList", +"properties": { +"servingConfigIds": { +"description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaOutputConfig": { +"description": "The output configuration setting.", +"id": "GoogleCloudRetailV2betaOutputConfig", +"properties": { +"bigqueryDestination": { +"$ref": "GoogleCloudRetailV2betaOutputConfigBigQueryDestination", +"description": "The BigQuery location where the output is to be written to." +}, +"gcsDestination": { +"$ref": "GoogleCloudRetailV2betaOutputConfigGcsDestination", +"description": "The Google Cloud Storage location where the output is to be written to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaOutputConfigBigQueryDestination": { +"description": "The BigQuery output destination configuration.", +"id": "GoogleCloudRetailV2betaOutputConfigBigQueryDestination", +"properties": { +"datasetId": { +"description": "Required. The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableIdPrefix": { +"description": "Required. The prefix of exported BigQuery tables.", +"type": "string" +}, +"tableType": { +"description": "Required. Describes the table type. The following values are supported: * `table`: A BigQuery native table. * `view`: A virtual table defined by a SQL query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaOutputConfigGcsDestination": { +"description": "The Google Cloud Storage output destination configuration.", +"id": "GoogleCloudRetailV2betaOutputConfigGcsDestination", +"properties": { +"outputUriPrefix": { +"description": "Required. The output uri prefix for saving output data to json files. Some mapping examples are as follows: output_uri_prefix sample output(assuming the object is foo.json) ======================== ============================================= gs://bucket/ gs://bucket/foo.json gs://bucket/folder/ gs://bucket/folder/foo.json gs://bucket/folder/item_ gs://bucket/folder/item_foo.json", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaOutputResult": { +"description": "Output result that stores the information about where the exported data is stored.", +"id": "GoogleCloudRetailV2betaOutputResult", +"properties": { +"bigqueryResult": { +"description": "The BigQuery location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2betaBigQueryOutputResult" +}, +"type": "array" +}, +"gcsResult": { +"description": "The Google Cloud Storage location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2betaGcsOutputResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPauseModelRequest": { +"description": "Request for pausing training of a model.", +"id": "GoogleCloudRetailV2betaPauseModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaPinControlMetadata": { +"description": "Metadata for pinning to be returned in the response. This is used for distinguishing between applied vs dropped pins.", +"id": "GoogleCloudRetailV2betaPinControlMetadata", +"properties": { +"allMatchedPins": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaPinControlMetadataProductPins" +}, +"description": "Map of all matched pins, keyed by pin position.", +"type": "object" +}, +"droppedPins": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaPinControlMetadataProductPins" +}, +"description": "Map of pins that were dropped due to overlap with other matching pins, keyed by pin position.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPinControlMetadataProductPins": { +"description": "List of product ids which have associated pins.", +"id": "GoogleCloudRetailV2betaPinControlMetadataProductPins", +"properties": { +"productId": { +"description": "List of product ids which have associated pins.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPredictRequest": { +"description": "Request message for Predict method.", +"id": "GoogleCloudRetailV2betaPredictRequest", +"properties": { +"filter": { +"description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\")) For more information, see [Filter recommendations](https://cloud.google.com/retail/docs/filter-recs).", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", +"type": "object" +}, +"pageSize": { +"description": "Maximum number of results to return. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"deprecated": true, +"description": "This field is not used; leave it unset.", +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "any" +}, +"description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of a product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category. * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` field is interpreteted according to the new, attribute-based syntax.", +"type": "object" +}, +"userEvent": { +"$ref": "GoogleCloudRetailV2betaUserEvent", +"description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. Don't set UserEvent.visitor_id or UserInfo.user_id to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set UserEvent.visitor_id to a random unique ID and leave UserInfo.user_id unset." +}, +"validateOnly": { +"description": "Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPredictResponse": { +"description": "Response message for predict method.", +"id": "GoogleCloudRetailV2betaPredictResponse", +"properties": { +"attributionToken": { +"description": "A unique attribution token. This should be included in the UserEvent logs resulting from this recommendation, which enables accurate attribution of recommendation model performance.", +"type": "string" +}, +"missingIds": { +"description": "IDs of products in the request that were missing from the inventory.", +"items": { +"type": "string" +}, +"type": "array" +}, +"results": { +"description": "A list of recommended products. The order represents the ranking (from the most relevant product to the least).", +"items": { +"$ref": "GoogleCloudRetailV2betaPredictResponsePredictionResult" +}, +"type": "array" +}, +"validateOnly": { +"description": "True if the validateOnly property was set in the request.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPredictResponsePredictionResult": { +"description": "PredictionResult represents the recommendation prediction results.", +"id": "GoogleCloudRetailV2betaPredictResponsePredictionResult", +"properties": { +"id": { +"description": "ID of the recommended product", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "any" +}, +"description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Is set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Is set if `returnScore` is set to true in `PredictRequest.params`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPriceInfo": { +"description": "The price information of a Product.", +"id": "GoogleCloudRetailV2betaPriceInfo", +"properties": { +"cost": { +"description": "The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).", +"format": "float", +"type": "number" +}, +"currencyCode": { +"description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.", +"type": "string" +}, +"originalPrice": { +"description": "Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown.", +"format": "float", +"type": "number" +}, +"price": { +"description": "Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.price](https://schema.org/price).", +"format": "float", +"type": "number" +}, +"priceEffectiveTime": { +"description": "The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.", +"format": "google-datetime", +"type": "string" +}, +"priceExpireTime": { +"description": "The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.", +"format": "google-datetime", +"type": "string" +}, +"priceRange": { +"$ref": "GoogleCloudRetailV2betaPriceInfoPriceRange", +"description": "Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPriceInfoPriceRange": { +"description": "The price range of all variant Product having the same Product.primary_product_id.", +"id": "GoogleCloudRetailV2betaPriceInfoPriceRange", +"properties": { +"originalPrice": { +"$ref": "GoogleCloudRetailV2betaInterval", +"description": "The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id." +}, +"price": { +"$ref": "GoogleCloudRetailV2betaInterval", +"description": "The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProduct": { +"description": "Product captures all metadata information of items to be recommended or searched.", +"id": "GoogleCloudRetailV2betaProduct", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaCustomAttribute" +}, +"description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * For indexable attribute, the key must match the pattern: `a-zA-Z0-9*`. For example, `key0LikeThis` or `KEY_1_LIKE_THIS`. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a non-empty UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed.", +"type": "object" +}, +"audience": { +"$ref": "GoogleCloudRetailV2betaAudience", +"description": "The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product." +}, +"availability": { +"description": "The online availability of the Product. Default to Availability.IN_STOCK. For primary products with variants set the availability of the primary as Availability.OUT_OF_STOCK and set the true availability at the variant level. This way the primary product will be considered \"in stock\" as long as it has at least one variant in stock. For primary products with no variants set the true availability at the primary level. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability).", +"enum": [ +"AVAILABILITY_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"PREORDER", +"BACKORDER" +], +"enumDescriptions": [ +"Default product availability. Default to Availability.IN_STOCK if unset.", +"Product in stock.", +"Product out of stock.", +"Product that is in pre-order state.", +"Product that is back-ordered (i.e. temporarily out of stock)." +], +"type": "string" +}, +"availableQuantity": { +"description": "The available quantity of the item.", +"format": "int32", +"type": "integer" +}, +"availableTime": { +"description": "The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT.", +"format": "google-datetime", +"type": "string" +}, +"brands": { +"description": "The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", +"items": { +"type": "string" +}, +"type": "array" +}, +"categories": { +"description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden through the Google Cloud console. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", +"items": { +"type": "string" +}, +"type": "array" +}, +"collectionMemberIds": { +"description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", +"items": { +"type": "string" +}, +"type": "array" +}, +"colorInfo": { +"$ref": "GoogleCloudRetailV2betaColorInfo", +"description": "The color of the product. Corresponding properties: Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color)." +}, +"conditions": { +"description": "The condition of the product. Strongly encouraged to use the standard values: \"new\", \"refurbished\", \"used\". A maximum of 1 value is allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). Schema.org property [Product.description](https://schema.org/description).", +"type": "string" +}, +"expireTime": { +"description": "Note that this field is applied in the following ways: * If the Product is already expired when it is uploaded, this product is not indexed for search. * If the Product is not expired when it is uploaded, only the Type.PRIMARY's and Type.COLLECTION's expireTime is respected, and Type.VARIANT's expireTime is not used. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", +"format": "google-datetime", +"type": "string" +}, +"fulfillmentInfo": { +"description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"$ref": "GoogleCloudRetailV2betaFulfillmentInfo" +}, +"type": "array" +}, +"gtin": { +"description": "The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn), [Product.gtin8](https://schema.org/gtin8), [Product.gtin12](https://schema.org/gtin12), [Product.gtin13](https://schema.org/gtin13), or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"id": { +"description": "Immutable. Product identifier, which is the final component of name. For example, this field is \"id_1\", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org property [Product.sku](https://schema.org/sku).", +"type": "string" +}, +"images": { +"description": "Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", +"items": { +"$ref": "GoogleCloudRetailV2betaImage" +}, +"type": "array" +}, +"languageCode": { +"description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", +"type": "string" +}, +"localInventories": { +"description": "Output only. A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary.", +"items": { +"$ref": "GoogleCloudRetailV2betaLocalInventory" +}, +"readOnly": true, +"type": "array" +}, +"materials": { +"description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`.", +"type": "string" +}, +"patterns": { +"description": "The pattern or graphic print of the product. For example, \"striped\", \"polka dot\", \"paisley\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).", +"items": { +"type": "string" +}, +"type": "array" +}, +"priceInfo": { +"$ref": "GoogleCloudRetailV2betaPriceInfo", +"description": "Product price and cost information. Corresponding properties: Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." +}, +"primaryProductId": { +"description": "Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).", +"type": "string" +}, +"promotions": { +"description": "The promotions applied to the product. A maximum of 10 values are allowed per Product. Only Promotion.promotion_id will be used, other fields will be ignored if set.", +"items": { +"$ref": "GoogleCloudRetailV2betaPromotion" +}, +"type": "array" +}, +"publishTime": { +"description": "The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.", +"format": "google-datetime", +"type": "string" +}, +"rating": { +"$ref": "GoogleCloudRetailV2betaRating", +"description": "The rating of this product." +}, +"retrievableFields": { +"deprecated": true, +"description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead.", +"format": "google-fieldmask", +"type": "string" +}, +"sizes": { +"description": "The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in \"US:MENS:M\", \"US\" represents size system; \"MENS\" represents size type; \"M\" represents size value. In \"GIRLS:27\", size system is empty; \"GIRLS\" represents size type; \"27\" represents size value. In \"32 inches\", both size system and size type are empty, while size value is \"32 inches\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497), and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).", +"items": { +"type": "string" +}, +"type": "array" +}, +"tags": { +"description": "Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Corresponding properties: Google Merchant Center property [custom_label_0\u20134](https://support.google.com/merchants/answer/6324473).", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).", +"type": "string" +}, +"ttl": { +"description": "Input only. The TTL (time to live) of the product. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", +"format": "google-duration", +"type": "string" +}, +"type": { +"description": "Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.", +"enum": [ +"TYPE_UNSPECIFIED", +"PRIMARY", +"VARIANT", +"COLLECTION" +], +"enumDescriptions": [ +"Default value. Default to Catalog.product_level_config.ingestion_product_type if unset.", +"The primary type. As the primary unit for predicting, indexing and search serving, a Type.PRIMARY Product is grouped with multiple Type.VARIANT Products.", +"The variant type. Type.VARIANT Products usually share some common attributes on the same Type.PRIMARY Products, but they have variant attributes like different colors, sizes and prices, etc.", +"The collection type. Collection products are bundled Type.PRIMARY Products or Type.VARIANT Products that are sold together, such as a jewelry set with necklaces, earrings and rings, etc." +], +"type": "string" +}, +"uri": { +"description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", +"type": "string" +}, +"variants": { +"description": "Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", +"items": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProductAttributeInterval": { +"description": "Product attribute name and numeric interval.", +"id": "GoogleCloudRetailV2betaProductAttributeInterval", +"properties": { +"interval": { +"$ref": "GoogleCloudRetailV2betaInterval", +"description": "The numeric interval (e.g. [10, 20))" +}, +"name": { +"description": "The attribute name (e.g. \"length\")", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProductAttributeValue": { +"description": "Product attribute which structured by an attribute name and value. This structure is used in conversational search filters and answers. For example, if we have `name=color` and `value=red`, this means that the color is `red`.", +"id": "GoogleCloudRetailV2betaProductAttributeValue", +"properties": { +"name": { +"description": "The attribute name.", +"type": "string" +}, +"value": { +"description": "The attribute value.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProductDetail": { +"description": "Detailed product information associated with a user event.", +"id": "GoogleCloudRetailV2betaProductDetail", +"properties": { +"product": { +"$ref": "GoogleCloudRetailV2betaProduct", +"description": "Required. Product information. Required field(s): * Product.id Optional override field(s): * Product.price_info If any supported optional fields are provided, we will treat them as a full override when looking up product information from the catalog. Thus, it is important to ensure that the overriding fields are accurate and complete. All other product fields are ignored and instead populated via catalog lookup after event ingestion." +}, +"quantity": { +"description": "Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProductInlineSource": { +"description": "The inline source for the input config for ImportProducts method.", +"id": "GoogleCloudRetailV2betaProductInlineSource", +"properties": { +"products": { +"description": "Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.", +"items": { +"$ref": "GoogleCloudRetailV2betaProduct" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProductInputConfig": { +"description": "The input config source for products.", +"id": "GoogleCloudRetailV2betaProductInputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRetailV2betaBigQuerySource", +"description": "BigQuery input source." +}, +"gcsSource": { +"$ref": "GoogleCloudRetailV2betaGcsSource", +"description": "Google Cloud Storage location for the input content." +}, +"productInlineSource": { +"$ref": "GoogleCloudRetailV2betaProductInlineSource", +"description": "The Inline source for the input content for products." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaProductLevelConfig": { +"description": "Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made.", +"id": "GoogleCloudRetailV2betaProductLevelConfig", +"properties": { +"ingestionProductType": { +"description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant` (incompatible with Retail Search): You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", +"type": "string" +}, +"merchantCenterProductIdField": { +"description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPromotion": { +"description": "Promotion specification.", +"id": "GoogleCloudRetailV2betaPromotion", +"properties": { +"promotionId": { +"description": "Promotion identifier, which is the final component of name. For example, this field is \"free_gift\", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurchaseTransaction": { +"description": "A transaction represents the entire purchase transaction.", +"id": "GoogleCloudRetailV2betaPurchaseTransaction", +"properties": { +"cost": { +"description": "All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost", +"format": "float", +"type": "number" +}, +"currencyCode": { +"description": "Required. Currency code. Use three-character ISO-4217 code.", +"type": "string" +}, +"id": { +"description": "The transaction ID with a length limit of 128 characters.", +"type": "string" +}, +"revenue": { +"description": "Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.", +"format": "float", +"type": "number" +}, +"tax": { +"description": "All the taxes associated with the transaction.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeMetadata": { +"description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaPurgeMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeProductsMetadata": { +"description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaPurgeProductsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were deleted successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeProductsRequest": { +"description": "Request message for PurgeProducts method.", +"id": "GoogleCloudRetailV2betaPurgeProductsRequest", +"properties": { +"filter": { +"description": "Required. The filter string to specify the products to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. \"*\" implies delete all items in a branch. The eligible fields for filtering are: * `availability`: Double quoted Product.availability string. * `create_time` : in ISO 8601 \"zulu\" format. Supported syntax: * Comparators (\">\", \"<\", \">=\", \"<=\", \"=\"). Examples: * create_time <= \"2015-02-13T17:05:46Z\" * availability = \"IN_STOCK\" * Conjunctions (\"AND\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\" * Disjunctions (\"OR\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"IN_STOCK\" * Can support nested queries. Examples: * (create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\") OR (create_time >= \"2015-02-14T13:03:32Z\" AND availability = \"IN_STOCK\") * Filter Limits: * Filter should not contain more than 6 conditions. * Max nesting depth should not exceed 2 levels. Examples queries: * Delete back order products created before a timestamp. create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"BACKORDER\"", +"type": "string" +}, +"force": { +"description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any products.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeProductsResponse": { +"description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2betaPurgeProductsResponse", +"properties": { +"purgeCount": { +"description": "The total count of products purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"purgeSample": { +"description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeUserEventsRequest": { +"description": "Request message for PurgeUserEvents method.", +"id": "GoogleCloudRetailV2betaPurgeUserEventsRequest", +"properties": { +"filter": { +"description": "Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Deleting specific eventType in time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = \"detail-page-view\"` * Deleting all events for a specific visitor: `visitorId = \"visitor1024\"` The filtering fields are assumed to have an implicit AND.", +"type": "string" +}, +"force": { +"description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeUserEventsResponse": { +"description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2betaPurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRating": { +"description": "The rating of a Product.", +"id": "GoogleCloudRetailV2betaRating", +"properties": { +"averageRating": { +"description": "The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "float", +"type": "number" +}, +"ratingCount": { +"description": "The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +}, +"ratingHistogram": { +"description": "List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRejoinUserEventsMetadata": { +"description": "Metadata for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2betaRejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRejoinUserEventsRequest": { +"description": "Request message for RejoinUserEvents method.", +"id": "GoogleCloudRetailV2betaRejoinUserEventsRequest", +"properties": { +"userEventRejoinScope": { +"description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to an invalid integer value.", +"enum": [ +"USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", +"JOINED_EVENTS", +"UNJOINED_EVENTS" +], +"enumDescriptions": [ +"Rejoin all events with the latest product catalog, including both joined events and unjoined events.", +"Only rejoin joined events with the latest product catalog.", +"Only rejoin unjoined events with the latest product catalog." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRejoinUserEventsResponse": { +"description": "Response message for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2betaRejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest product catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveCatalogAttributeRequest": { +"description": "Request for CatalogService.RemoveCatalogAttribute method.", +"id": "GoogleCloudRetailV2betaRemoveCatalogAttributeRequest", +"properties": { +"key": { +"description": "Required. The attribute name key of the CatalogAttribute to remove.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveControlRequest": { +"description": "Request for RemoveControl method.", +"id": "GoogleCloudRetailV2betaRemoveControlRequest", +"properties": { +"controlId": { +"description": "Required. The id of the control to apply. Assumed to be in the same catalog as the serving config.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest": { +"description": "Request message for ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"placeIds": { +"description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeTime": { +"description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +}, +"type": { +"description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { +"description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveLocalInventoriesRequest": { +"description": "Request message for ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2betaRemoveLocalInventoriesRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the Product is not found, the local inventory removal request will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"placeIds": { +"description": "Required. A list of place IDs to have their inventory deleted. At most 3000 place IDs are allowed per request.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeTime": { +"description": "The time when the inventory deletions are issued. Used to prevent out-of-order updates and deletions on local inventory fields. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveLocalInventoriesResponse": { +"description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaReplaceCatalogAttributeRequest": { +"description": "Request for CatalogService.ReplaceCatalogAttribute method.", +"id": "GoogleCloudRetailV2betaReplaceCatalogAttributeRequest", +"properties": { +"catalogAttribute": { +"$ref": "GoogleCloudRetailV2betaCatalogAttribute", +"description": "Required. The updated CatalogAttribute." +}, +"updateMask": { +"description": "Indicates which fields in the provided CatalogAttribute to update. The following are NOT supported: * CatalogAttribute.key If not set, all supported fields are updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaResumeModelRequest": { +"description": "Request for resuming training of a model.", +"id": "GoogleCloudRetailV2betaResumeModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRule": { +"description": "A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH.", +"id": "GoogleCloudRetailV2betaRule", +"properties": { +"boostAction": { +"$ref": "GoogleCloudRetailV2betaRuleBoostAction", +"description": "A boost action." +}, +"condition": { +"$ref": "GoogleCloudRetailV2betaCondition", +"description": "Required. The condition that triggers the rule. If the condition is empty, the rule will always apply." +}, +"doNotAssociateAction": { +"$ref": "GoogleCloudRetailV2betaRuleDoNotAssociateAction", +"description": "Prevents term from being associated with other terms." +}, +"filterAction": { +"$ref": "GoogleCloudRetailV2betaRuleFilterAction", +"description": "Filters results." +}, +"forceReturnFacetAction": { +"$ref": "GoogleCloudRetailV2betaRuleForceReturnFacetAction", +"description": "Force returns an attribute as a facet in the request." +}, +"ignoreAction": { +"$ref": "GoogleCloudRetailV2betaRuleIgnoreAction", +"description": "Ignores specific terms from query during search." +}, +"onewaySynonymsAction": { +"$ref": "GoogleCloudRetailV2betaRuleOnewaySynonymsAction", +"description": "Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term." +}, +"pinAction": { +"$ref": "GoogleCloudRetailV2betaRulePinAction", +"description": "Pins one or more specified products to a specific position in the results." +}, +"redirectAction": { +"$ref": "GoogleCloudRetailV2betaRuleRedirectAction", +"description": "Redirects a shopper to a specific page." +}, +"removeFacetAction": { +"$ref": "GoogleCloudRetailV2betaRuleRemoveFacetAction", +"description": "Remove an attribute as a facet in the request (if present)." +}, +"replacementAction": { +"$ref": "GoogleCloudRetailV2betaRuleReplacementAction", +"description": "Replaces specific terms in the query." +}, +"twowaySynonymsAction": { +"$ref": "GoogleCloudRetailV2betaRuleTwowaySynonymsAction", +"description": "Treats a set of terms as synonyms of one another." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleBoostAction": { +"description": "A boost action to apply to results matching condition specified above.", +"id": "GoogleCloudRetailV2betaRuleBoostAction", +"properties": { +"boost": { +"description": "Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", +"format": "float", +"type": "number" +}, +"productsFilter": { +"description": "The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleDoNotAssociateAction": { +"description": "Prevents `query_term` from being associated with specified terms during search. Example: Don't associate \"gShoe\" and \"cheap\".", +"id": "GoogleCloudRetailV2betaRuleDoNotAssociateAction", +"properties": { +"doNotAssociateTerms": { +"description": "Cannot contain duplicates or the query term. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"queryTerms": { +"description": "Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"terms": { +"description": "Will be [deprecated = true] post migration;", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleFilterAction": { +"description": "* Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", +"id": "GoogleCloudRetailV2betaRuleFilterAction", +"properties": { +"filter": { +"description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleForceReturnFacetAction": { +"description": "Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is \"size\" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key \"size\" is not already in the top 8 slots, then the facet \"size\" will appear at a position close to 8. b) The facet key \"size\" in among the top 8 positions in the request, then it will stay at its current rank.", +"id": "GoogleCloudRetailV2betaRuleForceReturnFacetAction", +"properties": { +"facetPositionAdjustments": { +"description": "Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.", +"items": { +"$ref": "GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment": { +"description": "Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.", +"id": "GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment", +"properties": { +"attributeName": { +"description": "The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.", +"type": "string" +}, +"position": { +"description": "This is the position in the request as explained above. It should be strictly positive be at most 100.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleIgnoreAction": { +"description": "Prevents a term in the query from being used in search. Example: Don't search for \"shoddy\".", +"id": "GoogleCloudRetailV2betaRuleIgnoreAction", +"properties": { +"ignoreTerms": { +"description": "Terms to ignore in the search query.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleOnewaySynonymsAction": { +"description": "Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: \"sneakers\" will use a synonym of \"shoes\". \"shoes\" will not use a synonym of \"sneakers\".", +"id": "GoogleCloudRetailV2betaRuleOnewaySynonymsAction", +"properties": { +"onewayTerms": { +"description": "Will be [deprecated = true] post migration;", +"items": { +"type": "string" +}, +"type": "array" +}, +"queryTerms": { +"description": "Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"synonyms": { +"description": "Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRulePinAction": { +"description": "Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, \"pid1\"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed.", +"id": "GoogleCloudRetailV2betaRulePinAction", +"properties": { +"pinMap": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleRedirectAction": { +"description": "Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", +"id": "GoogleCloudRetailV2betaRuleRedirectAction", +"properties": { +"redirectUri": { +"description": "URL must have length equal or less than 2000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleRemoveFacetAction": { +"description": "Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\" and the attribute name \"size\", then facet key \"size\" will be removed from the request (if it is present).", +"id": "GoogleCloudRetailV2betaRuleRemoveFacetAction", +"properties": { +"attributeNames": { +"description": "The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleReplacementAction": { +"description": "Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace \"gShoe\" with \"google shoe\".", +"id": "GoogleCloudRetailV2betaRuleReplacementAction", +"properties": { +"queryTerms": { +"description": "Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"replacementTerm": { +"description": "Term that will be used for replacement.", +"type": "string" +}, +"term": { +"description": "Will be [deprecated = true] post migration;", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRuleTwowaySynonymsAction": { +"description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\": * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", +"id": "GoogleCloudRetailV2betaRuleTwowaySynonymsAction", +"properties": { +"synonyms": { +"description": "Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequest": { +"description": "Request message for SearchService.Search method.", +"id": "GoogleCloudRetailV2betaSearchRequest", +"properties": { +"boostSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpec", +"description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." +}, +"branch": { +"description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", +"type": "string" +}, +"canonicalFilter": { +"description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", +"type": "string" +}, +"conversationalSearchSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestConversationalSearchSpec", +"description": "Optional. This field specifies all conversational related parameters addition to traditional retail search." +}, +"dynamicFacetSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", +"deprecated": true, +"description": "Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic to enable dynamic facets. Do not set this field. The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated." +}, +"entity": { +"description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get search results boosted by entity.", +"type": "string" +}, +"facetSpecs": { +"description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpec" +}, +"type": "array" +}, +"filter": { +"description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", +"type": "object" +}, +"offset": { +"description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", +"type": "string" +}, +"pageCategories": { +"description": "The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"personalizationSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestPersonalizationSpec", +"description": "The specification for personalization. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." +}, +"query": { +"description": "Raw search query. If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.", +"type": "string" +}, +"queryExpansionSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec", +"description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." +}, +"searchMode": { +"description": "The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.", +"enum": [ +"SEARCH_MODE_UNSPECIFIED", +"PRODUCT_SEARCH_ONLY", +"FACETED_SEARCH_ONLY" +], +"enumDescriptions": [ +"Default value. In this case both product search and faceted search will be performed. Both SearchResponse.SearchResult and SearchResponse.Facet will be returned.", +"Only product search will be performed. The faceted search will be disabled. Only SearchResponse.SearchResult will be returned. SearchResponse.Facet will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", +"Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_specs and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only SearchResponse.Facet will be returned. SearchResponse.SearchResult will not be returned." +], +"type": "string" +}, +"spellCorrectionSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec", +"description": "The spell correction specification that specifies the mode under which spell correction will take effect." +}, +"tileNavigationSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestTileNavigationSpec", +"description": "Optional. This field specifies tile navigation related parameters." +}, +"userInfo": { +"$ref": "GoogleCloudRetailV2betaUserInfo", +"description": "User information." +}, +"variantRollupKeys": { +"description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.local_inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"visitorId": { +"description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. This should be the same identifier as UserEvent.visitor_id. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestBoostSpec": { +"description": "Boost specification to boost certain items.", +"id": "GoogleCloudRetailV2betaSearchRequestBoostSpec", +"properties": { +"conditionBoostSpecs": { +"description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec" +}, +"type": "array" +}, +"skipBoostSpecValidation": { +"description": "Whether to skip boostspec validation. If this field is set to true, invalid BoostSpec.condition_boost_specs will be ignored and valid BoostSpec.condition_boost_specs will still be applied.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec": { +"description": "Boost applies to products which match a condition.", +"id": "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec", +"properties": { +"boost": { +"description": "Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", +"format": "float", +"type": "number" +}, +"condition": { +"description": "An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": * (id: ANY(\"product_1\", \"product_2\")) AND (colorFamilies: ANY(\"Red\",\"Blue\"))", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestConversationalSearchSpec": { +"description": "This field specifies all conversational related parameters addition to traditional retail search.", +"id": "GoogleCloudRetailV2betaSearchRequestConversationalSearchSpec", +"properties": { +"conversationId": { +"description": "This field specifies the conversation id, which maintains the state of the conversation between client side and server side. Use the value from the previous ConversationalSearchResult.conversation_id. For the initial request, this should be empty.", +"type": "string" +}, +"followupConversationRequested": { +"description": "This field specifies whether the customer would like to do conversational search. If this field is set to true, conversational related extra information will be returned from server side, including follow-up question, answer options, etc.", +"type": "boolean" +}, +"userAnswer": { +"$ref": "GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswer", +"description": "This field specifies the current user answer during the conversational search. This can be either user selected from suggested answers or user input plain text." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswer": { +"description": "This field specifies the current user answer during the conversational search. This can be either user selected from suggested answers or user input plain text.", +"id": "GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswer", +"properties": { +"selectedAnswer": { +"$ref": "GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswerSelectedAnswer", +"description": "This field specifies the selected attributes during the conversational search. This should be a subset of ConversationalSearchResult.suggested_answers." +}, +"textAnswer": { +"description": "This field specifies the incremental input text from the user during the conversational search.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswerSelectedAnswer": { +"description": "This field specifies the selected answers during the conversational search.", +"id": "GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswerSelectedAnswer", +"properties": { +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2betaProductAttributeValue", +"description": "This field specifies the selected answer which is a attribute key-value." +}, +"productAttributeValues": { +"deprecated": true, +"description": "This field is deprecated and should not be set.", +"items": { +"$ref": "GoogleCloudRetailV2betaProductAttributeValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec": { +"description": "The specifications of dynamically generated facets.", +"id": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", +"properties": { +"mode": { +"description": "Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.", +"enum": [ +"MODE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"Default value.", +"Disable Dynamic Facet.", +"Automatic mode built by Google Retail Search." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestFacetSpec": { +"description": "A facet specification to perform faceted search.", +"id": "GoogleCloudRetailV2betaSearchRequestFacetSpec", +"properties": { +"enableDynamicPosition": { +"description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", +"type": "boolean" +}, +"excludedFilterKeys": { +"description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet \"Red\" and 200 products with the color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and having \"colorFamilies\" as FacetKey.key would by default return only \"Red\" products in the search results, and also return \"Red\" with count 100 as the only color facet. Although there are also blue products available, \"Blue\" would not be shown as an available facet value. If \"colorFamilies\" is listed in \"excludedFilterKeys\", then the query returns the facet values \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only \"Red\" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"facetKey": { +"$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey", +"description": "Required. The facet key specification." +}, +"limit": { +"description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey": { +"description": "Specifies how a facet is computed.", +"id": "GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey", +"properties": { +"caseInsensitive": { +"description": "True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise.", +"type": "boolean" +}, +"contains": { +"description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intervals": { +"description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", +"items": { +"$ref": "GoogleCloudRetailV2betaInterval" +}, +"type": "array" +}, +"key": { +"description": "Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = * \"brands\" * \"categories\" * \"genders\" * \"ageGroups\" * \"availability\" * \"colorFamilies\" * \"colors\" * \"sizes\" * \"materials\" * \"patterns\" * \"conditions\" * \"attributes.key\" * \"pickupInStore\" * \"shipToStore\" * \"sameDayDelivery\" * \"nextDayDelivery\" * \"customFulfillment1\" * \"customFulfillment2\" * \"customFulfillment3\" * \"customFulfillment4\" * \"customFulfillment5\" * \"inventory(place_id,attributes.key)\" * numerical_field = * \"price\" * \"discount\" * \"rating\" * \"ratingCount\" * \"attributes.key\" * \"inventory(place_id,price)\" * \"inventory(place_id,original_price)\" * \"inventory(place_id,attributes.key)\"", +"type": "string" +}, +"orderBy": { +"description": "The order in which SearchResponse.Facet.values are returned. Allowed values are: * \"count desc\", which means order by SearchResponse.Facet.values.count descending. * \"value desc\", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", +"type": "string" +}, +"prefixes": { +"description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", +"items": { +"type": "string" +}, +"type": "array" +}, +"query": { +"description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", +"type": "string" +}, +"restrictedValues": { +"description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", +"items": { +"type": "string" +}, +"type": "array" +}, +"returnMinMax": { +"description": "Returns the min and max value for each numerical facet intervals. Ignored for textual facets.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestPersonalizationSpec": { +"description": "The specification for personalization.", +"id": "GoogleCloudRetailV2betaSearchRequestPersonalizationSpec", +"properties": { +"mode": { +"description": "Defaults to Mode.AUTO.", +"enum": [ +"MODE_UNSPECIFIED", +"AUTO", +"DISABLED" +], +"enumDescriptions": [ +"Default value. In this case, server behavior defaults to Mode.AUTO.", +"Let CRS decide whether to use personalization based on quality of user event data.", +"Disable personalization." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec": { +"description": "Specification to determine under which conditions query expansion should occur.", +"id": "GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec", +"properties": { +"condition": { +"description": "The condition under which query expansion should occur. Default to Condition.DISABLED.", +"enum": [ +"CONDITION_UNSPECIFIED", +"DISABLED", +"AUTO" +], +"enumDescriptions": [ +"Unspecified query expansion condition. In this case, server behavior defaults to Condition.DISABLED.", +"Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", +"Automatic query expansion built by Google Retail Search." +], +"type": "string" +}, +"pinUnexpandedResults": { +"description": "Whether to pin unexpanded results. If this field is set to true, unexpanded products are always at the top of the search results, followed by the expanded results.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec": { +"description": "The specification for query spell correction.", +"id": "GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec", +"properties": { +"mode": { +"description": "The mode under which spell correction should take effect to replace the original search query. Default to Mode.AUTO.", +"enum": [ +"MODE_UNSPECIFIED", +"SUGGESTION_ONLY", +"AUTO" +], +"enumDescriptions": [ +"Unspecified spell correction mode. In this case, server behavior defaults to Mode.AUTO.", +"Google Retail Search will try to find a spell suggestion if there is any and put in the SearchResponse.corrected_query. The spell suggestion will not be used as the search query.", +"Automatic spell correction built by Google Retail Search. Search will be based on the corrected query if found." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchRequestTileNavigationSpec": { +"description": "This field specifies tile navigation related parameters.", +"id": "GoogleCloudRetailV2betaSearchRequestTileNavigationSpec", +"properties": { +"appliedTiles": { +"description": "This field specifies the tiles which are already clicked in client side. NOTE: This field is not being used for filtering search products. Client side should also put all the applied tiles in SearchRequest.filter.", +"items": { +"$ref": "GoogleCloudRetailV2betaTile" +}, +"type": "array" +}, +"tileNavigationRequested": { +"description": "This field specifies whether the customer would like to request tile navigation.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponse": { +"description": "Response message for SearchService.Search method.", +"id": "GoogleCloudRetailV2betaSearchResponse", +"properties": { +"appliedControls": { +"description": "The fully qualified resource name of applied [controls](https://cloud.google.com/retail/docs/serving-control-rules).", +"items": { +"type": "string" +}, +"type": "array" +}, +"attributionToken": { +"description": "A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.", +"type": "string" +}, +"conversationalSearchResult": { +"$ref": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResult", +"description": "This field specifies all related information that is needed on client side for UI rendering of conversational retail search." +}, +"correctedQuery": { +"description": "Contains the spell corrected query, if found. If the spell correction type is AUTOMATIC, then the search results are based on corrected_query. Otherwise the original query is used for search.", +"type": "string" +}, +"experimentInfo": { +"description": "Metadata related to A/B testing experiment associated with this response. Only exists when an experiment is triggered.", +"items": { +"$ref": "GoogleCloudRetailV2betaExperimentInfo" +}, +"type": "array" +}, +"facets": { +"description": "Results of facets requested by user.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchResponseFacet" +}, +"type": "array" +}, +"invalidConditionBoostSpecs": { +"description": "The invalid SearchRequest.BoostSpec.condition_boost_specs that are not applied during serving.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"pinControlMetadata": { +"$ref": "GoogleCloudRetailV2betaPinControlMetadata", +"description": "Metadata for pin controls which were applicable to the request. This contains two map fields, one for all matched pins and one for pins which were matched but not applied. The two maps are keyed by pin position, and the values are the product ids which were matched to that pin." +}, +"queryExpansionInfo": { +"$ref": "GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo", +"description": "Query expansion information for the returned results." +}, +"redirectUri": { +"description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search is performed, and only redirect_uri and attribution_token are set in the response.", +"type": "string" +}, +"results": { +"description": "A list of matched items. The order represents the ranking.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchResponseSearchResult" +}, +"type": "array" +}, +"tileNavigationResult": { +"$ref": "GoogleCloudRetailV2betaSearchResponseTileNavigationResult", +"description": "This field specifies all related information for tile navigation that will be used in client side." +}, +"totalSize": { +"description": "The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseConversationalSearchResult": { +"description": "This field specifies all related information that is needed on client side for UI rendering of conversational retail search.", +"id": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResult", +"properties": { +"additionalFilter": { +"$ref": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter", +"description": "This is the incremental additional filters implied from the current user answer. User should add the suggested addition filters to the previous SearchRequest.filter, and use the merged filter in the follow up search request." +}, +"additionalFilters": { +"deprecated": true, +"description": "This field is deprecated but will be kept for backward compatibility. There is expected to have only one additional filter and the value will be the same to the same as field `additional_filter`.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter" +}, +"type": "array" +}, +"conversationId": { +"description": "Conversation UUID. This field will be stored in client side storage to maintain the conversation session with server and will be used for next search request's SearchRequest.ConversationalSearchSpec.conversation_id to restore conversation state in server.", +"type": "string" +}, +"followupQuestion": { +"description": "The follow-up question. e.g., `What is the color?`", +"type": "string" +}, +"refinedQuery": { +"description": "The current refined query for the conversational search. This field will be used in customer UI that the query in the search bar should be replaced with the refined query. For example, if SearchRequest.query is `dress` and next SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer is `red color`, which does not match any product attribute value filters, the refined query will be `dress, red color`.", +"type": "string" +}, +"suggestedAnswers": { +"description": "The answer options provided to client for the follow-up question.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResultSuggestedAnswer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter": { +"description": "Additional filter that client side need to apply.", +"id": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter", +"properties": { +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2betaProductAttributeValue", +"description": "Product attribute value, including an attribute key and an attribute value. Other types can be added here in the future." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseConversationalSearchResultSuggestedAnswer": { +"description": "Suggested answers to the follow-up question.", +"id": "GoogleCloudRetailV2betaSearchResponseConversationalSearchResultSuggestedAnswer", +"properties": { +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2betaProductAttributeValue", +"description": "Product attribute value, including an attribute key and an attribute value. Other types can be added here in the future." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseFacet": { +"description": "A facet result.", +"id": "GoogleCloudRetailV2betaSearchResponseFacet", +"properties": { +"dynamicFacet": { +"description": "Whether the facet is dynamically generated.", +"type": "boolean" +}, +"key": { +"description": "The key for this facet. E.g., \"colorFamilies\" or \"price\" or \"attributes.attr1\".", +"type": "string" +}, +"values": { +"description": "The facet values for this field.", +"items": { +"$ref": "GoogleCloudRetailV2betaSearchResponseFacetFacetValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseFacetFacetValue": { +"description": "A facet value which contains value names and their count.", +"id": "GoogleCloudRetailV2betaSearchResponseFacetFacetValue", +"properties": { +"count": { +"description": "Number of items that have this facet value.", +"format": "int64", +"type": "string" +}, +"interval": { +"$ref": "GoogleCloudRetailV2betaInterval", +"description": "Interval value for a facet, such as [10, 20) for facet \"price\"." +}, +"maxValue": { +"description": "The maximum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "The minimum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", +"format": "double", +"type": "number" +}, +"value": { +"description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo": { +"description": "Information describing query expansion including whether expansion has occurred.", +"id": "GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo", +"properties": { +"expandedQuery": { +"description": "Bool describing whether query expansion has occurred.", +"type": "boolean" +}, +"pinnedResultCount": { +"description": "Number of pinned results. This field will only be set when expansion happens and SearchRequest.QueryExpansionSpec.pin_unexpanded_results is set to true.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseSearchResult": { +"description": "Represents the search results.", +"id": "GoogleCloudRetailV2betaSearchResponseSearchResult", +"properties": { +"id": { +"description": "Product.id of the searched Product.", +"type": "string" +}, +"matchingVariantCount": { +"description": "The count of matched variant Products.", +"format": "int32", +"type": "integer" +}, +"matchingVariantFields": { +"additionalProperties": { +"format": "google-fieldmask", +"type": "string" +}, +"description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", +"type": "object" +}, +"personalLabels": { +"description": "Specifies previous events related to this product for this user based on UserEvent with same SearchRequest.visitor_id or UserInfo.user_id. This is set only when SearchRequest.PersonalizationSpec.mode is SearchRequest.PersonalizationSpec.Mode.AUTO. Possible values: * `purchased`: Indicates that this product has been purchased before.", +"items": { +"type": "string" +}, +"type": "array" +}, +"product": { +"$ref": "GoogleCloudRetailV2betaProduct", +"description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." +}, +"variantRollupValues": { +"additionalProperties": { +"type": "any" +}, +"description": "The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by \"colorFamilies:ANY(\\\"red\\\")\" and rollup \"colorFamilies\", only \"red\" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors \"red\" and \"blue\", the rollup values are { key: \"colorFamilies\" value { list_value { values { string_value: \"red\" } values { string_value: \"blue\" } } } } For FulfillmentInfo, the rollup values is a double value with type google.protobuf.Value. For example, `{key: \"pickupInStore.store1\" value { number_value: 10 }}` means a there are 10 variants in this product are available in the store \"store1\".", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSearchResponseTileNavigationResult": { +"description": "This field specifies all related information for tile navigation that will be used in client side.", +"id": "GoogleCloudRetailV2betaSearchResponseTileNavigationResult", +"properties": { +"tiles": { +"description": "The current tiles that are used for tile navigation, sorted by engagement.", +"items": { +"$ref": "GoogleCloudRetailV2betaTile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaServingConfig": { +"description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions).", +"id": "GoogleCloudRetailV2betaServingConfig", +"properties": { +"boostControlIds": { +"description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The human readable serving config display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"diversityLevel": { +"description": "How much diversity to use in recommendation model results e.g. `medium-diversity` or `high-diversity`. Currently supported values: * `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` * `auto-diversity` If not specified, we choose default based on recommendation model type. Default value: `no-diversity`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"diversityType": { +"description": "What kind of diversity to use - data driven or rule based. If unset, the server behavior defaults to RULE_BASED_DIVERSITY.", +"enum": [ +"DIVERSITY_TYPE_UNSPECIFIED", +"RULE_BASED_DIVERSITY", +"DATA_DRIVEN_DIVERSITY" +], +"enumDescriptions": [ +"Default value.", +"Rule based diversity.", +"Data driven diversity." +], +"type": "string" +}, +"doNotAssociateControlIds": { +"description": "Condition do not associate specifications. If multiple do not associate conditions match, all matching do not associate controls in the list will execute. - Order does not matter. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dynamicFacetSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", +"description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. Can only be set if solution_types is SOLUTION_TYPE_SEARCH." +}, +"enableCategoryFilterLevel": { +"description": "Whether to add additional category filters on the `similar-items` model. If not specified, we enable it by default. Allowed values are: * `no-category-match`: No additional filtering of original results from the model and the customer's filters. * `relaxed-category-match`: Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"facetControlIds": { +"description": "Facet specifications for faceted search. If empty, no facets are returned. The ids refer to the ids of Control resources with only the Facet control set. These controls are assumed to be in the same Catalog as the ServingConfig. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filterControlIds": { +"description": "Condition filter specifications. If a product matches multiple conditions in the specifications, filters from these specifications are all applied and combined via the AND operator. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoreControlIds": { +"description": "Condition ignore specifications. If multiple ignore conditions match, all matching ignore controls in the list will execute. - Order does not matter. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoreRecsDenylist": { +"description": "When the flag is enabled, the products in the denylist will not be filtered out in the recommendation filtering results.", +"type": "boolean" +}, +"modelId": { +"description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", +"type": "string" +}, +"onewaySynonymsControlIds": { +"description": "Condition oneway synonyms specifications. If multiple oneway synonyms conditions match, all matching oneway synonyms controls in the list will execute. Order of controls in the list will not matter. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"personalizationSpec": { +"$ref": "GoogleCloudRetailV2betaSearchRequestPersonalizationSpec", +"description": "The specification for personalization spec. Can only be set if solution_types is SOLUTION_TYPE_SEARCH. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." +}, +"priceRerankingLevel": { +"description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * `no-price-reranking` * `low-price-reranking` * `medium-price-reranking` * `high-price-reranking` If not specified, we choose default based on model type. Default value: `no-price-reranking`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"redirectControlIds": { +"description": "Condition redirect specifications. Only the first triggered redirect action is applied, even if multiple apply. Maximum number of specifications is 1000. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"replacementControlIds": { +"description": "Condition replacement specifications. - Applied according to the order in the list. - A previously replaced term can not be re-replaced. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"solutionTypes": { +"description": "Required. Immutable. Specifies the solution types that a serving config can be associated with. Currently we support setting only one type of solution.", +"items": { +"enum": [ +"SOLUTION_TYPE_UNSPECIFIED", +"SOLUTION_TYPE_RECOMMENDATION", +"SOLUTION_TYPE_SEARCH" +], +"enumDescriptions": [ +"Default value.", +"Used for Recommendations AI.", +"Used for Retail Search." +], +"type": "string" +}, +"type": "array" +}, +"twowaySynonymsControlIds": { +"description": "Condition synonyms specifications. If multiple syonyms conditions match, all matching synonyms control in the list will execute. Order of controls in the list will not matter. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSetDefaultBranchRequest": { +"description": "Request message to set a specified branch as new default_branch.", +"id": "GoogleCloudRetailV2betaSetDefaultBranchRequest", +"properties": { +"branchId": { +"description": "The final component of the resource name of a branch. This field must be one of \"0\", \"1\" or \"2\". Otherwise, an INVALID_ARGUMENT error is returned. If there are no sufficient active products in the targeted branch and force is not set, a FAILED_PRECONDITION error is returned.", +"type": "string" +}, +"force": { +"description": "If set to true, it permits switching to a branch with branch_id even if it has no sufficient active products.", +"type": "boolean" +}, +"note": { +"description": "Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSetInventoryMetadata": { +"description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2betaSetInventoryMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaSetInventoryRequest": { +"description": "Request message for ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2betaSetInventoryRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"inventory": { +"$ref": "GoogleCloudRetailV2betaProduct", +"description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, ProductService.UpdateProduct should be invoked instead." +}, +"setMask": { +"description": "Indicates which inventory fields in the provided Product to update. At least one field must be provided. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", +"format": "google-fieldmask", +"type": "string" +}, +"setTime": { +"description": "The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaSetInventoryResponse": { +"description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2betaSetInventoryResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaTile": { +"description": "This field specifies the tile information including an attribute key, attribute value. More fields will be added in the future, eg: product id or product counts, etc.", +"id": "GoogleCloudRetailV2betaTile", +"properties": { +"productAttributeInterval": { +"$ref": "GoogleCloudRetailV2betaProductAttributeInterval", +"description": "The product attribute key-numeric interval." +}, +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2betaProductAttributeValue", +"description": "The product attribute key-value." +}, +"representativeProductId": { +"description": "The representative product id for this tile.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaTuneModelMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRetailV2betaTuneModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaTuneModelRequest": { +"description": "Request to manually start a tuning process now (instead of waiting for the periodically scheduled tuning to happen).", +"id": "GoogleCloudRetailV2betaTuneModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaTuneModelResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRetailV2betaTuneModelResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaUpdateGenerativeQuestionConfigRequest": { +"description": "Request for UpdateGenerativeQuestionConfig method.", +"id": "GoogleCloudRetailV2betaUpdateGenerativeQuestionConfigRequest", +"properties": { +"generativeQuestionConfig": { +"$ref": "GoogleCloudRetailV2betaGenerativeQuestionConfig", +"description": "Required. The question to update." +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided GenerativeQuestionConfig to update. The following are NOT supported: * GenerativeQuestionConfig.frequency If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaUserEvent": { +"description": "UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.", +"id": "GoogleCloudRetailV2betaUserEvent", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2betaCustomAttribute" +}, +"description": "Extra user event features to include in the recommendation model. If you provide custom attributes for ingested user events, also include them in the user events that you associate with prediction requests. Custom attribute formatting must be consistent between imported events and events provided with prediction requests. This lets the Retail API use those custom attributes when training models and serving predictions, which helps improve recommendation quality. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendations, an example of extra user information is traffic_channel, which is how a user arrives at the site. Users can arrive at the site by coming to the site directly, coming through Google search, or in other ways.", +"type": "object" +}, +"attributionToken": { +"description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", +"type": "string" +}, +"cartId": { +"description": "The ID or name of the associated shopping cart. This ID is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.", +"type": "string" +}, +"completionDetail": { +"$ref": "GoogleCloudRetailV2betaCompletionDetail", +"description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." +}, +"entity": { +"description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", +"type": "string" +}, +"eventTime": { +"description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `remove-from-cart`: Products being removed from cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.", +"type": "string" +}, +"experimentIds": { +"description": "A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"offset": { +"description": "An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"pageCategories": { +"description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageViewId": { +"description": "A unique ID of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.", +"type": "string" +}, +"productDetails": { +"description": "The main product details related to the event. This field is optional except for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", +"items": { +"$ref": "GoogleCloudRetailV2betaProductDetail" +}, +"type": "array" +}, +"purchaseTransaction": { +"$ref": "GoogleCloudRetailV2betaPurchaseTransaction", +"description": "A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned." +}, +"referrerUri": { +"description": "The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.", +"type": "string" +}, +"searchQuery": { +"description": "The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"sessionId": { +"description": "A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix.", +"type": "string" +}, +"uri": { +"description": "Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.", +"type": "string" +}, +"userInfo": { +"$ref": "GoogleCloudRetailV2betaUserInfo", +"description": "User information." +}, +"visitorId": { +"description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analytics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaUserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRetailV2betaUserEventImportSummary", +"properties": { +"joinedEventsCount": { +"description": "Count of user events imported with complete existing catalog information.", +"format": "int64", +"type": "string" +}, +"unjoinedEventsCount": { +"description": "Count of user events imported, but with catalog information not found in the imported catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaUserEventInlineSource": { +"description": "The inline source for the input config for ImportUserEvents method.", +"id": "GoogleCloudRetailV2betaUserEventInlineSource", +"properties": { +"userEvents": { +"description": "Required. A list of user events to import. Recommended max of 10k items.", +"items": { +"$ref": "GoogleCloudRetailV2betaUserEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaUserEventInputConfig": { +"description": "The input config source for user events.", +"id": "GoogleCloudRetailV2betaUserEventInputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRetailV2betaBigQuerySource", +"description": "Required. BigQuery input source." +}, +"gcsSource": { +"$ref": "GoogleCloudRetailV2betaGcsSource", +"description": "Required. Google Cloud Storage location for the input content." +}, +"userEventInlineSource": { +"$ref": "GoogleCloudRetailV2betaUserEventInlineSource", +"description": "Required. The Inline source for the input content for UserEvents." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaUserInfo": { +"description": "Information of an end user.", +"id": "GoogleCloudRetailV2betaUserInfo", +"properties": { +"directUserRequest": { +"description": "True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.", +"type": "boolean" +}, +"ipAddress": { +"description": "The end user's IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when: * setting SearchRequest.user_info. * using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", +"type": "string" +}, +"userAgent": { +"description": "User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", +"type": "string" +}, +"userId": { +"description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. Don't set for anonymous users. Always use a hashed value for this ID. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"description": "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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeDate": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "GoogleTypeDate", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Vertex AI Search for Retail API", +"version": "v2beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/run.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/run.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..ed4980757d8383e785f47328f3fd92c4fd4d6a5a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/run.v1beta1.json @@ -0,0 +1,898 @@ +{ + "description": "Deploy and manage user provided container images that scale automatically based on HTTP traffic.", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + }, + "id": "run:v1beta1", + "mtlsRootUrl": "https://run.mtls.googleapis.com/", + "version": "v1beta1", + "basePath": "", + "protocol": "rest", + "name": "run", + "canonicalName": "Cloud Run", + "servicePath": "", + "resources": { + "namespaces": { + "resources": { + "customresourcedefinitions": { + "methods": { + "get": { + "description": "Rpc to get information about a CustomResourceDefinition.", + "httpMethod": "GET", + "id": "run.namespaces.customresourcedefinitions.get", + "path": "apis/apiextensions.k8s.io/v1beta1/{+name}", + "flatPath": "apis/apiextensions.k8s.io/v1beta1/namespaces/{namespacesId}/customresourcedefinitions/{customresourcedefinitionsId}", + "parameters": { + "name": { + "location": "path", + "required": true, + "type": "string", + "pattern": "^namespaces/[^/]+/customresourcedefinitions/[^/]+$", + "description": "The name of the CustomResourceDefinition being retrieved. If needed, replace {namespace_id} with the project ID." + } + }, + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "response": { + "$ref": "CustomResourceDefinition" + } + } + } + } + } + }, + "customresourcedefinitions": { + "methods": { + "list": { + "parameterOrder": [], + "path": "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions", + "description": "Rpc to list custom resource definitions.", + "id": "run.customresourcedefinitions.list", + "httpMethod": "GET", + "parameters": { + "limit": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "labelSelector": { + "description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", + "type": "string", + "location": "query" + }, + "watch": { + "description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "type": "boolean", + "location": "query" + }, + "continue": { + "location": "query", + "type": "string", + "description": "Optional encoded string to continue paging." + }, + "parent": { + "type": "string", + "description": "The project ID or project number from which the storages should be listed.", + "location": "query" + }, + "fieldSelector": { + "location": "query", + "type": "string", + "description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run." + }, + "includeUninitialized": { + "type": "boolean", + "description": "Not currently used by Cloud Run.", + "location": "query" + }, + "resourceVersion": { + "description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "response": { + "$ref": "ListCustomResourceDefinitionsResponse" + }, + "flatPath": "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions" + } + } + }, + "projects": { + "resources": { + "locations": { + "resources": { + "customresourcedefinitions": { + "methods": { + "list": { + "path": "v1beta1/{+parent}/customresourcedefinitions", + "parameterOrder": [ + "parent" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/customresourcedefinitions", + "id": "run.projects.locations.customresourcedefinitions.list", + "description": "Rpc to list custom resource definitions.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "httpMethod": "GET", + "response": { + "$ref": "ListCustomResourceDefinitionsResponse" + }, + "parameters": { + "continue": { + "description": "Optional encoded string to continue paging.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "The project ID or project number from which the storages should be listed.", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string", + "location": "path" + }, + "limit": { + "format": "int32", + "type": "integer", + "location": "query" + }, + "includeUninitialized": { + "type": "boolean", + "description": "Not currently used by Cloud Run.", + "location": "query" + }, + "resourceVersion": { + "description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "location": "query", + "type": "string" + }, + "labelSelector": { + "type": "string", + "location": "query", + "description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn." + }, + "fieldSelector": { + "type": "string", + "description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "location": "query" + }, + "watch": { + "description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "location": "query", + "type": "boolean" + } + } + }, + "get": { + "parameters": { + "name": { + "location": "path", + "description": "The name of the CustomResourceDefinition being retrieved. If needed, replace {namespace_id} with the project ID.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/customresourcedefinitions/[^/]+$" + } + }, + "path": "v1beta1/{+name}", + "parameterOrder": [ + "name" + ], + "description": "Rpc to get information about a CustomResourceDefinition.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "response": { + "$ref": "CustomResourceDefinition" + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/customresourcedefinitions/{customresourcedefinitionsId}", + "id": "run.projects.locations.customresourcedefinitions.get", + "httpMethod": "GET" + } + } + } + } + } + } + } + }, + "ownerName": "Google", + "ownerDomain": "google.com", + "fullyEncodeReservedExpansion": true, + "title": "Cloud Run Admin API", + "parameters": { + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "type": "string", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "fields": { + "type": "string", + "location": "query", + "description": "Selector specifying which fields to include in a partial response." + }, + "key": { + "location": "query", + "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." + }, + "alt": { + "default": "json", + "location": "query", + "enum": [ + "json", + "media", + "proto" + ], + "description": "Data format for response.", + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "access_token": { + "type": "string", + "location": "query", + "description": "OAuth access token." + } + }, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "baseUrl": "https://run.googleapis.com/", + "rootUrl": "https://run.googleapis.com/", + "schemas": { + "CustomResourceDefinitionSpec": { + "properties": { + "subresources": { + "$ref": "CustomResourceSubresources", + "description": "Subresources describes the subresources for CustomResources +optional" + }, + "version": { + "description": "Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`. +optional", + "type": "string" + }, + "scope": { + "type": "string", + "description": "Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced" + }, + "validation": { + "description": "Validation describes the validation methods for CustomResources +optional", + "$ref": "CustomResourceValidation" + }, + "names": { + "$ref": "CustomResourceDefinitionNames", + "description": "Names are the names used to describe this custom resource" + }, + "versions": { + "type": "array", + "items": { + "$ref": "CustomResourceDefinitionVersion" + }, + "description": "Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. +optional" + }, + "additionalPrinterColumns": { + "type": "array", + "items": { + "$ref": "CustomResourceColumnDefinition" + }, + "description": "AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. +optional" + }, + "group": { + "type": "string", + "description": "Group is the group this resource belongs in" + } + }, + "type": "object", + "id": "CustomResourceDefinitionSpec", + "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear" + }, + "JSON": { + "properties": { + "raw": { + "format": "byte", + "type": "string" + } + }, + "id": "JSON", + "type": "object", + "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." + }, + "JSONSchemaProps": { + "id": "JSONSchemaProps", + "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", + "type": "object", + "properties": { + "minProperties": { + "format": "int64", + "type": "string" + }, + "dependencies": { + "additionalProperties": { + "$ref": "JSONSchemaPropsOrStringArray" + }, + "type": "object" + }, + "minItems": { + "format": "int64", + "type": "string" + }, + "default": { + "$ref": "JSON" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maximum": { + "format": "double", + "type": "number" + }, + "additionalItems": { + "$ref": "JSONSchemaPropsOrBool" + }, + "ref": { + "type": "string" + }, + "description": { + "type": "string" + }, + "minimum": { + "format": "double", + "type": "number" + }, + "schema": { + "type": "string" + }, + "maxProperties": { + "format": "int64", + "type": "string" + }, + "items": { + "$ref": "JSONSchemaPropsOrArray" + }, + "additionalProperties": { + "$ref": "JSONSchemaPropsOrBool" + }, + "id": { + "type": "string" + }, + "pattern": { + "type": "string" + }, + "multipleOf": { + "type": "number", + "format": "double" + }, + "patternProperties": { + "additionalProperties": { + "$ref": "JSONSchemaProps" + }, + "type": "object" + }, + "enum": { + "type": "array", + "items": { + "type": "string" + } + }, + "maxItems": { + "format": "int64", + "type": "string" + }, + "not": { + "$ref": "JSONSchemaProps" + }, + "oneOf": { + "items": { + "$ref": "JSONSchemaProps" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "uniqueItems": { + "type": "boolean" + }, + "definitions": { + "additionalProperties": { + "$ref": "JSONSchemaProps" + }, + "type": "object" + }, + "properties": { + "type": "object", + "additionalProperties": { + "$ref": "JSONSchemaProps" + } + }, + "minLength": { + "type": "string", + "format": "int64" + }, + "type": { + "type": "string" + }, + "externalDocs": { + "$ref": "ExternalDocumentation" + }, + "example": { + "$ref": "JSON" + }, + "anyOf": { + "items": { + "$ref": "JSONSchemaProps" + }, + "type": "array" + }, + "exclusiveMinimum": { + "type": "boolean" + }, + "maxLength": { + "type": "string", + "format": "int64" + }, + "format": { + "type": "string" + }, + "exclusiveMaximum": { + "type": "boolean" + }, + "allOf": { + "type": "array", + "items": { + "$ref": "JSONSchemaProps" + } + } + } + }, + "CustomResourceColumnDefinition": { + "type": "object", + "id": "CustomResourceColumnDefinition", + "description": "CustomResourceColumnDefinition specifies a column for server side printing.", + "properties": { + "priority": { + "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority. +optional", + "format": "int32", + "type": "integer" + }, + "jsonPath": { + "description": "JSONPath is a simple JSON path, i.e. with array notation.", + "type": "string" + }, + "name": { + "type": "string", + "description": "name is a human readable name for the column." + }, + "format": { + "type": "string", + "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more. +optional" + }, + "type": { + "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.", + "type": "string" + }, + "description": { + "description": "description is a human readable description of this column. +optional", + "type": "string" + } + } + }, + "ListMeta": { + "type": "object", + "id": "ListMeta", + "properties": { + "selfLink": { + "type": "string", + "description": "SelfLink is a URL representing this object. Populated by the system. Read-only. +optional" + }, + "resourceVersion": { + "type": "string", + "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency +optional" + }, + "continue": { + "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.", + "type": "string" + } + }, + "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}." + }, + "CustomResourceDefinitionVersion": { + "type": "object", + "id": "CustomResourceDefinitionVersion", + "properties": { + "served": { + "type": "boolean", + "description": "Served is a flag enabling/disabling this version from being served via REST APIs" + }, + "storage": { + "type": "boolean", + "description": "Storage flags the version as storage version. There must be exactly one flagged as storage version." + }, + "name": { + "type": "string", + "description": "Name is the version name, e.g. “v1”, “v2beta1”, etc." + } + } + }, + "JSONSchemaPropsOrStringArray": { + "properties": { + "schema": { + "$ref": "JSONSchemaProps" + }, + "property": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", + "id": "JSONSchemaPropsOrStringArray" + }, + "CustomResourceSubresourceStatus": { + "properties": {}, + "type": "object", + "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", + "id": "CustomResourceSubresourceStatus" + }, + "CustomResourceSubresources": { + "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", + "properties": { + "status": { + "description": "Status denotes the status subresource for CustomResources +optional", + "$ref": "CustomResourceSubresourceStatus" + }, + "scale": { + "$ref": "CustomResourceSubresourceScale", + "description": "Scale denotes the scale subresource for CustomResources +optional" + } + }, + "type": "object", + "id": "CustomResourceSubresources" + }, + "CustomResourceSubresourceScale": { + "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", + "type": "object", + "id": "CustomResourceSubresourceScale", + "properties": { + "statusReplicasPath": { + "type": "string", + "description": "StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0." + }, + "specReplicasPath": { + "type": "string", + "description": "SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET." + }, + "labelSelectorPath": { + "description": "LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string. +optional", + "type": "string" + } + } + }, + "CustomResourceDefinition": { + "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", + "properties": { + "metadata": { + "description": "Metadata associated with this CustomResourceDefinition.", + "$ref": "ObjectMeta" + }, + "spec": { + "description": "Spec describes how the user wants the resources to appear", + "$ref": "CustomResourceDefinitionSpec" + }, + "apiVersion": { + "description": "The API version for this call such as \"k8s.apiextensions.io/v1beta1\".", + "type": "string" + }, + "kind": { + "description": "The kind of resource, in this case always \"CustomResourceDefinition\".", + "type": "string" + } + }, + "type": "object", + "id": "CustomResourceDefinition" + }, + "CustomResourceDefinitionNames": { + "type": "object", + "id": "CustomResourceDefinitionNames", + "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", + "properties": { + "listKind": { + "type": "string", + "description": "ListKind is the serialized kind of the list for this resource. Defaults to List. +optional" + }, + "categories": { + "type": "array", + "description": "Categories is a list of grouped resources custom resources belong to (e.g. 'all') +optional", + "items": { + "type": "string" + } + }, + "plural": { + "type": "string", + "description": "Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase." + }, + "shortNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ShortNames are short names for the resource. It must be all lowercase. +optional" + }, + "kind": { + "description": "Kind is the serialized kind of the resource. It is normally CamelCase and singular.", + "type": "string" + }, + "singular": { + "description": "Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased +optional", + "type": "string" + } + } + }, + "OwnerReference": { + "id": "OwnerReference", + "type": "object", + "properties": { + "blockOwnerDeletion": { + "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. +optional", + "type": "boolean" + }, + "uid": { + "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + }, + "kind": { + "type": "string", + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "API version of the referent." + }, + "controller": { + "type": "boolean", + "description": "If true, this reference points to the managing controller. +optional" + }, + "name": { + "type": "string", + "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" + } + }, + "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field." + }, + "ObjectMeta": { + "properties": { + "generation": { + "description": "(Optional) A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", + "type": "integer", + "format": "int32" + }, + "deletionTimestamp": { + "type": "string", + "format": "google-datetime", + "description": "(Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "uid": { + "description": "(Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + }, + "resourceVersion": { + "description": "(Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "name": { + "type": "string", + "description": "Name must be unique within a namespace, within a Cloud Run region. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names +optional" + }, + "generateName": { + "type": "string", + "description": "(Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency string generateName = 2;" + }, + "clusterName": { + "type": "string", + "description": "(Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." + }, + "annotations": { + "description": "(Optional) Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "namespace": { + "type": "string", + "description": "Namespace defines the space within each name must be unique, within a Cloud Run region. In Cloud Run the namespace must be equal to either the project ID or project number." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "(Optional) Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and routes. More info: http://kubernetes.io/docs/user-guide/labels", + "type": "object" + }, + "selfLink": { + "description": "(Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;", + "type": "string" + }, + "deletionGracePeriodSeconds": { + "type": "integer", + "format": "int32", + "description": "(Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array", + "description": "(Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. +patchStrategy=merge" + }, + "ownerReferences": { + "type": "array", + "description": "(Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported List of objects that own this object. If ALL objects in the list have been deleted, this object will be garbage collected.", + "items": { + "$ref": "OwnerReference" + } + }, + "creationTimestamp": { + "description": "(Optional) CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object", + "id": "ObjectMeta", + "description": "k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create." + }, + "CustomResourceValidation": { + "properties": { + "openAPIV3Schema": { + "$ref": "JSONSchemaProps", + "description": "OpenAPIV3Schema is the OpenAPI v3 schema to be validated against. +optional" + } + }, + "description": "CustomResourceValidation is a list of validation methods for CustomResources.", + "type": "object", + "id": "CustomResourceValidation" + }, + "JSONSchemaPropsOrBool": { + "type": "object", + "id": "JSONSchemaPropsOrBool", + "properties": { + "schema": { + "$ref": "JSONSchemaProps" + }, + "allows": { + "type": "boolean" + } + }, + "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." + }, + "ListCustomResourceDefinitionsResponse": { + "properties": { + "items": { + "items": { + "$ref": "CustomResourceDefinition" + }, + "description": "List of CustomResourceDefinitions.", + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "type": "array", + "items": { + "type": "string" + } + }, + "apiVersion": { + "type": "string", + "description": "The API version for this call such as \"k8s.apiextensions.io/v1beta1\"." + }, + "metadata": { + "$ref": "ListMeta", + "description": "Metadata associated with this CustomResourceDefinition list." + }, + "kind": { + "type": "string", + "description": "The kind of this resource, in this case \"CustomResourceDefinitionList\"." + } + }, + "id": "ListCustomResourceDefinitionsResponse", + "type": "object" + }, + "ExternalDocumentation": { + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object", + "id": "ExternalDocumentation", + "description": "ExternalDocumentation allows referencing an external resource for extended documentation." + }, + "JSONSchemaPropsOrArray": { + "type": "object", + "id": "JSONSchemaPropsOrArray", + "properties": { + "schema": { + "$ref": "JSONSchemaProps" + }, + "jsonSchemas": { + "type": "array", + "items": { + "$ref": "JSONSchemaProps" + } + } + }, + "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." + } + }, + "kind": "discovery#restDescription", + "batchPath": "batch", + "version_module": true, + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/run/", + "revision": "20200814" +} diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securitycenter.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securitycenter.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..95a8cb83066e24f54f992c15e373d6ab57ba17c3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securitycenter.v1.json @@ -0,0 +1,15124 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://securitycenter.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Security Command Center", +"description": "Security Command Center API provides access to temporal views of assets and findings within an organization.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/security-command-center", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://securitycenter.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://securitycenter.us.rep.googleapis.com/", +"location": "us" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://securitycenter.eu.rep.googleapis.com/", +"location": "eu" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "securitycenter:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://securitycenter.mtls.googleapis.com/", +"name": "securitycenter", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"folders": { +"resources": { +"assets": { +"methods": { +"group": { +"deprecated": true, +"description": "Filters an organization's assets and groups them by their specified properties.", +"flatPath": "v1/folders/{foldersId}/assets:group", +"httpMethod": "POST", +"id": "securitycenter.folders.assets.group", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent to group the assets by. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/assets:group", +"request": { +"$ref": "GroupAssetsRequest" +}, +"response": { +"$ref": "GroupAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Lists an organization's assets.", +"flatPath": "v1/folders/{foldersId}/assets", +"httpMethod": "GET", +"id": "securitycenter.folders.assets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"compareDuration": { +"description": "When compare_duration is set, the ListAssetsResult's \"state_change\" attribute is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again. Possible \"state_change\" values when compare_duration is specified: * \"ADDED\": indicates that the asset was not present at the start of compare_duration, but present at read_time. * \"REMOVED\": indicates that the asset was present at the start of compare_duration, but not present at read_time. * \"ACTIVE\": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all assets present at read_time.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"fieldMask": { +"description": "A field mask to specify the ListAssetsResult fields to be listed in the response. An empty field mask will list all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include: * name * security_center_properties.resource_name * resource_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following are the allowed field and operator combinations: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `update_time = \"2019-06-10T16:07:18-07:00\"` `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `create_time = \"2019-06-10T16:07:18-07:00\"` `create_time = 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` * security_center_properties.resource_name: `=`, `:` * security_center_properties.resource_display_name: `=`, `:` * security_center_properties.resource_type: `=`, `:` * security_center_properties.resource_parent: `=`, `:` * security_center_properties.resource_parent_display_name: `=`, `:` * security_center_properties.resource_project: `=`, `:` * security_center_properties.resource_project_display_name: `=`, `:` * security_center_properties.resource_owners: `=`, `:` For example, `resource_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `resource_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-resource_properties.my_property : \"\"`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: \"name,resource_properties.a_property\". The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be appended to the field name. For example: \"name desc,resource_properties.a_property\". Redundant space characters in the syntax are insignificant. \"name desc,resource_properties.a_property\" and \" name desc , resource_properties.a_property \" are equivalent. The following fields are supported: name update_time resource_properties security_marks.marks security_center_properties.resource_name security_center_properties.resource_display_name security_center_properties.resource_parent security_center_properties.resource_parent_display_name security_center_properties.resource_project security_center_properties.resource_project_display_name security_center_properties.resource_type", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAssetsResponse`; indicates that this is a continuation of a prior `ListAssets` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource that contains the assets. The value that you can specify on parent depends on the method in which you specify parent. You can specify one of the following values: `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +}, +"readTime": { +"description": "Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/assets", +"response": { +"$ref": "ListAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityMarks": { +"description": "Updates security marks.", +"flatPath": "v1/folders/{foldersId}/assets/{assetsId}/securityMarks", +"httpMethod": "PATCH", +"id": "securitycenter.folders.assets.updateSecurityMarks", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"location": "path", +"pattern": "^folders/[^/]+/assets/[^/]+/securityMarks$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the security marks resource. The field mask must not contain duplicate fields. If empty or set to \"marks\", all marks will be replaced. Individual marks can be updated using \"marks.\".", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "SecurityMarks" +}, +"response": { +"$ref": "SecurityMarks" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"bigQueryExports": { +"methods": { +"create": { +"description": "Creates a BigQuery export.", +"flatPath": "v1/folders/{foldersId}/bigQueryExports", +"httpMethod": "POST", +"id": "securitycenter.folders.bigQueryExports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"bigQueryExportId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource of the new BigQuery export. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bigQueryExports", +"request": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing BigQuery export.", +"flatPath": "v1/folders/{foldersId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "DELETE", +"id": "securitycenter.folders.bigQueryExports.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the BigQuery export to delete. Its format is `organizations/{organization}/bigQueryExports/{export_id}`, `folders/{folder}/bigQueryExports/{export_id}`, or `projects/{project}/bigQueryExports/{export_id}`", +"location": "path", +"pattern": "^folders/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a BigQuery export.", +"flatPath": "v1/folders/{foldersId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "GET", +"id": "securitycenter.folders.bigQueryExports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the BigQuery export to retrieve. Its format is `organizations/{organization}/bigQueryExports/{export_id}`, `folders/{folder}/bigQueryExports/{export_id}`, or `projects/{project}/bigQueryExports/{export_id}`", +"location": "path", +"pattern": "^folders/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists BigQuery exports. Note that when requesting BigQuery exports at a given level all exports under that level are also returned e.g. if requesting BigQuery exports under a folder, then all BigQuery exports immediately under the folder plus the ones created under the projects within the folder are returned.", +"flatPath": "v1/folders/{foldersId}/bigQueryExports", +"httpMethod": "GET", +"id": "securitycenter.folders.bigQueryExports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListBigQueryExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBigQueryExports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of BigQuery exports. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bigQueryExports", +"response": { +"$ref": "ListBigQueryExportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a BigQuery export.", +"flatPath": "v1/folders/{foldersId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.bigQueryExports.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. Example format: \"organizations/{organization_id}/bigQueryExports/{export_id}\" Example format: \"folders/{folder_id}/bigQueryExports/{export_id}\" Example format: \"projects/{project_id}/bigQueryExports/{export_id}\" This field is provided in responses, and is ignored when provided in create requests.", +"location": "path", +"pattern": "^folders/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventThreatDetectionSettings": { +"methods": { +"validateCustomModule": { +"description": "Validates the given Event Threat Detection custom module.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings:validateCustomModule", +"httpMethod": "POST", +"id": "securitycenter.folders.eventThreatDetectionSettings.validateCustomModule", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:validateCustomModule", +"request": { +"$ref": "ValidateEventThreatDetectionCustomModuleRequest" +}, +"response": { +"$ref": "ValidateEventThreatDetectionCustomModuleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"customModules": { +"methods": { +"create": { +"description": "Creates a resident Event Threat Detection custom module at the scope of the given Resource Manager parent, and also creates inherited custom modules for all descendants of the given parent. These modules are enabled by default.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules", +"httpMethod": "POST", +"id": "securitycenter.folders.eventThreatDetectionSettings.customModules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The new custom module's parent. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"request": { +"$ref": "EventThreatDetectionCustomModule" +}, +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified Event Threat Detection custom module and all of its descendants in the Resource Manager hierarchy. This method is only supported for resident custom modules.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "DELETE", +"id": "securitycenter.folders.eventThreatDetectionSettings.customModules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to delete. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an Event Threat Detection custom module.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "GET", +"id": "securitycenter.folders.eventThreatDetectionSettings.customModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to get. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Event Threat Detection custom modules for the given Resource Manager parent. This includes resident modules defined at the scope of the parent along with modules inherited from ancestors.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules", +"httpMethod": "GET", +"id": "securitycenter.folders.eventThreatDetectionSettings.customModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"response": { +"$ref": "ListEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDescendant": { +"description": "Lists all resident Event Threat Detection custom modules under the given Resource Manager parent and its descendants.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules:listDescendant", +"httpMethod": "GET", +"id": "securitycenter.folders.eventThreatDetectionSettings.customModules.listDescendant", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDescendantEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDescendantEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:listDescendant", +"response": { +"$ref": "ListDescendantEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the Event Threat Detection custom module with the given name based on the given update mask. Updating the enablement state is supported for both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name or configuration of a module is supported for resident modules only. The type of a module cannot be changed.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.eventThreatDetectionSettings.customModules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "EventThreatDetectionCustomModule" +}, +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"effectiveCustomModules": { +"methods": { +"get": { +"description": "Gets an effective Event Threat Detection custom module at the given level.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/effectiveCustomModules/{effectiveCustomModulesId}", +"httpMethod": "GET", +"id": "securitycenter.folders.eventThreatDetectionSettings.effectiveCustomModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the effective Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings/effectiveCustomModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EffectiveEventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all effective Event Threat Detection custom modules for the given parent. This includes resident modules defined at the scope of the parent along with modules inherited from its ancestors.", +"flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/effectiveCustomModules", +"httpMethod": "GET", +"id": "securitycenter.folders.eventThreatDetectionSettings.effectiveCustomModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules for. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/effectiveCustomModules", +"response": { +"$ref": "ListEffectiveEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"findings": { +"methods": { +"bulkMute": { +"description": "Kicks off an LRO to bulk mute findings for a parent based on a filter. The parent can be either an organization, folder or project. The findings matched by the filter will be muted after the LRO is done.", +"flatPath": "v1/folders/{foldersId}/findings:bulkMute", +"httpMethod": "POST", +"id": "securitycenter.folders.findings.bulkMute", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent, at which bulk action needs to be applied. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings:bulkMute", +"request": { +"$ref": "BulkMuteFindingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"muteConfigs": { +"methods": { +"delete": { +"description": "Deletes an existing mute config.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.folders.locations.muteConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to delete. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a mute config.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.folders.locations.muteConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to retrieve. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a mute config.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.locations.muteConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"muteConfigs": { +"methods": { +"create": { +"description": "Creates a mute config.", +"flatPath": "v1/folders/{foldersId}/muteConfigs", +"httpMethod": "POST", +"id": "securitycenter.folders.muteConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"muteConfigId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new mute configs's parent. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/muteConfigs", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing mute config.", +"flatPath": "v1/folders/{foldersId}/muteConfigs/{muteConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.folders.muteConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to delete. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^folders/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a mute config.", +"flatPath": "v1/folders/{foldersId}/muteConfigs/{muteConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.folders.muteConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to retrieve. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^folders/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists mute configs.", +"flatPath": "v1/folders/{foldersId}/muteConfigs", +"httpMethod": "GET", +"id": "securitycenter.folders.muteConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListMuteConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMuteConfigs` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of mute configs. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/muteConfigs", +"response": { +"$ref": "ListMuteConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a mute config.", +"flatPath": "v1/folders/{foldersId}/muteConfigs/{muteConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.muteConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"location": "path", +"pattern": "^folders/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"notificationConfigs": { +"methods": { +"create": { +"description": "Creates a notification config.", +"flatPath": "v1/folders/{foldersId}/notificationConfigs", +"httpMethod": "POST", +"id": "securitycenter.folders.notificationConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"configId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters and contain alphanumeric characters, underscores, or hyphens only.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new notification config's parent. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notificationConfigs", +"request": { +"$ref": "NotificationConfig" +}, +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a notification config.", +"flatPath": "v1/folders/{foldersId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.folders.notificationConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the notification config to delete. Its format is `organizations/[organization_id]/notificationConfigs/[config_id]`, `folders/[folder_id]/notificationConfigs/[config_id]`, or `projects/[project_id]/notificationConfigs/[config_id]`.", +"location": "path", +"pattern": "^folders/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a notification config.", +"flatPath": "v1/folders/{foldersId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.folders.notificationConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the notification config to get. Its format is `organizations/[organization_id]/notificationConfigs/[config_id]`, `folders/[folder_id]/notificationConfigs/[config_id]`, or `projects/[project_id]/notificationConfigs/[config_id]`.", +"location": "path", +"pattern": "^folders/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notification configs.", +"flatPath": "v1/folders/{foldersId}/notificationConfigs", +"httpMethod": "GET", +"id": "securitycenter.folders.notificationConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListNotificationConfigsResponse`; indicates that this is a continuation of a prior `ListNotificationConfigs` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent in which to list the notification configurations. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notificationConfigs", +"response": { +"$ref": "ListNotificationConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": " Updates a notification config. The following update fields are allowed: description, pubsub_topic, streaming_config.filter", +"flatPath": "v1/folders/{foldersId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.notificationConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", +"location": "path", +"pattern": "^folders/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the notification config. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "NotificationConfig" +}, +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityHealthAnalyticsSettings": { +"resources": { +"customModules": { +"methods": { +"create": { +"description": "Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the given CRM parent, and also creates inherited SecurityHealthAnalyticsCustomModules for all CRM descendants of the given parent. These modules are enabled by default.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules", +"httpMethod": "POST", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the new custom module's parent. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"request": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified SecurityHealthAnalyticsCustomModule and all of its descendants in the CRM hierarchy. This method is only supported for resident custom modules.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "DELETE", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to delete. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a SecurityHealthAnalyticsCustomModule.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "GET", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to get. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all SecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules", +"httpMethod": "GET", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"response": { +"$ref": "ListSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDescendant": { +"description": "Returns a list of all resident SecurityHealthAnalyticsCustomModules under the given CRM parent and all of the parent\u2019s CRM descendants.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules:listDescendant", +"httpMethod": "GET", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.listDescendant", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list descendant custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:listDescendant", +"response": { +"$ref": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the SecurityHealthAnalyticsCustomModule under the given name based on the given update mask. Updating the enablement state is supported on both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name and custom config of a module is supported on resident modules only.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. The only fields that can be updated are `enablement_state` and `custom_config`. If empty or set to the wildcard value `*`, both `enablement_state` and `custom_config` are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"simulate": { +"description": "Simulates a given SecurityHealthAnalyticsCustomModule and Resource.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules:simulate", +"httpMethod": "POST", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.simulate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The relative resource name of the organization, project, or folder. For more information about relative resource names, see [Relative Resource Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) Example: `organizations/{organization_id}`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:simulate", +"request": { +"$ref": "SimulateSecurityHealthAnalyticsCustomModuleRequest" +}, +"response": { +"$ref": "SimulateSecurityHealthAnalyticsCustomModuleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"effectiveCustomModules": { +"methods": { +"get": { +"description": "Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/effectiveCustomModules/{effectiveCustomModulesId}", +"httpMethod": "GET", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.effectiveCustomModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the effective custom module to get. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/effectiveCustomModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", +"flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/effectiveCustomModules", +"httpMethod": "GET", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.effectiveCustomModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list effective custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/effectiveCustomModules", +"response": { +"$ref": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"sources": { +"methods": { +"list": { +"description": "Lists all sources belonging to an organization.", +"flatPath": "v1/folders/{foldersId}/sources", +"httpMethod": "GET", +"id": "securitycenter.folders.sources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListSourcesResponse`; indicates that this is a continuation of a prior `ListSources` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the parent of sources to list. Its format should be `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sources", +"response": { +"$ref": "ListSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"findings": { +"methods": { +"group": { +"description": "Filters an organization or source's findings and groups them by their specified properties. To group across all sources provide a `-` as the source id. Example: /v1/organizations/{organization_id}/sources/-/findings, /v1/folders/{folder_id}/sources/-/findings, /v1/projects/{project_id}/sources/-/findings", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings:group", +"httpMethod": "POST", +"id": "securitycenter.folders.sources.findings.group", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the source to groupBy. Its format is `organizations/[organization_id]/sources/[source_id]`, `folders/[folder_id]/sources/[source_id]`, or `projects/[project_id]/sources/[source_id]`. To groupBy across all sources provide a source_id of `-`. For example: `organizations/{organization_id}/sources/-, folders/{folder_id}/sources/-`, or `projects/{project_id}/sources/-`", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings:group", +"request": { +"$ref": "GroupFindingsRequest" +}, +"response": { +"$ref": "GroupFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists an organization or source's findings. To list across all sources provide a `-` as the source id. Example: /v1/organizations/{organization_id}/sources/-/findings", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings", +"httpMethod": "GET", +"id": "securitycenter.folders.sources.findings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"compareDuration": { +"deprecated": true, +"description": "When compare_duration is set, the ListFindingsResult's \"state_change\" attribute is updated to indicate whether the finding had its state changed, the finding's state remained unchanged, or if the finding was added in any state during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence and state of the finding at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the finding is made inactive and then active again. Possible \"state_change\" values when compare_duration is specified: * \"CHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration, but changed its state at read_time. * \"UNCHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration and did not change state at read_time. * \"ADDED\": indicates that the finding did not match the given filter or was not present at the start of compare_duration, but was present at read_time. * \"REMOVED\": indicates that the finding was present and matched the filter at the start of compare_duration, but did not match the filter at read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all findings present at read_time.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"fieldMask": { +"description": "A field mask to specify the Finding fields to be listed in the response. An empty field mask will list all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. Examples include: * name * source_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `event_time = \"2019-06-10T16:07:18-07:00\"` `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example, `source_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `source_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-source_properties.my_property : \"\"` * resource: * resource.name: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.type: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.display_name: `=`, `:`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: \"name,resource_properties.a_property\". The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be appended to the field name. For example: \"name desc,source_properties.a_property\". Redundant space characters in the syntax are insignificant. \"name desc,source_properties.a_property\" and \" name desc , source_properties.a_property \" are equivalent. The following fields are supported: name parent state category resource_name event_time source_properties security_marks.marks", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListFindingsResponse`; indicates that this is a continuation of a prior `ListFindings` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the source the findings belong to. Its format is `organizations/[organization_id]/sources/[source_id]`, `folders/[folder_id]/sources/[source_id]`, or `projects/[project_id]/sources/[source_id]`. To list across all sources provide a source_id of `-`. For example: `organizations/{organization_id}/sources/-`, `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-`", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +}, +"readTime": { +"deprecated": true, +"description": "Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/findings", +"response": { +"$ref": "ListFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Creates or updates a finding. The corresponding source must exist for a finding creation to succeed.", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings/{findingsId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.sources.findings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the finding resource. This field should not be specified when creating a finding. When updating a finding, an empty mask is treated as updating all mutable fields and replacing source_properties. Individual source_properties can be added/updated by using \"source_properties.\" in the field mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Finding" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMute": { +"description": "Updates the mute state of a finding.", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings/{findingsId}:setMute", +"httpMethod": "POST", +"id": "securitycenter.folders.sources.findings.setMute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setMute", +"request": { +"$ref": "SetMuteRequest" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setState": { +"description": "Updates the state of a finding.", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings/{findingsId}:setState", +"httpMethod": "POST", +"id": "securitycenter.folders.sources.findings.setState", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setState", +"request": { +"$ref": "SetFindingStateRequest" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityMarks": { +"description": "Updates security marks.", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings/{findingsId}/securityMarks", +"httpMethod": "PATCH", +"id": "securitycenter.folders.sources.findings.updateSecurityMarks", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+/securityMarks$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the security marks resource. The field mask must not contain duplicate fields. If empty or set to \"marks\", all marks will be replaced. Individual marks can be updated using \"marks.\".", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "SecurityMarks" +}, +"response": { +"$ref": "SecurityMarks" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"externalSystems": { +"methods": { +"patch": { +"description": "Updates external system. This is for a given finding.", +"flatPath": "v1/folders/{foldersId}/sources/{sourcesId}/findings/{findingsId}/externalSystems/{externalSystemsId}", +"httpMethod": "PATCH", +"id": "securitycenter.folders.sources.findings.externalSystems.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", +"location": "path", +"pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+/externalSystems/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the external system resource. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"organizations": { +"methods": { +"getOrganizationSettings": { +"description": "Gets the settings for an organization.", +"flatPath": "v1/organizations/{organizationsId}/organizationSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getOrganizationSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the organization to get organization settings for. Its format is `organizations/[organization_id]/organizationSettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/organizationSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "OrganizationSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateOrganizationSettings": { +"description": "Updates an organization's settings.", +"flatPath": "v1/organizations/{organizationsId}/organizationSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateOrganizationSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the settings. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/organizationSettings\".", +"location": "path", +"pattern": "^organizations/[^/]+/organizationSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the settings resource. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "OrganizationSettings" +}, +"response": { +"$ref": "OrganizationSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"assets": { +"methods": { +"group": { +"deprecated": true, +"description": "Filters an organization's assets and groups them by their specified properties.", +"flatPath": "v1/organizations/{organizationsId}/assets:group", +"httpMethod": "POST", +"id": "securitycenter.organizations.assets.group", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent to group the assets by. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/assets:group", +"request": { +"$ref": "GroupAssetsRequest" +}, +"response": { +"$ref": "GroupAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Lists an organization's assets.", +"flatPath": "v1/organizations/{organizationsId}/assets", +"httpMethod": "GET", +"id": "securitycenter.organizations.assets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"compareDuration": { +"description": "When compare_duration is set, the ListAssetsResult's \"state_change\" attribute is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again. Possible \"state_change\" values when compare_duration is specified: * \"ADDED\": indicates that the asset was not present at the start of compare_duration, but present at read_time. * \"REMOVED\": indicates that the asset was present at the start of compare_duration, but not present at read_time. * \"ACTIVE\": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all assets present at read_time.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"fieldMask": { +"description": "A field mask to specify the ListAssetsResult fields to be listed in the response. An empty field mask will list all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include: * name * security_center_properties.resource_name * resource_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following are the allowed field and operator combinations: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `update_time = \"2019-06-10T16:07:18-07:00\"` `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `create_time = \"2019-06-10T16:07:18-07:00\"` `create_time = 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` * security_center_properties.resource_name: `=`, `:` * security_center_properties.resource_display_name: `=`, `:` * security_center_properties.resource_type: `=`, `:` * security_center_properties.resource_parent: `=`, `:` * security_center_properties.resource_parent_display_name: `=`, `:` * security_center_properties.resource_project: `=`, `:` * security_center_properties.resource_project_display_name: `=`, `:` * security_center_properties.resource_owners: `=`, `:` For example, `resource_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `resource_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-resource_properties.my_property : \"\"`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: \"name,resource_properties.a_property\". The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be appended to the field name. For example: \"name desc,resource_properties.a_property\". Redundant space characters in the syntax are insignificant. \"name desc,resource_properties.a_property\" and \" name desc , resource_properties.a_property \" are equivalent. The following fields are supported: name update_time resource_properties security_marks.marks security_center_properties.resource_name security_center_properties.resource_display_name security_center_properties.resource_parent security_center_properties.resource_parent_display_name security_center_properties.resource_project security_center_properties.resource_project_display_name security_center_properties.resource_type", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAssetsResponse`; indicates that this is a continuation of a prior `ListAssets` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource that contains the assets. The value that you can specify on parent depends on the method in which you specify parent. You can specify one of the following values: `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"readTime": { +"description": "Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/assets", +"response": { +"$ref": "ListAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"runDiscovery": { +"deprecated": true, +"description": "Runs asset discovery. The discovery is tracked with a long-running operation. This API can only be called with limited frequency for an organization. If it is called too frequently the caller will receive a TOO_MANY_REQUESTS error.", +"flatPath": "v1/organizations/{organizationsId}/assets:runDiscovery", +"httpMethod": "POST", +"id": "securitycenter.organizations.assets.runDiscovery", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the organization to run asset discovery for. Its format is `organizations/[organization_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/assets:runDiscovery", +"request": { +"$ref": "RunAssetDiscoveryRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityMarks": { +"description": "Updates security marks.", +"flatPath": "v1/organizations/{organizationsId}/assets/{assetsId}/securityMarks", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.assets.updateSecurityMarks", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"location": "path", +"pattern": "^organizations/[^/]+/assets/[^/]+/securityMarks$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the security marks resource. The field mask must not contain duplicate fields. If empty or set to \"marks\", all marks will be replaced. Individual marks can be updated using \"marks.\".", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "SecurityMarks" +}, +"response": { +"$ref": "SecurityMarks" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"attackPaths": { +"methods": { +"list": { +"description": "Lists the attack paths for a set of simulation results or valued resources and filter.", +"flatPath": "v1/organizations/{organizationsId}/attackPaths", +"httpMethod": "GET", +"id": "securitycenter.organizations.attackPaths.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list attack paths. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attackPaths", +"response": { +"$ref": "ListAttackPathsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"bigQueryExports": { +"methods": { +"create": { +"description": "Creates a BigQuery export.", +"flatPath": "v1/organizations/{organizationsId}/bigQueryExports", +"httpMethod": "POST", +"id": "securitycenter.organizations.bigQueryExports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"bigQueryExportId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource of the new BigQuery export. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bigQueryExports", +"request": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing BigQuery export.", +"flatPath": "v1/organizations/{organizationsId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.bigQueryExports.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the BigQuery export to delete. Its format is `organizations/{organization}/bigQueryExports/{export_id}`, `folders/{folder}/bigQueryExports/{export_id}`, or `projects/{project}/bigQueryExports/{export_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a BigQuery export.", +"flatPath": "v1/organizations/{organizationsId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.bigQueryExports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the BigQuery export to retrieve. Its format is `organizations/{organization}/bigQueryExports/{export_id}`, `folders/{folder}/bigQueryExports/{export_id}`, or `projects/{project}/bigQueryExports/{export_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists BigQuery exports. Note that when requesting BigQuery exports at a given level all exports under that level are also returned e.g. if requesting BigQuery exports under a folder, then all BigQuery exports immediately under the folder plus the ones created under the projects within the folder are returned.", +"flatPath": "v1/organizations/{organizationsId}/bigQueryExports", +"httpMethod": "GET", +"id": "securitycenter.organizations.bigQueryExports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListBigQueryExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBigQueryExports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of BigQuery exports. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bigQueryExports", +"response": { +"$ref": "ListBigQueryExportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a BigQuery export.", +"flatPath": "v1/organizations/{organizationsId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.bigQueryExports.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. Example format: \"organizations/{organization_id}/bigQueryExports/{export_id}\" Example format: \"folders/{folder_id}/bigQueryExports/{export_id}\" Example format: \"projects/{project_id}/bigQueryExports/{export_id}\" This field is provided in responses, and is ignored when provided in create requests.", +"location": "path", +"pattern": "^organizations/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventThreatDetectionSettings": { +"methods": { +"validateCustomModule": { +"description": "Validates the given Event Threat Detection custom module.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings:validateCustomModule", +"httpMethod": "POST", +"id": "securitycenter.organizations.eventThreatDetectionSettings.validateCustomModule", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:validateCustomModule", +"request": { +"$ref": "ValidateEventThreatDetectionCustomModuleRequest" +}, +"response": { +"$ref": "ValidateEventThreatDetectionCustomModuleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"customModules": { +"methods": { +"create": { +"description": "Creates a resident Event Threat Detection custom module at the scope of the given Resource Manager parent, and also creates inherited custom modules for all descendants of the given parent. These modules are enabled by default.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules", +"httpMethod": "POST", +"id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The new custom module's parent. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"request": { +"$ref": "EventThreatDetectionCustomModule" +}, +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified Event Threat Detection custom module and all of its descendants in the Resource Manager hierarchy. This method is only supported for resident custom modules.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to delete. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an Event Threat Detection custom module.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to get. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Event Threat Detection custom modules for the given Resource Manager parent. This includes resident modules defined at the scope of the parent along with modules inherited from ancestors.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules", +"httpMethod": "GET", +"id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"response": { +"$ref": "ListEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDescendant": { +"description": "Lists all resident Event Threat Detection custom modules under the given Resource Manager parent and its descendants.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules:listDescendant", +"httpMethod": "GET", +"id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.listDescendant", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDescendantEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDescendantEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:listDescendant", +"response": { +"$ref": "ListDescendantEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the Event Threat Detection custom module with the given name based on the given update mask. Updating the enablement state is supported for both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name or configuration of a module is supported for resident modules only. The type of a module cannot be changed.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "EventThreatDetectionCustomModule" +}, +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"effectiveCustomModules": { +"methods": { +"get": { +"description": "Gets an effective Event Threat Detection custom module at the given level.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/effectiveCustomModules/{effectiveCustomModulesId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.eventThreatDetectionSettings.effectiveCustomModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the effective Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings/effectiveCustomModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EffectiveEventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all effective Event Threat Detection custom modules for the given parent. This includes resident modules defined at the scope of the parent along with modules inherited from its ancestors.", +"flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/effectiveCustomModules", +"httpMethod": "GET", +"id": "securitycenter.organizations.eventThreatDetectionSettings.effectiveCustomModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules for. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/effectiveCustomModules", +"response": { +"$ref": "ListEffectiveEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"findings": { +"methods": { +"bulkMute": { +"description": "Kicks off an LRO to bulk mute findings for a parent based on a filter. The parent can be either an organization, folder or project. The findings matched by the filter will be muted after the LRO is done.", +"flatPath": "v1/organizations/{organizationsId}/findings:bulkMute", +"httpMethod": "POST", +"id": "securitycenter.organizations.findings.bulkMute", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent, at which bulk action needs to be applied. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings:bulkMute", +"request": { +"$ref": "BulkMuteFindingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"muteConfigs": { +"methods": { +"delete": { +"description": "Deletes an existing mute config.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.locations.muteConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to delete. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a mute config.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.locations.muteConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to retrieve. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a mute config.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.locations.muteConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"muteConfigs": { +"methods": { +"create": { +"description": "Creates a mute config.", +"flatPath": "v1/organizations/{organizationsId}/muteConfigs", +"httpMethod": "POST", +"id": "securitycenter.organizations.muteConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"muteConfigId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new mute configs's parent. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/muteConfigs", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing mute config.", +"flatPath": "v1/organizations/{organizationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.muteConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to delete. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a mute config.", +"flatPath": "v1/organizations/{organizationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.muteConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to retrieve. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists mute configs.", +"flatPath": "v1/organizations/{organizationsId}/muteConfigs", +"httpMethod": "GET", +"id": "securitycenter.organizations.muteConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListMuteConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMuteConfigs` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of mute configs. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/muteConfigs", +"response": { +"$ref": "ListMuteConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a mute config.", +"flatPath": "v1/organizations/{organizationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.muteConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"location": "path", +"pattern": "^organizations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"notificationConfigs": { +"methods": { +"create": { +"description": "Creates a notification config.", +"flatPath": "v1/organizations/{organizationsId}/notificationConfigs", +"httpMethod": "POST", +"id": "securitycenter.organizations.notificationConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"configId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters and contain alphanumeric characters, underscores, or hyphens only.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new notification config's parent. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notificationConfigs", +"request": { +"$ref": "NotificationConfig" +}, +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a notification config.", +"flatPath": "v1/organizations/{organizationsId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.notificationConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the notification config to delete. Its format is `organizations/[organization_id]/notificationConfigs/[config_id]`, `folders/[folder_id]/notificationConfigs/[config_id]`, or `projects/[project_id]/notificationConfigs/[config_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a notification config.", +"flatPath": "v1/organizations/{organizationsId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.notificationConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the notification config to get. Its format is `organizations/[organization_id]/notificationConfigs/[config_id]`, `folders/[folder_id]/notificationConfigs/[config_id]`, or `projects/[project_id]/notificationConfigs/[config_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notification configs.", +"flatPath": "v1/organizations/{organizationsId}/notificationConfigs", +"httpMethod": "GET", +"id": "securitycenter.organizations.notificationConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListNotificationConfigsResponse`; indicates that this is a continuation of a prior `ListNotificationConfigs` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent in which to list the notification configurations. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notificationConfigs", +"response": { +"$ref": "ListNotificationConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": " Updates a notification config. The following update fields are allowed: description, pubsub_topic, streaming_config.filter", +"flatPath": "v1/organizations/{organizationsId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.notificationConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", +"location": "path", +"pattern": "^organizations/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the notification config. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "NotificationConfig" +}, +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/organizations/{organizationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "securitycenter.organizations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^organizations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/organizations/{organizationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^organizations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/organizations/{organizationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/organizations/{organizationsId}/operations", +"httpMethod": "GET", +"id": "securitycenter.organizations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+/operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"resourceValueConfigs": { +"methods": { +"batchCreate": { +"description": "Creates a ResourceValueConfig for an organization. Maps user's tags to difference resource values for use by the attack path simulation.", +"flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs:batchCreate", +"httpMethod": "POST", +"id": "securitycenter.organizations.resourceValueConfigs.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the new ResourceValueConfig's parent. The parent field in the CreateResourceValueConfigRequest messages must either be empty or match this field.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/resourceValueConfigs:batchCreate", +"request": { +"$ref": "BatchCreateResourceValueConfigsRequest" +}, +"response": { +"$ref": "BatchCreateResourceValueConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a ResourceValueConfig.", +"flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs/{resourceValueConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.resourceValueConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the ResourceValueConfig to delete", +"location": "path", +"pattern": "^organizations/[^/]+/resourceValueConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a ResourceValueConfig.", +"flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs/{resourceValueConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.resourceValueConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource value config to retrieve. Its format is `organizations/{organization}/resourceValueConfigs/{config_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/resourceValueConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all ResourceValueConfigs.", +"flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs", +"httpMethod": "GET", +"id": "securitycenter.organizations.resourceValueConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The number of results to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListResourceValueConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListResourceValueConfigs` must match the call that provided the page token. page_size can be specified, and the new page_size will be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of resource value configs. Its format is `organizations/[organization_id]`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/resourceValueConfigs", +"response": { +"$ref": "ListResourceValueConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing ResourceValueConfigs with new rules.", +"flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs/{resourceValueConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.resourceValueConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name for the resource value configuration", +"location": "path", +"pattern": "^organizations/[^/]+/resourceValueConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityHealthAnalyticsSettings": { +"resources": { +"customModules": { +"methods": { +"create": { +"description": "Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the given CRM parent, and also creates inherited SecurityHealthAnalyticsCustomModules for all CRM descendants of the given parent. These modules are enabled by default.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules", +"httpMethod": "POST", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the new custom module's parent. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"request": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified SecurityHealthAnalyticsCustomModule and all of its descendants in the CRM hierarchy. This method is only supported for resident custom modules.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "DELETE", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to delete. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a SecurityHealthAnalyticsCustomModule.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to get. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all SecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules", +"httpMethod": "GET", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"response": { +"$ref": "ListSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDescendant": { +"description": "Returns a list of all resident SecurityHealthAnalyticsCustomModules under the given CRM parent and all of the parent\u2019s CRM descendants.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules:listDescendant", +"httpMethod": "GET", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.listDescendant", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list descendant custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:listDescendant", +"response": { +"$ref": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the SecurityHealthAnalyticsCustomModule under the given name based on the given update mask. Updating the enablement state is supported on both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name and custom config of a module is supported on resident modules only.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. The only fields that can be updated are `enablement_state` and `custom_config`. If empty or set to the wildcard value `*`, both `enablement_state` and `custom_config` are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"simulate": { +"description": "Simulates a given SecurityHealthAnalyticsCustomModule and Resource.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules:simulate", +"httpMethod": "POST", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.simulate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The relative resource name of the organization, project, or folder. For more information about relative resource names, see [Relative Resource Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) Example: `organizations/{organization_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:simulate", +"request": { +"$ref": "SimulateSecurityHealthAnalyticsCustomModuleRequest" +}, +"response": { +"$ref": "SimulateSecurityHealthAnalyticsCustomModuleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"effectiveCustomModules": { +"methods": { +"get": { +"description": "Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/effectiveCustomModules/{effectiveCustomModulesId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.effectiveCustomModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the effective custom module to get. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/effectiveCustomModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", +"flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/effectiveCustomModules", +"httpMethod": "GET", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.effectiveCustomModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list effective custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/effectiveCustomModules", +"response": { +"$ref": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"simulations": { +"methods": { +"get": { +"description": "Get the simulation by name or the latest simulation for the given organization.", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The organization name or simulation name of this simulation Valid format: `organizations/{organization}/simulations/latest` `organizations/{organization}/simulations/{simulation}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Simulation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attackExposureResults": { +"resources": { +"attackPaths": { +"methods": { +"list": { +"description": "Lists the attack paths for a set of simulation results or valued resources and filter.", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/attackExposureResults/{attackExposureResultsId}/attackPaths", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.attackExposureResults.attackPaths.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list attack paths. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+/attackExposureResults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attackPaths", +"response": { +"$ref": "ListAttackPathsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"valuedResources": { +"methods": { +"list": { +"description": "Lists the valued resources for a set of simulation results and filter.", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/attackExposureResults/{attackExposureResultsId}/valuedResources", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.attackExposureResults.valuedResources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the valued resources in the response. Supported fields: * `resource_value` supports = * `resource_type` supports =", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The fields by which to order the valued resources response. Supported fields: * `exposed_score` * `resource_value` * `resource_type` * `resource` * `display_name` Values should be a comma separated list of fields. For example: `exposed_score,resource_value`. The default sorting order is descending. To specify ascending or descending order for a field, append a ` ASC` or a ` DESC` suffix, respectively; for example: `exposed_score DESC`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListValuedResourcesResponse`; indicates that this is a continuation of a prior `ListValuedResources` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list valued resources. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+/attackExposureResults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/valuedResources", +"response": { +"$ref": "ListValuedResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"attackPaths": { +"methods": { +"list": { +"description": "Lists the attack paths for a set of simulation results or valued resources and filter.", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/attackPaths", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.attackPaths.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list attack paths. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attackPaths", +"response": { +"$ref": "ListAttackPathsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"valuedResources": { +"methods": { +"get": { +"description": "Get the valued resource by name", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/valuedResources/{valuedResourcesId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.valuedResources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of this valued resource Valid format: `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+/valuedResources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ValuedResource" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the valued resources for a set of simulation results and filter.", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/valuedResources", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.valuedResources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the valued resources in the response. Supported fields: * `resource_value` supports = * `resource_type` supports =", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The fields by which to order the valued resources response. Supported fields: * `exposed_score` * `resource_value` * `resource_type` * `resource` * `display_name` Values should be a comma separated list of fields. For example: `exposed_score,resource_value`. The default sorting order is descending. To specify ascending or descending order for a field, append a ` ASC` or a ` DESC` suffix, respectively; for example: `exposed_score DESC`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListValuedResourcesResponse`; indicates that this is a continuation of a prior `ListValuedResources` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list valued resources. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/valuedResources", +"response": { +"$ref": "ListValuedResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attackPaths": { +"methods": { +"list": { +"description": "Lists the attack paths for a set of simulation results or valued resources and filter.", +"flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/valuedResources/{valuedResourcesId}/attackPaths", +"httpMethod": "GET", +"id": "securitycenter.organizations.simulations.valuedResources.attackPaths.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list attack paths. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}`", +"location": "path", +"pattern": "^organizations/[^/]+/simulations/[^/]+/valuedResources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attackPaths", +"response": { +"$ref": "ListAttackPathsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"sources": { +"methods": { +"create": { +"description": "Creates a source.", +"flatPath": "v1/organizations/{organizationsId}/sources", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the new source's parent. Its format should be `organizations/[organization_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sources", +"request": { +"$ref": "Source" +}, +"response": { +"$ref": "Source" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a source.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}", +"httpMethod": "GET", +"id": "securitycenter.organizations.sources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Relative resource name of the source. Its format is `organizations/[organization_id]/source/[source_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Source" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy on the specified Source.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}:getIamPolicy", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all sources belonging to an organization.", +"flatPath": "v1/organizations/{organizationsId}/sources", +"httpMethod": "GET", +"id": "securitycenter.organizations.sources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListSourcesResponse`; indicates that this is a continuation of a prior `ListSources` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the parent of sources to list. Its format should be `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sources", +"response": { +"$ref": "ListSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a source.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.sources.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}\"", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the source resource. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Source" +}, +"response": { +"$ref": "Source" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified Source.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}:setIamPolicy", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the permissions that a caller has on the specified source.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}:testIamPermissions", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"findings": { +"methods": { +"create": { +"description": "Creates a finding. The corresponding source must exist for finding creation to succeed.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.findings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"findingId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must be alphanumeric and less than or equal to 32 characters and greater than 0 characters in length.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new finding's parent. Its format should be `organizations/[organization_id]/sources/[source_id]`.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings", +"request": { +"$ref": "Finding" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"group": { +"description": "Filters an organization or source's findings and groups them by their specified properties. To group across all sources provide a `-` as the source id. Example: /v1/organizations/{organization_id}/sources/-/findings, /v1/folders/{folder_id}/sources/-/findings, /v1/projects/{project_id}/sources/-/findings", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings:group", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.findings.group", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the source to groupBy. Its format is `organizations/[organization_id]/sources/[source_id]`, `folders/[folder_id]/sources/[source_id]`, or `projects/[project_id]/sources/[source_id]`. To groupBy across all sources provide a source_id of `-`. For example: `organizations/{organization_id}/sources/-, folders/{folder_id}/sources/-`, or `projects/{project_id}/sources/-`", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings:group", +"request": { +"$ref": "GroupFindingsRequest" +}, +"response": { +"$ref": "GroupFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists an organization or source's findings. To list across all sources provide a `-` as the source id. Example: /v1/organizations/{organization_id}/sources/-/findings", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings", +"httpMethod": "GET", +"id": "securitycenter.organizations.sources.findings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"compareDuration": { +"deprecated": true, +"description": "When compare_duration is set, the ListFindingsResult's \"state_change\" attribute is updated to indicate whether the finding had its state changed, the finding's state remained unchanged, or if the finding was added in any state during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence and state of the finding at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the finding is made inactive and then active again. Possible \"state_change\" values when compare_duration is specified: * \"CHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration, but changed its state at read_time. * \"UNCHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration and did not change state at read_time. * \"ADDED\": indicates that the finding did not match the given filter or was not present at the start of compare_duration, but was present at read_time. * \"REMOVED\": indicates that the finding was present and matched the filter at the start of compare_duration, but did not match the filter at read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all findings present at read_time.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"fieldMask": { +"description": "A field mask to specify the Finding fields to be listed in the response. An empty field mask will list all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. Examples include: * name * source_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `event_time = \"2019-06-10T16:07:18-07:00\"` `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example, `source_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `source_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-source_properties.my_property : \"\"` * resource: * resource.name: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.type: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.display_name: `=`, `:`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: \"name,resource_properties.a_property\". The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be appended to the field name. For example: \"name desc,source_properties.a_property\". Redundant space characters in the syntax are insignificant. \"name desc,source_properties.a_property\" and \" name desc , source_properties.a_property \" are equivalent. The following fields are supported: name parent state category resource_name event_time source_properties security_marks.marks", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListFindingsResponse`; indicates that this is a continuation of a prior `ListFindings` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the source the findings belong to. Its format is `organizations/[organization_id]/sources/[source_id]`, `folders/[folder_id]/sources/[source_id]`, or `projects/[project_id]/sources/[source_id]`. To list across all sources provide a source_id of `-`. For example: `organizations/{organization_id}/sources/-`, `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-`", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +}, +"readTime": { +"deprecated": true, +"description": "Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/findings", +"response": { +"$ref": "ListFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Creates or updates a finding. The corresponding source must exist for a finding creation to succeed.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings/{findingsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.sources.findings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the finding resource. This field should not be specified when creating a finding. When updating a finding, an empty mask is treated as updating all mutable fields and replacing source_properties. Individual source_properties can be added/updated by using \"source_properties.\" in the field mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Finding" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMute": { +"description": "Updates the mute state of a finding.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings/{findingsId}:setMute", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.findings.setMute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setMute", +"request": { +"$ref": "SetMuteRequest" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setState": { +"description": "Updates the state of a finding.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings/{findingsId}:setState", +"httpMethod": "POST", +"id": "securitycenter.organizations.sources.findings.setState", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setState", +"request": { +"$ref": "SetFindingStateRequest" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityMarks": { +"description": "Updates security marks.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings/{findingsId}/securityMarks", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.sources.findings.updateSecurityMarks", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+/securityMarks$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the security marks resource. The field mask must not contain duplicate fields. If empty or set to \"marks\", all marks will be replaced. Individual marks can be updated using \"marks.\".", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "SecurityMarks" +}, +"response": { +"$ref": "SecurityMarks" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"externalSystems": { +"methods": { +"patch": { +"description": "Updates external system. This is for a given finding.", +"flatPath": "v1/organizations/{organizationsId}/sources/{sourcesId}/findings/{findingsId}/externalSystems/{externalSystemsId}", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.sources.findings.externalSystems.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", +"location": "path", +"pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+/externalSystems/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the external system resource. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"valuedResources": { +"methods": { +"list": { +"description": "Lists the valued resources for a set of simulation results and filter.", +"flatPath": "v1/organizations/{organizationsId}/valuedResources", +"httpMethod": "GET", +"id": "securitycenter.organizations.valuedResources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression that filters the valued resources in the response. Supported fields: * `resource_value` supports = * `resource_type` supports =", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The fields by which to order the valued resources response. Supported fields: * `exposed_score` * `resource_value` * `resource_type` * `resource` * `display_name` Values should be a comma separated list of fields. For example: `exposed_score,resource_value`. The default sorting order is descending. To specify ascending or descending order for a field, append a ` ASC` or a ` DESC` suffix, respectively; for example: `exposed_score DESC`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListValuedResourcesResponse`; indicates that this is a continuation of a prior `ListValuedResources` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list valued resources. Valid formats: `organizations/{organization}`, `organizations/{organization}/simulations/{simulation}` `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/valuedResources", +"response": { +"$ref": "ListValuedResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"assets": { +"methods": { +"group": { +"deprecated": true, +"description": "Filters an organization's assets and groups them by their specified properties.", +"flatPath": "v1/projects/{projectsId}/assets:group", +"httpMethod": "POST", +"id": "securitycenter.projects.assets.group", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent to group the assets by. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/assets:group", +"request": { +"$ref": "GroupAssetsRequest" +}, +"response": { +"$ref": "GroupAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Lists an organization's assets.", +"flatPath": "v1/projects/{projectsId}/assets", +"httpMethod": "GET", +"id": "securitycenter.projects.assets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"compareDuration": { +"description": "When compare_duration is set, the ListAssetsResult's \"state_change\" attribute is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again. Possible \"state_change\" values when compare_duration is specified: * \"ADDED\": indicates that the asset was not present at the start of compare_duration, but present at read_time. * \"REMOVED\": indicates that the asset was present at the start of compare_duration, but not present at read_time. * \"ACTIVE\": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all assets present at read_time.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"fieldMask": { +"description": "A field mask to specify the ListAssetsResult fields to be listed in the response. An empty field mask will list all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include: * name * security_center_properties.resource_name * resource_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following are the allowed field and operator combinations: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `update_time = \"2019-06-10T16:07:18-07:00\"` `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `create_time = \"2019-06-10T16:07:18-07:00\"` `create_time = 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` * security_center_properties.resource_name: `=`, `:` * security_center_properties.resource_display_name: `=`, `:` * security_center_properties.resource_type: `=`, `:` * security_center_properties.resource_parent: `=`, `:` * security_center_properties.resource_parent_display_name: `=`, `:` * security_center_properties.resource_project: `=`, `:` * security_center_properties.resource_project_display_name: `=`, `:` * security_center_properties.resource_owners: `=`, `:` For example, `resource_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `resource_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-resource_properties.my_property : \"\"`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: \"name,resource_properties.a_property\". The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be appended to the field name. For example: \"name desc,resource_properties.a_property\". Redundant space characters in the syntax are insignificant. \"name desc,resource_properties.a_property\" and \" name desc , resource_properties.a_property \" are equivalent. The following fields are supported: name update_time resource_properties security_marks.marks security_center_properties.resource_name security_center_properties.resource_display_name security_center_properties.resource_parent security_center_properties.resource_parent_display_name security_center_properties.resource_project security_center_properties.resource_project_display_name security_center_properties.resource_type", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListAssetsResponse`; indicates that this is a continuation of a prior `ListAssets` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource that contains the assets. The value that you can specify on parent depends on the method in which you specify parent. You can specify one of the following values: `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"readTime": { +"description": "Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/assets", +"response": { +"$ref": "ListAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityMarks": { +"description": "Updates security marks.", +"flatPath": "v1/projects/{projectsId}/assets/{assetsId}/securityMarks", +"httpMethod": "PATCH", +"id": "securitycenter.projects.assets.updateSecurityMarks", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"location": "path", +"pattern": "^projects/[^/]+/assets/[^/]+/securityMarks$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the security marks resource. The field mask must not contain duplicate fields. If empty or set to \"marks\", all marks will be replaced. Individual marks can be updated using \"marks.\".", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "SecurityMarks" +}, +"response": { +"$ref": "SecurityMarks" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"bigQueryExports": { +"methods": { +"create": { +"description": "Creates a BigQuery export.", +"flatPath": "v1/projects/{projectsId}/bigQueryExports", +"httpMethod": "POST", +"id": "securitycenter.projects.bigQueryExports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"bigQueryExportId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource of the new BigQuery export. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bigQueryExports", +"request": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing BigQuery export.", +"flatPath": "v1/projects/{projectsId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "DELETE", +"id": "securitycenter.projects.bigQueryExports.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the BigQuery export to delete. Its format is `organizations/{organization}/bigQueryExports/{export_id}`, `folders/{folder}/bigQueryExports/{export_id}`, or `projects/{project}/bigQueryExports/{export_id}`", +"location": "path", +"pattern": "^projects/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a BigQuery export.", +"flatPath": "v1/projects/{projectsId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "GET", +"id": "securitycenter.projects.bigQueryExports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the BigQuery export to retrieve. Its format is `organizations/{organization}/bigQueryExports/{export_id}`, `folders/{folder}/bigQueryExports/{export_id}`, or `projects/{project}/bigQueryExports/{export_id}`", +"location": "path", +"pattern": "^projects/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists BigQuery exports. Note that when requesting BigQuery exports at a given level all exports under that level are also returned e.g. if requesting BigQuery exports under a folder, then all BigQuery exports immediately under the folder plus the ones created under the projects within the folder are returned.", +"flatPath": "v1/projects/{projectsId}/bigQueryExports", +"httpMethod": "GET", +"id": "securitycenter.projects.bigQueryExports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListBigQueryExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBigQueryExports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of BigQuery exports. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bigQueryExports", +"response": { +"$ref": "ListBigQueryExportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a BigQuery export.", +"flatPath": "v1/projects/{projectsId}/bigQueryExports/{bigQueryExportsId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.bigQueryExports.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. Example format: \"organizations/{organization_id}/bigQueryExports/{export_id}\" Example format: \"folders/{folder_id}/bigQueryExports/{export_id}\" Example format: \"projects/{project_id}/bigQueryExports/{export_id}\" This field is provided in responses, and is ignored when provided in create requests.", +"location": "path", +"pattern": "^projects/[^/]+/bigQueryExports/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventThreatDetectionSettings": { +"methods": { +"validateCustomModule": { +"description": "Validates the given Event Threat Detection custom module.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings:validateCustomModule", +"httpMethod": "POST", +"id": "securitycenter.projects.eventThreatDetectionSettings.validateCustomModule", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:validateCustomModule", +"request": { +"$ref": "ValidateEventThreatDetectionCustomModuleRequest" +}, +"response": { +"$ref": "ValidateEventThreatDetectionCustomModuleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"customModules": { +"methods": { +"create": { +"description": "Creates a resident Event Threat Detection custom module at the scope of the given Resource Manager parent, and also creates inherited custom modules for all descendants of the given parent. These modules are enabled by default.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules", +"httpMethod": "POST", +"id": "securitycenter.projects.eventThreatDetectionSettings.customModules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The new custom module's parent. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"request": { +"$ref": "EventThreatDetectionCustomModule" +}, +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified Event Threat Detection custom module and all of its descendants in the Resource Manager hierarchy. This method is only supported for resident custom modules.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "DELETE", +"id": "securitycenter.projects.eventThreatDetectionSettings.customModules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to delete. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an Event Threat Detection custom module.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "GET", +"id": "securitycenter.projects.eventThreatDetectionSettings.customModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to get. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Event Threat Detection custom modules for the given Resource Manager parent. This includes resident modules defined at the scope of the parent along with modules inherited from ancestors.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules", +"httpMethod": "GET", +"id": "securitycenter.projects.eventThreatDetectionSettings.customModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"response": { +"$ref": "ListEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDescendant": { +"description": "Lists all resident Event Threat Detection custom modules under the given Resource Manager parent and its descendants.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules:listDescendant", +"httpMethod": "GET", +"id": "securitycenter.projects.eventThreatDetectionSettings.customModules.listDescendant", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDescendantEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDescendantEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules under. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:listDescendant", +"response": { +"$ref": "ListDescendantEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the Event Threat Detection custom module with the given name based on the given update mask. Updating the enablement state is supported for both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name or configuration of a module is supported for resident modules only. The type of a module cannot be changed.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.eventThreatDetectionSettings.customModules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "EventThreatDetectionCustomModule" +}, +"response": { +"$ref": "EventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"effectiveCustomModules": { +"methods": { +"get": { +"description": "Gets an effective Event Threat Detection custom module at the given level.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/effectiveCustomModules/{effectiveCustomModulesId}", +"httpMethod": "GET", +"id": "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the effective Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings/effectiveCustomModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "EffectiveEventThreatDetectionCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all effective Event Threat Detection custom modules for the given parent. This includes resident modules defined at the scope of the parent along with modules inherited from its ancestors.", +"flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/effectiveCustomModules", +"httpMethod": "GET", +"id": "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent to list custom modules for. Its format is: * `organizations/{organization}/eventThreatDetectionSettings`. * `folders/{folder}/eventThreatDetectionSettings`. * `projects/{project}/eventThreatDetectionSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/effectiveCustomModules", +"response": { +"$ref": "ListEffectiveEventThreatDetectionCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"findings": { +"methods": { +"bulkMute": { +"description": "Kicks off an LRO to bulk mute findings for a parent based on a filter. The parent can be either an organization, folder or project. The findings matched by the filter will be muted after the LRO is done.", +"flatPath": "v1/projects/{projectsId}/findings:bulkMute", +"httpMethod": "POST", +"id": "securitycenter.projects.findings.bulkMute", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent, at which bulk action needs to be applied. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings:bulkMute", +"request": { +"$ref": "BulkMuteFindingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"muteConfigs": { +"methods": { +"delete": { +"description": "Deletes an existing mute config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.projects.locations.muteConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to delete. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a mute config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.projects.locations.muteConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to retrieve. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a mute config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.locations.muteConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"muteConfigs": { +"methods": { +"create": { +"description": "Creates a mute config.", +"flatPath": "v1/projects/{projectsId}/muteConfigs", +"httpMethod": "POST", +"id": "securitycenter.projects.muteConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"muteConfigId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new mute configs's parent. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/muteConfigs", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing mute config.", +"flatPath": "v1/projects/{projectsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.projects.muteConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to delete. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a mute config.", +"flatPath": "v1/projects/{projectsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.projects.muteConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the mute config to retrieve. Its format is `organizations/{organization}/muteConfigs/{config_id}`, `folders/{folder}/muteConfigs/{config_id}`, `projects/{project}/muteConfigs/{config_id}`, `organizations/{organization}/locations/global/muteConfigs/{config_id}`, `folders/{folder}/locations/global/muteConfigs/{config_id}`, or `projects/{project}/locations/global/muteConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists mute configs.", +"flatPath": "v1/projects/{projectsId}/muteConfigs", +"httpMethod": "GET", +"id": "securitycenter.projects.muteConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListMuteConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMuteConfigs` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns the collection of mute configs. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/muteConfigs", +"response": { +"$ref": "ListMuteConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a mute config.", +"flatPath": "v1/projects/{projectsId}/muteConfigs/{muteConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.muteConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"location": "path", +"pattern": "^projects/[^/]+/muteConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"notificationConfigs": { +"methods": { +"create": { +"description": "Creates a notification config.", +"flatPath": "v1/projects/{projectsId}/notificationConfigs", +"httpMethod": "POST", +"id": "securitycenter.projects.notificationConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"configId": { +"description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters and contain alphanumeric characters, underscores, or hyphens only.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the new notification config's parent. Its format is `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notificationConfigs", +"request": { +"$ref": "NotificationConfig" +}, +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a notification config.", +"flatPath": "v1/projects/{projectsId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "DELETE", +"id": "securitycenter.projects.notificationConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the notification config to delete. Its format is `organizations/[organization_id]/notificationConfigs/[config_id]`, `folders/[folder_id]/notificationConfigs/[config_id]`, or `projects/[project_id]/notificationConfigs/[config_id]`.", +"location": "path", +"pattern": "^projects/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a notification config.", +"flatPath": "v1/projects/{projectsId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "GET", +"id": "securitycenter.projects.notificationConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the notification config to get. Its format is `organizations/[organization_id]/notificationConfigs/[config_id]`, `folders/[folder_id]/notificationConfigs/[config_id]`, or `projects/[project_id]/notificationConfigs/[config_id]`.", +"location": "path", +"pattern": "^projects/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notification configs.", +"flatPath": "v1/projects/{projectsId}/notificationConfigs", +"httpMethod": "GET", +"id": "securitycenter.projects.notificationConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListNotificationConfigsResponse`; indicates that this is a continuation of a prior `ListNotificationConfigs` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent in which to list the notification configurations. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/notificationConfigs", +"response": { +"$ref": "ListNotificationConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": " Updates a notification config. The following update fields are allowed: description, pubsub_topic, streaming_config.filter", +"flatPath": "v1/projects/{projectsId}/notificationConfigs/{notificationConfigsId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.notificationConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", +"location": "path", +"pattern": "^projects/[^/]+/notificationConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the notification config. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "NotificationConfig" +}, +"response": { +"$ref": "NotificationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityHealthAnalyticsSettings": { +"resources": { +"customModules": { +"methods": { +"create": { +"description": "Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the given CRM parent, and also creates inherited SecurityHealthAnalyticsCustomModules for all CRM descendants of the given parent. These modules are enabled by default.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules", +"httpMethod": "POST", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the new custom module's parent. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"request": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified SecurityHealthAnalyticsCustomModule and all of its descendants in the CRM hierarchy. This method is only supported for resident custom modules.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "DELETE", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to delete. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a SecurityHealthAnalyticsCustomModule.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "GET", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom module to get. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all SecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules", +"httpMethod": "GET", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules", +"response": { +"$ref": "ListSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listDescendant": { +"description": "Returns a list of all resident SecurityHealthAnalyticsCustomModules under the given CRM parent and all of the parent\u2019s CRM descendants.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules:listDescendant", +"httpMethod": "GET", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.listDescendant", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list descendant custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:listDescendant", +"response": { +"$ref": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the SecurityHealthAnalyticsCustomModule under the given name based on the given update mask. Updating the enablement state is supported on both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name and custom config of a module is supported on resident modules only.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. The only fields that can be updated are `enablement_state` and `custom_config`. If empty or set to the wildcard value `*`, both `enablement_state` and `custom_config` are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"simulate": { +"description": "Simulates a given SecurityHealthAnalyticsCustomModule and Resource.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules:simulate", +"httpMethod": "POST", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.simulate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The relative resource name of the organization, project, or folder. For more information about relative resource names, see [Relative Resource Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) Example: `organizations/{organization_id}`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/customModules:simulate", +"request": { +"$ref": "SimulateSecurityHealthAnalyticsCustomModuleRequest" +}, +"response": { +"$ref": "SimulateSecurityHealthAnalyticsCustomModuleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"effectiveCustomModules": { +"methods": { +"get": { +"description": "Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/effectiveCustomModules/{effectiveCustomModulesId}", +"httpMethod": "GET", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the effective custom module to get. Its format is `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, or `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/effectiveCustomModules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", +"flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/effectiveCustomModules", +"httpMethod": "GET", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last call indicating a continuation", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of parent to list effective custom modules. Its format is `organizations/{organization}/securityHealthAnalyticsSettings`, `folders/{folder}/securityHealthAnalyticsSettings`, or `projects/{project}/securityHealthAnalyticsSettings`", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/effectiveCustomModules", +"response": { +"$ref": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"sources": { +"methods": { +"list": { +"description": "Lists all sources belonging to an organization.", +"flatPath": "v1/projects/{projectsId}/sources", +"httpMethod": "GET", +"id": "securitycenter.projects.sources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListSourcesResponse`; indicates that this is a continuation of a prior `ListSources` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the parent of sources to list. Its format should be `organizations/[organization_id]`, `folders/[folder_id]`, or `projects/[project_id]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sources", +"response": { +"$ref": "ListSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"findings": { +"methods": { +"group": { +"description": "Filters an organization or source's findings and groups them by their specified properties. To group across all sources provide a `-` as the source id. Example: /v1/organizations/{organization_id}/sources/-/findings, /v1/folders/{folder_id}/sources/-/findings, /v1/projects/{project_id}/sources/-/findings", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings:group", +"httpMethod": "POST", +"id": "securitycenter.projects.sources.findings.group", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the source to groupBy. Its format is `organizations/[organization_id]/sources/[source_id]`, `folders/[folder_id]/sources/[source_id]`, or `projects/[project_id]/sources/[source_id]`. To groupBy across all sources provide a source_id of `-`. For example: `organizations/{organization_id}/sources/-, folders/{folder_id}/sources/-`, or `projects/{project_id}/sources/-`", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings:group", +"request": { +"$ref": "GroupFindingsRequest" +}, +"response": { +"$ref": "GroupFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists an organization or source's findings. To list across all sources provide a `-` as the source id. Example: /v1/organizations/{organization_id}/sources/-/findings", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings", +"httpMethod": "GET", +"id": "securitycenter.projects.sources.findings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"compareDuration": { +"deprecated": true, +"description": "When compare_duration is set, the ListFindingsResult's \"state_change\" attribute is updated to indicate whether the finding had its state changed, the finding's state remained unchanged, or if the finding was added in any state during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence and state of the finding at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the finding is made inactive and then active again. Possible \"state_change\" values when compare_duration is specified: * \"CHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration, but changed its state at read_time. * \"UNCHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration and did not change state at read_time. * \"ADDED\": indicates that the finding did not match the given filter or was not present at the start of compare_duration, but was present at read_time. * \"REMOVED\": indicates that the finding was present and matched the filter at the start of compare_duration, but did not match the filter at read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all findings present at read_time.", +"format": "google-duration", +"location": "query", +"type": "string" +}, +"fieldMask": { +"description": "A field mask to specify the Finding fields to be listed in the response. An empty field mask will list all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. Examples include: * name * source_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `event_time = \"2019-06-10T16:07:18-07:00\"` `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example, `source_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `source_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-source_properties.my_property : \"\"` * resource: * resource.name: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.type: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.display_name: `=`, `:`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: \"name,resource_properties.a_property\". The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be appended to the field name. For example: \"name desc,source_properties.a_property\". Redundant space characters in the syntax are insignificant. \"name desc,source_properties.a_property\" and \" name desc , source_properties.a_property \" are equivalent. The following fields are supported: name parent state category resource_name event_time source_properties security_marks.marks", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListFindingsResponse`; indicates that this is a continuation of a prior `ListFindings` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the source the findings belong to. Its format is `organizations/[organization_id]/sources/[source_id]`, `folders/[folder_id]/sources/[source_id]`, or `projects/[project_id]/sources/[source_id]`. To list across all sources provide a source_id of `-`. For example: `organizations/{organization_id}/sources/-`, `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-`", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+$", +"required": true, +"type": "string" +}, +"readTime": { +"deprecated": true, +"description": "Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/findings", +"response": { +"$ref": "ListFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Creates or updates a finding. The corresponding source must exist for a finding creation to succeed.", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings/{findingsId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.sources.findings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the finding resource. This field should not be specified when creating a finding. When updating a finding, an empty mask is treated as updating all mutable fields and replacing source_properties. Individual source_properties can be added/updated by using \"source_properties.\" in the field mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Finding" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMute": { +"description": "Updates the mute state of a finding.", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings/{findingsId}:setMute", +"httpMethod": "POST", +"id": "securitycenter.projects.sources.findings.setMute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setMute", +"request": { +"$ref": "SetMuteRequest" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setState": { +"description": "Updates the state of a finding.", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings/{findingsId}:setState", +"httpMethod": "POST", +"id": "securitycenter.projects.sources.findings.setState", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setState", +"request": { +"$ref": "SetFindingStateRequest" +}, +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityMarks": { +"description": "Updates security marks.", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings/{findingsId}/securityMarks", +"httpMethod": "PATCH", +"id": "securitycenter.projects.sources.findings.updateSecurityMarks", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+/securityMarks$", +"required": true, +"type": "string" +}, +"startTime": { +"description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the security marks resource. The field mask must not contain duplicate fields. If empty or set to \"marks\", all marks will be replaced. Individual marks can be updated using \"marks.\".", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "SecurityMarks" +}, +"response": { +"$ref": "SecurityMarks" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"externalSystems": { +"methods": { +"patch": { +"description": "Updates external system. This is for a given finding.", +"flatPath": "v1/projects/{projectsId}/sources/{sourcesId}/findings/{findingsId}/externalSystems/{externalSystemsId}", +"httpMethod": "PATCH", +"id": "securitycenter.projects.sources.findings.externalSystems.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", +"location": "path", +"pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+/externalSystems/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask to use when updating the external system resource. If empty all mutable fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"response": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20250103", +"rootUrl": "https://securitycenter.googleapis.com/", +"schemas": { +"Access": { +"description": "Represents an access event.", +"id": "Access", +"properties": { +"callerIp": { +"description": "Caller's IP address, such as \"1.1.1.1\".", +"type": "string" +}, +"callerIpGeo": { +"$ref": "Geolocation", +"description": "The caller IP's geolocation, which identifies where the call came from." +}, +"methodName": { +"description": "The method that the service account called, e.g. \"SetIamPolicy\".", +"type": "string" +}, +"principalEmail": { +"description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user or a service account acting on behalf of a third party principal making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", +"type": "string" +}, +"principalSubject": { +"description": "A string that represents the principal_subject that is associated with the identity. Unlike `principal_email`, `principal_subject` supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format is `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`. Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:{identity pool name}[{subject}]`.", +"type": "string" +}, +"serviceAccountDelegationInfo": { +"description": "The identity delegation history of an authenticated service account that made the request. The `serviceAccountDelegationInfo[]` object contains information about the real authorities that try to access Google Cloud resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", +"items": { +"$ref": "ServiceAccountDelegationInfo" +}, +"type": "array" +}, +"serviceAccountKeyName": { +"description": "The name of the service account key that was used to create or exchange credentials when authenticating the service account that made the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\". ", +"type": "string" +}, +"serviceName": { +"description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", +"type": "string" +}, +"userAgent": { +"description": "The caller's user agent string associated with the finding.", +"type": "string" +}, +"userAgentFamily": { +"description": "Type of user agent associated with the finding. For example, an operating system shell or an embedded or standalone application.", +"type": "string" +}, +"userName": { +"description": "A string that represents a username. The username provided depends on the type of the finding and is likely not an IAM principal. For example, this can be a system username if the finding is related to a virtual machine, or it can be an application login username.", +"type": "string" +} +}, +"type": "object" +}, +"AccessReview": { +"description": "Conveys information about a Kubernetes access review (such as one returned by a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access) command) that was involved in a finding.", +"id": "AccessReview", +"properties": { +"group": { +"description": "The API group of the resource. \"*\" means all.", +"type": "string" +}, +"name": { +"description": "The name of the resource being requested. Empty means all.", +"type": "string" +}, +"ns": { +"description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", +"type": "string" +}, +"resource": { +"description": "The optional resource type requested. \"*\" means all.", +"type": "string" +}, +"subresource": { +"description": "The optional subresource type.", +"type": "string" +}, +"verb": { +"description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", +"type": "string" +}, +"version": { +"description": "The API version of the resource. \"*\" means all.", +"type": "string" +} +}, +"type": "object" +}, +"AdaptiveProtection": { +"description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", +"id": "AdaptiveProtection", +"properties": { +"confidence": { +"description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Application": { +"description": "Represents an application associated with a finding.", +"id": "Application", +"properties": { +"baseUri": { +"description": "The base URI that identifies the network location of the application in which the vulnerability was detected. For example, `http://example.com`.", +"type": "string" +}, +"fullUri": { +"description": "The full URI with payload that can be used to reproduce the vulnerability. For example, `http://example.com?p=aMmYgI6H`.", +"type": "string" +} +}, +"type": "object" +}, +"Asset": { +"description": "Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don't affect the referenced Google Cloud resource.", +"id": "Asset", +"properties": { +"canonicalName": { +"description": "The canonical name of the resource. It's either \"organizations/{organization_id}/assets/{asset_id}\", \"folders/{folder_id}/assets/{asset_id}\" or \"projects/{project_number}/assets/{asset_id}\", depending on the closest CRM ancestor of the resource.", +"type": "string" +}, +"createTime": { +"description": "The time at which the asset was created in Security Command Center.", +"format": "google-datetime", +"type": "string" +}, +"iamPolicy": { +"$ref": "IamPolicy", +"description": "Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user." +}, +"name": { +"description": "The relative resource name of this asset. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/assets/{asset_id}\".", +"type": "string" +}, +"resourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Resource managed properties. These properties are managed and defined by the Google Cloud resource and cannot be modified by the user.", +"type": "object" +}, +"securityCenterProperties": { +"$ref": "SecurityCenterProperties", +"description": "Security Command Center managed properties. These properties are managed by Security Command Center and cannot be modified by the user." +}, +"securityMarks": { +"$ref": "SecurityMarks", +"description": "User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the asset." +}, +"updateTime": { +"description": "The time at which the asset was last updated or added in Cloud SCC.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"AssetDiscoveryConfig": { +"description": "The configuration used for Asset Discovery runs.", +"id": "AssetDiscoveryConfig", +"properties": { +"folderIds": { +"description": "The folder ids to use for filtering asset discovery. It consists of only digits, e.g., 756619654966.", +"items": { +"type": "string" +}, +"type": "array" +}, +"inclusionMode": { +"description": "The mode to use for filtering asset discovery.", +"enum": [ +"INCLUSION_MODE_UNSPECIFIED", +"INCLUDE_ONLY", +"EXCLUDE" +], +"enumDescriptions": [ +"Unspecified. Setting the mode with this value will disable inclusion/exclusion filtering for Asset Discovery.", +"Asset Discovery will capture only the resources within the projects specified. All other resources will be ignored.", +"Asset Discovery will ignore all resources under the projects specified. All other resources will be retrieved." +], +"type": "string" +}, +"projectIds": { +"description": "The project ids to use for filtering asset discovery.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Attack": { +"description": "Information about DDoS attack volume and classification.", +"id": "Attack", +"properties": { +"classification": { +"description": "Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.", +"type": "string" +}, +"volumeBps": { +"deprecated": true, +"description": "Total BPS (bytes per second) volume of attack. Deprecated - refer to volume_bps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumeBpsLong": { +"description": "Total BPS (bytes per second) volume of attack.", +"format": "int64", +"type": "string" +}, +"volumePps": { +"deprecated": true, +"description": "Total PPS (packets per second) volume of attack. Deprecated - refer to volume_pps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumePpsLong": { +"description": "Total PPS (packets per second) volume of attack.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AttackExposure": { +"description": "An attack exposure contains the results of an attack path simulation run.", +"id": "AttackExposure", +"properties": { +"attackExposureResult": { +"description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: `organizations/123/simulations/456/attackExposureResults/789`", +"type": "string" +}, +"exposedHighValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedLowValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedMediumValueResourcesCount": { +"description": "The number of medium value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"latestCalculationTime": { +"description": "The most recent time the attack exposure was updated on this finding.", +"format": "google-datetime", +"type": "string" +}, +"score": { +"description": "A number between 0 (inclusive) and infinity that represents how important this finding is to remediate. The higher the score, the more important it is to remediate.", +"format": "double", +"type": "number" +}, +"state": { +"description": "What state this AttackExposure is in. This captures whether or not an attack exposure has been calculated or not.", +"enum": [ +"STATE_UNSPECIFIED", +"CALCULATED", +"NOT_CALCULATED" +], +"enumDescriptions": [ +"The state is not specified.", +"The attack exposure has been calculated.", +"The attack exposure has not been calculated." +], +"type": "string" +} +}, +"type": "object" +}, +"AttackPath": { +"description": "A path that an attacker could take to reach an exposed resource.", +"id": "AttackPath", +"properties": { +"edges": { +"description": "A list of the edges between nodes in this attack path.", +"items": { +"$ref": "AttackPathEdge" +}, +"type": "array" +}, +"name": { +"description": "The attack path name, for example, `organizations/12/simulation/34/valuedResources/56/attackPaths/78`", +"type": "string" +}, +"pathNodes": { +"description": "A list of nodes that exist in this attack path.", +"items": { +"$ref": "AttackPathNode" +}, +"type": "array" +} +}, +"type": "object" +}, +"AttackPathEdge": { +"description": "Represents a connection between a source node and a destination node in this attack path.", +"id": "AttackPathEdge", +"properties": { +"destination": { +"description": "The attack node uuid of the destination node.", +"type": "string" +}, +"source": { +"description": "The attack node uuid of the source node.", +"type": "string" +} +}, +"type": "object" +}, +"AttackPathNode": { +"description": "Represents one point that an attacker passes through in this attack path.", +"id": "AttackPathNode", +"properties": { +"associatedFindings": { +"description": "The findings associated with this node in the attack path.", +"items": { +"$ref": "PathNodeAssociatedFinding" +}, +"type": "array" +}, +"attackSteps": { +"description": "A list of attack step nodes that exist in this attack path node.", +"items": { +"$ref": "AttackStepNode" +}, +"type": "array" +}, +"displayName": { +"description": "Human-readable name of this resource.", +"type": "string" +}, +"resource": { +"description": "The name of the resource at this point in the attack path. The format of the name follows the Cloud Asset Inventory [resource name format](https://cloud.google.com/asset-inventory/docs/resource-name-format)", +"type": "string" +}, +"resourceType": { +"description": "The [supported resource type](https://cloud.google.com/asset-inventory/docs/supported-asset-types)", +"type": "string" +}, +"uuid": { +"description": "Unique id of the attack path node.", +"type": "string" +} +}, +"type": "object" +}, +"AttackStepNode": { +"description": "Detailed steps the attack can take between path nodes.", +"id": "AttackStepNode", +"properties": { +"description": { +"description": "Attack step description", +"type": "string" +}, +"displayName": { +"description": "User friendly name of the attack step", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Attack step labels for metadata", +"type": "object" +}, +"type": { +"description": "Attack step type. Can be either AND, OR or DEFENSE", +"enum": [ +"NODE_TYPE_UNSPECIFIED", +"NODE_TYPE_AND", +"NODE_TYPE_OR", +"NODE_TYPE_DEFENSE", +"NODE_TYPE_ATTACKER" +], +"enumDescriptions": [ +"Type not specified", +"Incoming edge joined with AND", +"Incoming edge joined with OR", +"Incoming edge is defense", +"Incoming edge is attacker" +], +"type": "string" +}, +"uuid": { +"description": "Unique ID for one Node", +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AwsAccount": { +"description": "An AWS account that is a member of an organization.", +"id": "AwsAccount", +"properties": { +"id": { +"description": "The unique identifier (ID) of the account, containing exactly 12 digits.", +"type": "string" +}, +"name": { +"description": "The friendly name of this account.", +"type": "string" +} +}, +"type": "object" +}, +"AwsMetadata": { +"description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", +"id": "AwsMetadata", +"properties": { +"account": { +"$ref": "AwsAccount", +"description": "The AWS account associated with the resource." +}, +"organization": { +"$ref": "AwsOrganization", +"description": "The AWS organization associated with the resource." +}, +"organizationalUnits": { +"description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", +"items": { +"$ref": "AwsOrganizationalUnit" +}, +"type": "array" +} +}, +"type": "object" +}, +"AwsOrganization": { +"description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", +"id": "AwsOrganization", +"properties": { +"id": { +"description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", +"type": "string" +} +}, +"type": "object" +}, +"AwsOrganizationalUnit": { +"description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", +"id": "AwsOrganizationalUnit", +"properties": { +"id": { +"description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", +"type": "string" +}, +"name": { +"description": "The friendly name of the OU.", +"type": "string" +} +}, +"type": "object" +}, +"AzureManagementGroup": { +"description": "Represents an Azure management group.", +"id": "AzureManagementGroup", +"properties": { +"displayName": { +"description": "The display name of the Azure management group.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure management group, for example, `20000000-0001-0000-0000-000000000000`.", +"type": "string" +} +}, +"type": "object" +}, +"AzureMetadata": { +"description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", +"id": "AzureMetadata", +"properties": { +"managementGroups": { +"description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", +"items": { +"$ref": "AzureManagementGroup" +}, +"type": "array" +}, +"resourceGroup": { +"$ref": "AzureResourceGroup", +"description": "The Azure resource group associated with the resource." +}, +"subscription": { +"$ref": "AzureSubscription", +"description": "The Azure subscription associated with the resource." +}, +"tenant": { +"$ref": "AzureTenant", +"description": "The Azure Entra tenant associated with the resource." +} +}, +"type": "object" +}, +"AzureResourceGroup": { +"description": "Represents an Azure resource group.", +"id": "AzureResourceGroup", +"properties": { +"id": { +"description": "The ID of the Azure resource group.", +"type": "string" +}, +"name": { +"description": "The name of the Azure resource group. This is not a UUID.", +"type": "string" +} +}, +"type": "object" +}, +"AzureSubscription": { +"description": "Represents an Azure subscription.", +"id": "AzureSubscription", +"properties": { +"displayName": { +"description": "The display name of the Azure subscription.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure subscription, for example, `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`.", +"type": "string" +} +}, +"type": "object" +}, +"AzureTenant": { +"description": "Represents a Microsoft Entra tenant.", +"id": "AzureTenant", +"properties": { +"displayName": { +"description": "The display name of the Azure tenant.", +"type": "string" +}, +"id": { +"description": "The ID of the Microsoft Entra tenant, for example, \"a11aaa11-aa11-1aa1-11aa-1aaa11a\".", +"type": "string" +} +}, +"type": "object" +}, +"BackupDisasterRecovery": { +"description": "Information related to Google Cloud Backup and DR Service findings.", +"id": "BackupDisasterRecovery", +"properties": { +"appliance": { +"description": "The name of the Backup and DR appliance that captures, moves, and manages the lifecycle of backup data. For example, `backup-server-57137`.", +"type": "string" +}, +"applications": { +"description": "The names of Backup and DR applications. An application is a VM, database, or file system on a managed host monitored by a backup and recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"backupCreateTime": { +"description": "The timestamp at which the Backup and DR backup was created.", +"format": "google-datetime", +"type": "string" +}, +"backupTemplate": { +"description": "The name of a Backup and DR template which comprises one or more backup policies. See the [Backup and DR documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information. For example, `snap-ov`.", +"type": "string" +}, +"backupType": { +"description": "The backup type of the Backup and DR image. For example, `Snapshot`, `Remote Snapshot`, `OnVault`.", +"type": "string" +}, +"host": { +"description": "The name of a Backup and DR host, which is managed by the backup and recovery appliance and known to the management console. The host can be of type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.), vCenter, or an ESX server. See the [Backup and DR documentation on hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) for more information. For example, `centos7-01`.", +"type": "string" +}, +"policies": { +"description": "The names of Backup and DR policies that are associated with a template and that define when to run a backup, how frequently to run a backup, and how long to retain the backup image. For example, `onvaults`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"policyOptions": { +"description": "The names of Backup and DR advanced policy options of a policy applying to an application. See the [Backup and DR documentation on policy options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). For example, `skipofflineappsincongrp, nounmap`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"profile": { +"description": "The name of the Backup and DR resource profile that specifies the storage media for backups of application and VM data. See the [Backup and DR documentation on profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). For example, `GCP`.", +"type": "string" +}, +"storagePool": { +"description": "The name of the Backup and DR storage pool that the backup and recovery appliance is storing data in. The storage pool could be of type Cloud, Primary, Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). For example, `DiskPoolOne`.", +"type": "string" +} +}, +"type": "object" +}, +"BatchCreateResourceValueConfigsRequest": { +"description": "Request message to create multiple resource value configs", +"id": "BatchCreateResourceValueConfigsRequest", +"properties": { +"requests": { +"description": "Required. The resource value configs to be created.", +"items": { +"$ref": "CreateResourceValueConfigRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateResourceValueConfigsResponse": { +"description": "Response message for BatchCreateResourceValueConfigs", +"id": "BatchCreateResourceValueConfigsResponse", +"properties": { +"resourceValueConfigs": { +"description": "The resource value configs created", +"items": { +"$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BulkMuteFindingsRequest": { +"description": "Request message for bulk findings update. Note: 1. If multiple bulk update requests match the same resource, the order in which they get executed is not defined. 2. Once a bulk operation is started, there is no way to stop it.", +"id": "BulkMuteFindingsRequest", +"properties": { +"filter": { +"description": "Expression that identifies findings that should be updated. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", +"type": "string" +}, +"muteAnnotation": { +"deprecated": true, +"description": "This can be a mute configuration name or any identifier for mute/unmute of findings based on the filter.", +"type": "string" +}, +"muteState": { +"description": "Optional. All findings matching the given filter will have their mute state set to this value. The default value is `MUTED`. Setting this to `UNDEFINED` will clear the mute state on all matching findings.", +"enum": [ +"MUTE_STATE_UNSPECIFIED", +"MUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unused.", +"Matching findings will be muted (default).", +"Matching findings will have their mute state cleared." +], +"type": "string" +} +}, +"type": "object" +}, +"CloudArmor": { +"description": "Fields related to Google Cloud Armor findings.", +"id": "CloudArmor", +"properties": { +"adaptiveProtection": { +"$ref": "AdaptiveProtection", +"description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." +}, +"attack": { +"$ref": "Attack", +"description": "Information about DDoS attack volume and classification." +}, +"duration": { +"description": "Duration of attack from the start until the current moment (updated every 5 minutes).", +"format": "google-duration", +"type": "string" +}, +"requests": { +"$ref": "Requests", +"description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." +}, +"securityPolicy": { +"$ref": "SecurityPolicy", +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." +}, +"threatVector": { +"description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \"L3_4\" for Layer 3 and Layer 4 DDoS attacks, or \"L_7\" for Layer 7 DDoS attacks.", +"type": "string" +} +}, +"type": "object" +}, +"CloudDlpDataProfile": { +"description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", +"id": "CloudDlpDataProfile", +"properties": { +"dataProfile": { +"description": "Name of the data profile, for example, `projects/123/locations/europe/tableProfiles/8383929`.", +"type": "string" +}, +"parentType": { +"description": "The resource hierarchy level at which the data profile was generated.", +"enum": [ +"PARENT_TYPE_UNSPECIFIED", +"ORGANIZATION", +"PROJECT" +], +"enumDescriptions": [ +"Unspecified parent type.", +"Organization-level configurations.", +"Project-level configurations." +], +"type": "string" +} +}, +"type": "object" +}, +"CloudDlpInspection": { +"description": "Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the finding.", +"id": "CloudDlpInspection", +"properties": { +"fullScan": { +"description": "Whether Cloud DLP scanned the complete resource or a sampled subset.", +"type": "boolean" +}, +"infoType": { +"description": "The type of information (or *[infoType](https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.", +"type": "string" +}, +"infoTypeCount": { +"description": "The number of times Cloud DLP found this infoType within this job and resource.", +"format": "int64", +"type": "string" +}, +"inspectJob": { +"description": "Name of the inspection job, for example, `projects/123/locations/europe/dlpJobs/i-8383929`.", +"type": "string" +} +}, +"type": "object" +}, +"CloudLoggingEntry": { +"description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", +"id": "CloudLoggingEntry", +"properties": { +"insertId": { +"description": "A unique identifier for the log entry.", +"type": "string" +}, +"logId": { +"description": "The type of the log (part of `log_name`. `log_name` is the resource name of the log to which this log entry belongs). For example: `cloudresourcemanager.googleapis.com/activity`. Note that this field is not URL-encoded, unlike the `LOG_ID` field in `LogEntry`.", +"type": "string" +}, +"resourceContainer": { +"description": "The organization, folder, or project of the monitored resource that produced this log entry.", +"type": "string" +}, +"timestamp": { +"description": "The time the event described by the log entry occurred.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Compliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "Compliance", +"properties": { +"ids": { +"description": "Policies within the standard or benchmark, for example, A.12.4.1", +"items": { +"type": "string" +}, +"type": "array" +}, +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"ComplianceSnapshot": { +"description": "Result containing the properties and count of a ComplianceSnapshot request.", +"id": "ComplianceSnapshot", +"properties": { +"category": { +"description": "The category of Findings matching.", +"type": "string" +}, +"cloudProvider": { +"description": "The cloud provider for the compliance snapshot.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"complianceStandard": { +"description": "The compliance standard (ie CIS).", +"type": "string" +}, +"complianceVersion": { +"description": "The compliance version (ie 1.3) in CIS 1.3.", +"type": "string" +}, +"count": { +"description": "Total count of findings for the given properties.", +"format": "int64", +"type": "string" +}, +"leafContainerResource": { +"description": "The leaf container resource name that is closest to the snapshot.", +"type": "string" +}, +"name": { +"description": "The compliance snapshot name. Format: //sources//complianceSnapshots/", +"type": "string" +}, +"snapshotTime": { +"description": "The snapshot time of the snapshot.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Connection": { +"description": "Contains information about the IP connection associated with the finding.", +"id": "Connection", +"properties": { +"destinationIp": { +"description": "Destination IP address. Not present for sockets that are listening and not connected.", +"type": "string" +}, +"destinationPort": { +"description": "Destination port. Not present for sockets that are listening and not connected.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IANA Internet Protocol Number such as TCP(6) and UDP(17).", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"ICMP", +"TCP", +"UDP", +"GRE", +"ESP" +], +"enumDescriptions": [ +"Unspecified protocol (not HOPOPT).", +"Internet Control Message Protocol.", +"Transmission Control Protocol.", +"User Datagram Protocol.", +"Generic Routing Encapsulation.", +"Encap Security Payload." +], +"type": "string" +}, +"sourceIp": { +"description": "Source IP address.", +"type": "string" +}, +"sourcePort": { +"description": "Source port.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Contact": { +"description": "The email address of a contact.", +"id": "Contact", +"properties": { +"email": { +"description": "An email address. For example, \"`person123@company.com`\".", +"type": "string" +} +}, +"type": "object" +}, +"ContactDetails": { +"description": "Details about specific contacts", +"id": "ContactDetails", +"properties": { +"contacts": { +"description": "A list of contacts", +"items": { +"$ref": "Contact" +}, +"type": "array" +} +}, +"type": "object" +}, +"Container": { +"description": "Container associated with the finding.", +"id": "Container", +"properties": { +"createTime": { +"description": "The time that the container was created.", +"format": "google-datetime", +"type": "string" +}, +"imageId": { +"description": "Optional container image ID, if provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", +"type": "string" +}, +"labels": { +"description": "Container labels, as provided by the container runtime.", +"items": { +"$ref": "Label" +}, +"type": "array" +}, +"name": { +"description": "Name of the container.", +"type": "string" +}, +"uri": { +"description": "Container image URI provided when configuring a pod or container. This string can identify a container image version using mutable tags.", +"type": "string" +} +}, +"type": "object" +}, +"CreateResourceValueConfigRequest": { +"description": "Request message to create single resource value config", +"id": "CreateResourceValueConfigRequest", +"properties": { +"parent": { +"description": "Required. Resource name of the new ResourceValueConfig's parent.", +"type": "string" +}, +"resourceValueConfig": { +"$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig", +"description": "Required. The resource value config being created." +} +}, +"type": "object" +}, +"CustomModuleValidationError": { +"description": "An error encountered while validating the uploaded configuration of an Event Threat Detection Custom Module.", +"id": "CustomModuleValidationError", +"properties": { +"description": { +"description": "A description of the error, suitable for human consumption. Required.", +"type": "string" +}, +"end": { +"$ref": "Position", +"description": "The end position of the error in the uploaded text version of the module. This field may be omitted if no specific position applies, or if one could not be computed.." +}, +"fieldPath": { +"description": "The path, in RFC 8901 JSON Pointer format, to the field that failed validation. This may be left empty if no specific field is affected.", +"type": "string" +}, +"start": { +"$ref": "Position", +"description": "The initial position of the error in the uploaded text version of the module. This field may be omitted if no specific position applies, or if one could not be computed." +} +}, +"type": "object" +}, +"CustomModuleValidationErrors": { +"description": "A list of zero or more errors encountered while validating the uploaded configuration of an Event Threat Detection Custom Module.", +"id": "CustomModuleValidationErrors", +"properties": { +"errors": { +"items": { +"$ref": "CustomModuleValidationError" +}, +"type": "array" +} +}, +"type": "object" +}, +"Cve": { +"description": "CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE record](https://www.cve.org/ResourcesSupport/Glossary) that describes this vulnerability.", +"id": "Cve", +"properties": { +"cvssv3": { +"$ref": "Cvssv3", +"description": "Describe Common Vulnerability Scoring System specified at https://www.first.org/cvss/v3.1/specification-document" +}, +"exploitReleaseDate": { +"description": "Date the first publicly available exploit or PoC was released.", +"format": "google-datetime", +"type": "string" +}, +"exploitationActivity": { +"description": "The exploitation activity of the vulnerability in the wild.", +"enum": [ +"EXPLOITATION_ACTIVITY_UNSPECIFIED", +"WIDE", +"CONFIRMED", +"AVAILABLE", +"ANTICIPATED", +"NO_KNOWN" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation has been reported or confirmed to widely occur.", +"Limited reported or confirmed exploitation activities.", +"Exploit is publicly available.", +"No known exploitation activity, but has a high potential for exploitation.", +"No known exploitation activity." +], +"type": "string" +}, +"firstExploitationDate": { +"description": "Date of the earliest known exploitation.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", +"type": "string" +}, +"impact": { +"description": "The potential impact of the vulnerability if it was to be exploited.", +"enum": [ +"RISK_RATING_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation would have little to no security impact.", +"Exploitation would enable attackers to perform activities, or could allow attackers to have a direct impact, but would require additional steps.", +"Exploitation would enable attackers to have a notable direct impact without needing to overcome any major mitigating factors.", +"Exploitation would fundamentally undermine the security of affected systems, enable actors to perform significant attacks with minimal effort, with little to no mitigating factors to overcome." +], +"type": "string" +}, +"observedInTheWild": { +"description": "Whether or not the vulnerability has been observed in the wild.", +"type": "boolean" +}, +"references": { +"description": "Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527", +"items": { +"$ref": "Reference" +}, +"type": "array" +}, +"upstreamFixAvailable": { +"description": "Whether upstream fix is available for the CVE.", +"type": "boolean" +}, +"zeroDay": { +"description": "Whether or not the vulnerability was zero day when the finding was published.", +"type": "boolean" +} +}, +"type": "object" +}, +"Cvssv3": { +"description": "Common Vulnerability Scoring System version 3.", +"id": "Cvssv3", +"properties": { +"attackComplexity": { +"description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", +"A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." +], +"type": "string" +}, +"attackVector": { +"description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. This metric reflects the context by which vulnerability exploitation is possible.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", +"The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", +"The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", +"The attack requires the attacker to physically touch or manipulate the vulnerable component." +], +"type": "string" +}, +"availabilityImpact": { +"description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores.", +"format": "double", +"type": "number" +}, +"confidentialityImpact": { +"description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"integrityImpact": { +"description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"privilegesRequired": { +"description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", +"The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", +"The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." +], +"type": "string" +}, +"scope": { +"description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"Invalid value.", +"An exploited vulnerability can only affect resources managed by the same security authority.", +"An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." +], +"type": "string" +}, +"userInteraction": { +"description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable system can be exploited without interaction from any user.", +"Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." +], +"type": "string" +} +}, +"type": "object" +}, +"DataAccessEvent": { +"description": "Details about a data access attempt made by a principal not authorized under applicable data security policy.", +"id": "DataAccessEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data access event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data access event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal to access the data.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that accessed the data. The principal could be a user account, service account, Google group, or other.", +"type": "string" +} +}, +"type": "object" +}, +"DataFlowEvent": { +"description": "Details about a data flow event, in which either the data is moved to or is accessed from a non-compliant geo-location, as defined in the applicable data security policy.", +"id": "DataFlowEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data flow event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data flow event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal for the data flow event.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that initiated the data flow event. The principal could be a user account, service account, Google group, or other.", +"type": "string" +}, +"violatedLocation": { +"description": "Non-compliant location of the principal or the data destination.", +"type": "string" +} +}, +"type": "object" +}, +"DataRetentionDeletionEvent": { +"description": "Details about data retention deletion violations, in which the data is non-compliant based on their retention or deletion time, as defined in the applicable data security policy. The Data Retention Deletion (DRD) control is a control of the DSPM (Data Security Posture Management) suite that enables organizations to manage data retention and deletion policies in compliance with regulations, such as GDPR and CRPA. DRD supports two primary policy types: maximum storage length (max TTL) and minimum storage length (min TTL). Both are aimed at helping organizations meet regulatory and data management commitments.", +"id": "DataRetentionDeletionEvent", +"properties": { +"dataObjectCount": { +"description": "Number of objects that violated the policy for this resource. If the number is less than 1,000, then the value of this field is the exact number. If the number of objects that violated the policy is greater than or equal to 1,000, then the value of this field is 1000.", +"format": "int64", +"type": "string" +}, +"eventDetectionTime": { +"description": "Timestamp indicating when the event was detected.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Type of the DRD event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"EVENT_TYPE_MAX_TTL_EXCEEDED" +], +"enumDescriptions": [ +"Unspecified event type.", +"The maximum retention time has been exceeded." +], +"type": "string" +}, +"maxRetentionAllowed": { +"description": "Maximum duration of retention allowed from the DRD control. This comes from the DRD control where users set a max TTL for their data. For example, suppose that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an object in that bucket is 100 days old. In this case, a DataRetentionDeletionEvent will be generated for that Cloud Storage bucket, and the max_retention_allowed is 90 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Database": { +"description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of Cloud SQL instances or Cloud Spanner instances), or the database instance itself. Some database resources might not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types, such as Cloud SQL databases, are not yet supported by Cloud Asset Inventory. In these cases only the display name is provided.", +"id": "Database", +"properties": { +"displayName": { +"description": "The human-readable name of the database that the user connected to.", +"type": "string" +}, +"grantees": { +"description": "The target usernames, roles, or groups of an SQL privilege grant, which is not an IAM policy change.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Some database resources may not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In these cases only the display name will be provided. The [full resource name](https://google.aip.dev/122#full-resource-names) of the database that the user connected to, if it is supported by Cloud Asset Inventory.", +"type": "string" +}, +"query": { +"description": "The SQL statement that is associated with the database access.", +"type": "string" +}, +"userName": { +"description": "The username used to connect to the database. The username might not be an IAM principal and does not have a set format.", +"type": "string" +}, +"version": { +"description": "The version of the database, for example, POSTGRES_14. See [the complete list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).", +"type": "string" +} +}, +"type": "object" +}, +"Detection": { +"description": "Memory hash detection contributing to the binary family match.", +"id": "Detection", +"properties": { +"binary": { +"description": "The name of the binary associated with the memory hash signature detection.", +"type": "string" +}, +"percentPagesMatched": { +"description": "The percentage of memory page hashes in the signature that were matched.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Disk": { +"description": "Contains information about the disk associated with the finding.", +"id": "Disk", +"properties": { +"name": { +"description": "The name of the disk, for example, \"https://www.googleapis.com/compute/v1/projects/project-id/zones/zone-id/disks/disk-id\".", +"type": "string" +} +}, +"type": "object" +}, +"DiskPath": { +"description": "Path of the file in terms of underlying disk/partition identifiers.", +"id": "DiskPath", +"properties": { +"partitionUuid": { +"description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", +"type": "string" +}, +"relativePath": { +"description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", +"type": "string" +} +}, +"type": "object" +}, +"DynamicMuteRecord": { +"description": "The record of a dynamic mute rule that matches the finding.", +"id": "DynamicMuteRecord", +"properties": { +"matchTime": { +"description": "When the dynamic mute rule first matched the finding.", +"format": "google-datetime", +"type": "string" +}, +"muteConfig": { +"description": "The relative resource name of the mute rule, represented by a mute config, that created this record, for example `organizations/123/muteConfigs/mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.", +"type": "string" +} +}, +"type": "object" +}, +"EffectiveEventThreatDetectionCustomModule": { +"description": "An EffectiveEventThreatDetectionCustomModule is the representation of an Event Threat Detection custom module at a specified level of the resource hierarchy: organization, folder, or project. If a custom module is inherited from a parent organization or folder, the value of the `enablement_state` property in EffectiveEventThreatDetectionCustomModule is set to the value that is effective in the parent, instead of `INHERITED`. For example, if the module is enabled in a parent organization or folder, the effective `enablement_state` for the module in all child folders or projects is also `enabled`. EffectiveEventThreatDetectionCustomModule is read-only.", +"id": "EffectiveEventThreatDetectionCustomModule", +"properties": { +"cloudProvider": { +"description": "The cloud provider of the custom module.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud Platform.", +"Amazon Web Services.", +"Microsoft Azure." +], +"type": "string" +}, +"config": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Output only. Config for the effective module.", +"readOnly": true, +"type": "object" +}, +"description": { +"description": "Output only. The description for the module.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The human readable name to be displayed for the module.", +"readOnly": true, +"type": "string" +}, +"enablementState": { +"description": "Output only. The effective state of enablement for the module at the given level of the hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Unspecified enablement state.", +"The module is enabled at the given level.", +"The module is disabled at the given level." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the effective ETD custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}`.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type for the module. e.g. CONFIGURABLE_BAD_IP.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnvironmentVariable": { +"description": "A name-value pair representing an environment variable used in an operating system process.", +"id": "EnvironmentVariable", +"properties": { +"name": { +"description": "Environment variable name as a JSON encoded string.", +"type": "string" +}, +"val": { +"description": "Environment variable value as a JSON encoded string.", +"type": "string" +} +}, +"type": "object" +}, +"EventThreatDetectionCustomModule": { +"description": "Represents an instance of an Event Threat Detection custom module, including its full module name, display name, enablement state, and last updated time. You can create a custom module at the organization, folder, or project level. Custom modules that you create at the organization or folder level are inherited by child folders and projects.", +"id": "EventThreatDetectionCustomModule", +"properties": { +"ancestorModule": { +"description": "Output only. The closest ancestor module that this module inherits the enablement state from. The format is the same as the EventThreatDetectionCustomModule resource name.", +"readOnly": true, +"type": "string" +}, +"cloudProvider": { +"description": "The cloud provider of the custom module.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud.", +"Amazon Web Services (AWS).", +"Microsoft Azure." +], +"type": "string" +}, +"config": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Config for the module. For the resident module, its config value is defined at this level. For the inherited module, its config value is inherited from the ancestor module.", +"type": "object" +}, +"description": { +"description": "The description for the module.", +"type": "string" +}, +"displayName": { +"description": "The human readable name to be displayed for the module.", +"type": "string" +}, +"enablementState": { +"description": "The state of enablement for the module at the given level of the hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"INHERITED" +], +"enumDescriptions": [ +"Unspecified enablement state.", +"The module is enabled at the given level.", +"The module is disabled at the given level.", +"When the enablement state is inherited." +], +"type": "string" +}, +"lastEditor": { +"description": "Output only. The editor the module was last updated by.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.", +"type": "string" +}, +"type": { +"description": "Type for the module. e.g. CONFIGURABLE_BAD_IP.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the module was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExfilResource": { +"description": "Resource where data was exfiltrated from or exfiltrated to.", +"id": "ExfilResource", +"properties": { +"components": { +"description": "Subcomponents of the asset that was exfiltrated, like URIs used during exfiltration, table names, databases, and filenames. For example, multiple tables might have been exfiltrated from the same Cloud SQL instance, or multiple files might have been exfiltrated from the same Cloud Storage bucket.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", +"type": "string" +} +}, +"type": "object" +}, +"Exfiltration": { +"description": "Exfiltration represents a data exfiltration attempt from one or more sources to one or more targets. The `sources` attribute lists the sources of the exfiltrated data. The `targets` attribute lists the destinations the data was copied to.", +"id": "Exfiltration", +"properties": { +"sources": { +"description": "If there are multiple sources, then the data is considered \"joined\" between them. For instance, BigQuery can join multiple tables, and each table would be considered a source.", +"items": { +"$ref": "ExfilResource" +}, +"type": "array" +}, +"targets": { +"description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", +"items": { +"$ref": "ExfilResource" +}, +"type": "array" +}, +"totalExfiltratedBytes": { +"description": "Total exfiltrated bytes processed for the entire job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"File": { +"description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", +"id": "File", +"properties": { +"contents": { +"description": "Prefix of the file contents as a JSON-encoded string.", +"type": "string" +}, +"diskPath": { +"$ref": "DiskPath", +"description": "Path of the file in terms of underlying disk/partition identifiers." +}, +"hashedSize": { +"description": "The length in bytes of the file prefix that was hashed. If hashed_size == size, any hashes reported represent the entire file.", +"format": "int64", +"type": "string" +}, +"partiallyHashed": { +"description": "True when the hash covers only a prefix of the file.", +"type": "boolean" +}, +"path": { +"description": "Absolute path of the file as a JSON encoded string.", +"type": "string" +}, +"sha256": { +"description": "SHA256 hash of the first hashed_size bytes of the file encoded as a hex string. If hashed_size == size, sha256 represents the SHA256 hash of the entire file.", +"type": "string" +}, +"size": { +"description": "Size of the file in bytes.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Finding": { +"description": "Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.", +"id": "Finding", +"properties": { +"access": { +"$ref": "Access", +"description": "Access details associated with the finding, such as more information on the caller, which method was accessed, and from where." +}, +"application": { +"$ref": "Application", +"description": "Represents an application associated with the finding." +}, +"attackExposure": { +"$ref": "AttackExposure", +"description": "The results of an attack path simulation relevant to this finding." +}, +"backupDisasterRecovery": { +"$ref": "BackupDisasterRecovery", +"description": "Fields related to Backup and DR findings." +}, +"canonicalName": { +"description": "The canonical name of the finding. It's either \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\" or \"projects/{project_number}/sources/{source_id}/findings/{finding_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", +"type": "string" +}, +"category": { +"description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", +"type": "string" +}, +"cloudArmor": { +"$ref": "CloudArmor", +"description": "Fields related to Cloud Armor findings." +}, +"cloudDlpDataProfile": { +"$ref": "CloudDlpDataProfile", +"description": "Cloud DLP data profile that is associated with the finding." +}, +"cloudDlpInspection": { +"$ref": "CloudDlpInspection", +"description": "Cloud Data Loss Prevention (Cloud DLP) inspection results that are associated with the finding." +}, +"compliances": { +"description": "Contains compliance information for security standards associated to the finding.", +"items": { +"$ref": "Compliance" +}, +"type": "array" +}, +"connections": { +"description": "Contains information about the IP connection associated with the finding.", +"items": { +"$ref": "Connection" +}, +"type": "array" +}, +"contacts": { +"additionalProperties": { +"$ref": "ContactDetails" +}, +"description": "Output only. Map containing the points of contact for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] } }", +"readOnly": true, +"type": "object" +}, +"containers": { +"description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"createTime": { +"description": "The time at which the finding was created in Security Command Center.", +"format": "google-datetime", +"type": "string" +}, +"dataAccessEvents": { +"description": "Data access events associated with the finding.", +"items": { +"$ref": "DataAccessEvent" +}, +"type": "array" +}, +"dataFlowEvents": { +"description": "Data flow events associated with the finding.", +"items": { +"$ref": "DataFlowEvent" +}, +"type": "array" +}, +"dataRetentionDeletionEvents": { +"description": "Data retention deletion events associated with the finding.", +"items": { +"$ref": "DataRetentionDeletionEvent" +}, +"type": "array" +}, +"database": { +"$ref": "Database", +"description": "Database associated with the finding." +}, +"description": { +"description": "Contains more details about the finding.", +"type": "string" +}, +"disk": { +"$ref": "Disk", +"description": "Disk associated with the finding." +}, +"eventTime": { +"description": "The time the finding was first detected. If an existing finding is updated, then this is the time the update occurred. For example, if the finding represents an open firewall, this property captures the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding is later resolved, then this time reflects when the finding was resolved. This must not be set to a value greater than the current timestamp.", +"format": "google-datetime", +"type": "string" +}, +"exfiltration": { +"$ref": "Exfiltration", +"description": "Represents exfiltrations associated with the finding." +}, +"externalSystems": { +"additionalProperties": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"description": "Output only. Third party SIEM/SOAR fields within SCC, contains external system information and external system finding fields.", +"readOnly": true, +"type": "object" +}, +"externalUri": { +"description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", +"type": "string" +}, +"files": { +"description": "File associated with the finding.", +"items": { +"$ref": "File" +}, +"type": "array" +}, +"findingClass": { +"description": "The class of the finding.", +"enum": [ +"FINDING_CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"SCC_ERROR", +"POSTURE_VIOLATION", +"TOXIC_COMBINATION", +"SENSITIVE_DATA_RISK" +], +"enumDescriptions": [ +"Unspecified finding class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality.", +"Describes a potential security risk due to a change in the security posture.", +"Describes a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", +"Describes a potential security risk to data assets that contain sensitive data." +], +"type": "string" +}, +"groupMemberships": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", +"items": { +"$ref": "GroupMembership" +}, +"type": "array" +}, +"iamBindings": { +"description": "Represents IAM bindings associated with the finding.", +"items": { +"$ref": "IamBinding" +}, +"type": "array" +}, +"indicator": { +"$ref": "Indicator", +"description": "Represents what's commonly known as an *indicator of compromise* (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise)." +}, +"kernelRootkit": { +"$ref": "KernelRootkit", +"description": "Signature of the kernel rootkit." +}, +"kubernetes": { +"$ref": "Kubernetes", +"description": "Kubernetes resources associated with the finding." +}, +"loadBalancers": { +"description": "The load balancers associated with the finding.", +"items": { +"$ref": "LoadBalancer" +}, +"type": "array" +}, +"logEntries": { +"description": "Log entries that are relevant to the finding.", +"items": { +"$ref": "LogEntry" +}, +"type": "array" +}, +"mitreAttack": { +"$ref": "MitreAttack", +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" +}, +"moduleName": { +"description": "Unique identifier of the module which generated the finding. Example: folders/598186756061/securityHealthAnalyticsSettings/customModules/56799441161885", +"type": "string" +}, +"mute": { +"description": "Indicates the mute state of a finding (either muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +}, +"muteInfo": { +"$ref": "MuteInfo", +"description": "Output only. The mute information regarding this finding.", +"readOnly": true +}, +"muteInitiator": { +"description": "Records additional information about the mute operation, for example, the [mute configuration](/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", +"type": "string" +}, +"muteUpdateTime": { +"description": "Output only. The most recent time this finding was muted or unmuted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", +"type": "string" +}, +"nextSteps": { +"description": "Steps to address the finding.", +"type": "string" +}, +"notebook": { +"$ref": "Notebook", +"description": "Notebook associated with the finding." +}, +"orgPolicies": { +"description": "Contains information about the org policies associated with the finding.", +"items": { +"$ref": "OrgPolicy" +}, +"type": "array" +}, +"parent": { +"description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", +"type": "string" +}, +"parentDisplayName": { +"description": "Output only. The human readable display name of the finding source such as \"Event Threat Detection\" or \"Security Health Analytics\".", +"readOnly": true, +"type": "string" +}, +"processes": { +"description": "Represents operating system processes associated with the Finding.", +"items": { +"$ref": "Process" +}, +"type": "array" +}, +"resourceName": { +"description": "For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.", +"type": "string" +}, +"securityMarks": { +"$ref": "SecurityMarks", +"description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", +"readOnly": true +}, +"securityPosture": { +"$ref": "SecurityPosture", +"description": "The security posture associated with the finding." +}, +"severity": { +"description": "The severity of the finding. This field is managed by the source that writes the finding.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"Vulnerability: A critical vulnerability is easily discoverable by an external actor, exploitable, and results in the direct ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. Examples include publicly accessible unprotected user data and public SSH access with weak or no passwords. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", +"Vulnerability: A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities in order to gain direct access and the ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. An example is a database with weak or no passwords that is only accessible internally. This database could easily be compromised by an actor that had access to the internal network. Threat: Indicates a threat that is able to create new computational resources in an environment but not able to access data or execute code in existing resources.", +"Vulnerability: A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually (through multiple steps or a complex exploit) gain access and the ability to execute arbitrary code or exfiltrate data. An example is a service account with access to more projects than it should have. If an actor gains access to the service account, they could potentially use that access to manipulate a project the service account was not intended to. Threat: Indicates a threat that is able to cause operational impact but may not access data or execute unauthorized code.", +"Vulnerability: A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment, or prevents the root cause investigation of security issues. An example is monitoring and logs being disabled for resource configurations and access. Threat: Indicates a threat that has obtained minimal access to an environment but is not able to access data, execute code, or create resources." +], +"type": "string" +}, +"sourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", +"type": "object" +}, +"state": { +"description": "The state of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"type": "string" +}, +"toxicCombination": { +"$ref": "ToxicCombination", +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." +}, +"vulnerability": { +"$ref": "Vulnerability", +"description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +} +}, +"type": "object" +}, +"Folder": { +"description": "Message that contains the resource name and display name of a folder resource.", +"id": "Folder", +"properties": { +"resourceFolder": { +"description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceFolderDisplayName": { +"description": "The user defined display name for this folder.", +"type": "string" +} +}, +"type": "object" +}, +"GcpMetadata": { +"description": "GCP metadata associated with the resource, only applicable if the finding's cloud provider is Google Cloud Platform.", +"id": "GcpMetadata", +"properties": { +"folders": { +"description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Folder" +}, +"readOnly": true, +"type": "array" +}, +"organization": { +"description": "The name of the organization that the resource belongs to.", +"type": "string" +}, +"parent": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"project": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project ID that the resource belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"Geolocation": { +"description": "Represents a geographical location for a given access.", +"id": "Geolocation", +"properties": { +"regionCode": { +"description": "A CLDR.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1BigQueryExport": { +"description": "Configures how to deliver Findings to BigQuery Instance.", +"id": "GoogleCloudSecuritycenterV1BigQueryExport", +"properties": { +"createTime": { +"description": "Output only. The time at which the BigQuery export was created. This field is set by the server and will be ignored if provided on export on creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataset": { +"description": "The dataset to write findings' updates to. Its format is \"projects/[project_id]/datasets/[bigquery_dataset_id]\". BigQuery Dataset unique ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).", +"type": "string" +}, +"description": { +"description": "The description of the export (max of 1024 characters).", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across create/update events of findings. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the BigQuery export. This field is set by the server and will be ignored if provided on export creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. Example format: \"organizations/{organization_id}/bigQueryExports/{export_id}\" Example format: \"folders/{folder_id}/bigQueryExports/{export_id}\" Example format: \"projects/{project_id}/bigQueryExports/{export_id}\" This field is provided in responses, and is ignored when provided in create requests.", +"type": "string" +}, +"principal": { +"description": "Output only. The service account that needs permission to create table and upload data to the BigQuery dataset.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the BigQuery export was updated. This field is set by the server and will be ignored if provided on export creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1Binding": { +"description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", +"id": "GoogleCloudSecuritycenterV1Binding", +"properties": { +"name": { +"description": "Name for the binding.", +"type": "string" +}, +"ns": { +"description": "Namespace for the binding.", +"type": "string" +}, +"role": { +"$ref": "Role", +"description": "The Role or ClusterRole referenced by the binding." +}, +"subjects": { +"description": "Represents one or more subjects that are bound to the role. Not always available for PATCH requests.", +"items": { +"$ref": "Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { +"description": "The response to a BulkMute request. Contains the LRO information.", +"id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1CustomConfig": { +"description": "Defines the properties in a custom module configuration for Security Health Analytics. Use the custom module configuration to create custom detectors that generate custom findings for resources that you specify.", +"id": "GoogleCloudSecuritycenterV1CustomConfig", +"properties": { +"customOutput": { +"$ref": "GoogleCloudSecuritycenterV1CustomOutputSpec", +"description": "Custom output properties." +}, +"description": { +"description": "Text that describes the vulnerability or misconfiguration that the custom module detects. This explanation is returned with each finding instance to help investigators understand the detected issue. The text must be enclosed in quotation marks.", +"type": "string" +}, +"predicate": { +"$ref": "Expr", +"description": "The CEL expression to evaluate to produce findings. When the expression evaluates to true against a resource, a finding is generated." +}, +"recommendation": { +"description": "An explanation of the recommended steps that security teams can take to resolve the detected issue. This explanation is returned with each finding generated by this module in the `nextSteps` property of the finding JSON.", +"type": "string" +}, +"resourceSelector": { +"$ref": "GoogleCloudSecuritycenterV1ResourceSelector", +"description": "The resource types that the custom module operates on. Each custom module can specify up to 5 resource types." +}, +"severity": { +"description": "The severity to assign to findings generated by the module.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Unspecified severity.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1CustomOutputSpec": { +"description": "A set of optional name-value pairs that define custom source properties to return with each finding that is generated by the custom module. The custom source properties that are defined here are included in the finding JSON under `sourceProperties`.", +"id": "GoogleCloudSecuritycenterV1CustomOutputSpec", +"properties": { +"properties": { +"description": "A list of custom output properties to add to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1Property" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule": { +"description": "An EffectiveSecurityHealthAnalyticsCustomModule is the representation of a Security Health Analytics custom module at a specified level of the resource hierarchy: organization, folder, or project. If a custom module is inherited from a parent organization or folder, the value of the `enablementState` property in EffectiveSecurityHealthAnalyticsCustomModule is set to the value that is effective in the parent, instead of `INHERITED`. For example, if the module is enabled in a parent organization or folder, the effective enablement_state for the module in all child folders or projects is also `enabled`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.", +"id": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule", +"properties": { +"cloudProvider": { +"description": "The cloud provider of the custom module.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud Platform.", +"Amazon Web Services.", +"Microsoft Azure." +], +"type": "string" +}, +"customConfig": { +"$ref": "GoogleCloudSecuritycenterV1CustomConfig", +"description": "Output only. The user-specified configuration for the module.", +"readOnly": true +}, +"displayName": { +"description": "Output only. The display name for the custom module. The name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", +"readOnly": true, +"type": "string" +}, +"enablementState": { +"description": "Output only. The effective state of enablement for the module at the given level of the hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Unspecified enablement state.", +"The module is enabled at the given level.", +"The module is disabled at the given level." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1ExternalSystem": { +"description": "Representation of third party SIEM/SOAR fields within SCC.", +"id": "GoogleCloudSecuritycenterV1ExternalSystem", +"properties": { +"assignees": { +"description": "References primary/secondary etc assignees in the external system.", +"items": { +"type": "string" +}, +"type": "array" +}, +"caseCloseTime": { +"description": "The time when the case was closed, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseCreateTime": { +"description": "The time when the case was created, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"casePriority": { +"description": "The priority of the finding's corresponding case in the external system.", +"type": "string" +}, +"caseSla": { +"description": "The SLA of the finding's corresponding case in the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseUri": { +"description": "The link to the finding's corresponding case in the external system.", +"type": "string" +}, +"externalSystemUpdateTime": { +"description": "The time when the case was last updated, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"externalUid": { +"description": "The identifier that's used to track the finding's corresponding case in the external system.", +"type": "string" +}, +"name": { +"description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", +"type": "string" +}, +"status": { +"description": "The most recent status of the finding's corresponding case, as reported by the external system.", +"type": "string" +}, +"ticketInfo": { +"$ref": "TicketInfo", +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1MuteConfig": { +"description": "A mute config is a Cloud SCC resource that contains the configuration to mute create/update events of findings.", +"id": "GoogleCloudSecuritycenterV1MuteConfig", +"properties": { +"createTime": { +"description": "Output only. The time at which the mute config was created. This field is set by the server and will be ignored if provided on config creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the mute config.", +"type": "string" +}, +"displayName": { +"deprecated": true, +"description": "The human readable name to be displayed for the mute config.", +"type": "string" +}, +"expiryTime": { +"description": "Optional. The expiry of the mute config. Only applicable for dynamic configs. If the expiry is set, when the config expires, it is removed from all findings.", +"format": "google-datetime", +"type": "string" +}, +"filter": { +"description": "Required. An expression that defines the filter to apply across create/update events of findings. While creating a filter string, be mindful of the scope in which the mute configuration is being created. E.g., If a filter contains project = X but is created under the project = Y scope, it might not match any findings. The following field and operator combinations are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the mute config. This field is set by the server and will be ignored if provided on config creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"type": "string" +}, +"type": { +"description": "Optional. The type of the mute config, which determines what type of mute state the config affects. The static mute state takes precedence over the dynamic mute state. Immutable after creation. STATIC by default if not set during creation.", +"enum": [ +"MUTE_CONFIG_TYPE_UNSPECIFIED", +"STATIC", +"DYNAMIC" +], +"enumDescriptions": [ +"Unused.", +"A static mute config, which sets the static mute state of future matching findings to muted. Once the static mute state has been set, finding or config modifications will not affect the state.", +"A dynamic mute config, which is applied to existing and future matching findings, setting their dynamic mute state to \"muted\". If the config is updated or deleted, or a matching finding is updated, such that the finding doesn't match the config, the config will be removed from the finding, and the finding's dynamic mute state may become \"unmuted\" (unless other configs still match)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the mute config was updated. This field is set by the server and will be ignored if provided on config creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1NotificationMessage": { +"description": "Cloud SCC's Notification", +"id": "GoogleCloudSecuritycenterV1NotificationMessage", +"properties": { +"finding": { +"$ref": "Finding", +"description": "If it's a Finding based notification config, this field will be populated." +}, +"notificationConfigName": { +"description": "Name of the notification config that generated current notification.", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudSecuritycenterV1Resource", +"description": "The Cloud resource tied to this notification's Finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1Property": { +"description": "An individual name-value pair that defines a custom source property.", +"id": "GoogleCloudSecuritycenterV1Property", +"properties": { +"name": { +"description": "Name of the property for the custom output.", +"type": "string" +}, +"valueExpression": { +"$ref": "Expr", +"description": "The CEL expression for the custom output. A resource property can be specified to return the value of the property or a text string enclosed in quotation marks." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1Resource": { +"description": "Information related to the Google Cloud resource.", +"id": "GoogleCloudSecuritycenterV1Resource", +"properties": { +"awsMetadata": { +"$ref": "AwsMetadata", +"description": "The AWS metadata associated with the finding." +}, +"azureMetadata": { +"$ref": "AzureMetadata", +"description": "The Azure metadata associated with the finding." +}, +"cloudProvider": { +"description": "Indicates which cloud provider the resource resides in.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The human readable name of the resource.", +"type": "string" +}, +"folders": { +"description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "Folder" +}, +"readOnly": true, +"type": "array" +}, +"location": { +"description": "The region or location of the service (if applicable).", +"type": "string" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"organization": { +"description": "Indicates which organization or tenant in the cloud provider the finding applies to.", +"type": "string" +}, +"parent": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"project": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project ID that the resource belongs to.", +"type": "string" +}, +"resourcePath": { +"$ref": "ResourcePath", +"description": "Provides the path to the resource within the resource hierarchy." +}, +"resourcePathString": { +"description": "A string representation of the resource path. For Google Cloud, it has the format of `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` where there can be any number of folders. For AWS, it has the format of `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` where there can be any number of organizational units. For Azure, it has the format of `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` where there can be any number of management groups.", +"type": "string" +}, +"service": { +"description": "The parent service or product from which the resource is provided, for example, GKE or SNS.", +"type": "string" +}, +"type": { +"description": "The full resource type of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1ResourceSelector": { +"description": "Resource for selecting resource type.", +"id": "GoogleCloudSecuritycenterV1ResourceSelector", +"properties": { +"resourceTypes": { +"description": "The resource types to run the detector on.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1ResourceValueConfig": { +"description": "A resource value configuration (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", +"id": "GoogleCloudSecuritycenterV1ResourceValueConfig", +"properties": { +"cloudProvider": { +"description": "Cloud provider this configuration applies to", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp this resource value configuration was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the resource value configuration.", +"type": "string" +}, +"name": { +"description": "Name for the resource value configuration", +"type": "string" +}, +"resourceLabelsSelector": { +"additionalProperties": { +"type": "string" +}, +"description": "List of resource labels to search for, evaluated with `AND`. For example, `\"resource_labels_selector\": {\"key\": \"value\", \"env\": \"prod\"}` will match resources with labels \"key\": \"value\" `AND` \"env\": \"prod\" https://cloud.google.com/resource-manager/docs/creating-managing-labels", +"type": "object" +}, +"resourceType": { +"description": "Apply resource_value only to resources that match resource_type. resource_type will be checked with `AND` of other resources. For example, \"storage.googleapis.com/Bucket\" with resource_value \"HIGH\" will apply \"HIGH\" value only to \"storage.googleapis.com/Bucket\" resources.", +"type": "string" +}, +"resourceValue": { +"description": "Required. Resource value level this expression represents", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"scope": { +"description": "Project or folder to scope this configuration to. For example, \"project/456\" would apply this configuration only to resources in \"project/456\" scope will be checked with `AND` of other resources.", +"type": "string" +}, +"sensitiveDataProtectionMapping": { +"$ref": "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping", +"description": "A mapping of the sensitivity on Sensitive Data Protection finding to resource values. This mapping can only be used in combination with a resource_type that is related to BigQuery, e.g. \"bigquery.googleapis.com/Dataset\"." +}, +"tagValues": { +"description": "Required. Tag values combined with `AND` to check against. For Google Cloud resources, they are tag value IDs in the form of \"tagValues/123\". Example: `[ \"tagValues/123\", \"tagValues/456\", \"tagValues/789\" ]` https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Timestamp this resource value configuration was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse": { +"description": "Response of asset discovery run", +"id": "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse", +"properties": { +"duration": { +"description": "The duration between asset discovery run start and end", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "The state of an asset discovery run.", +"enum": [ +"STATE_UNSPECIFIED", +"COMPLETED", +"SUPERSEDED", +"TERMINATED" +], +"enumDescriptions": [ +"Asset discovery run state was unspecified.", +"Asset discovery run completed successfully.", +"Asset discovery run was cancelled with tasks still pending, as another run for the same organization was started with a higher priority.", +"Asset discovery run was killed and terminated." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule": { +"description": "Represents an instance of a Security Health Analytics custom module, including its full module name, display name, enablement state, and last updated time. You can create a custom module at the organization, folder, or project level. Custom modules that you create at the organization or folder level are inherited by the child folders and projects.", +"id": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule", +"properties": { +"ancestorModule": { +"description": "Output only. If empty, indicates that the custom module was created in the organization, folder, or project in which you are viewing the custom module. Otherwise, `ancestor_module` specifies the organization or folder from which the custom module is inherited.", +"readOnly": true, +"type": "string" +}, +"cloudProvider": { +"description": "The cloud provider of the custom module.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud.", +"Amazon Web Services (AWS).", +"Microsoft Azure." +], +"type": "string" +}, +"customConfig": { +"$ref": "GoogleCloudSecuritycenterV1CustomConfig", +"description": "The user specified custom configuration for the module." +}, +"displayName": { +"description": "The display name of the Security Health Analytics custom module. This display name becomes the finding category for all findings that are returned by this custom module. The display name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", +"type": "string" +}, +"enablementState": { +"description": "The enablement state of the custom module.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"INHERITED" +], +"enumDescriptions": [ +"Unspecified enablement state.", +"The module is enabled at the given CRM resource.", +"The module is disabled at the given CRM resource.", +"State is inherited from an ancestor module. The module will either be effectively ENABLED or DISABLED based on its closest non-inherited ancestor module in the CRM hierarchy." +], +"type": "string" +}, +"lastEditor": { +"description": "Output only. The editor that last updated the custom module.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the custom module was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping": { +"description": "Resource value mapping for Sensitive Data Protection findings. If any of these mappings have a resource value that is not unspecified, the resource_value field will be ignored when reading this configuration.", +"id": "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping", +"properties": { +"highSensitivityMapping": { +"description": "Resource value mapping for high-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"mediumSensitivityMapping": { +"description": "Resource value mapping for medium-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse": { +"description": "Response of asset discovery run", +"id": "GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse", +"properties": { +"duration": { +"description": "The duration between asset discovery run start and end", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "The state of an asset discovery run.", +"enum": [ +"STATE_UNSPECIFIED", +"COMPLETED", +"SUPERSEDED", +"TERMINATED" +], +"enumDescriptions": [ +"Asset discovery run state was unspecified.", +"Asset discovery run completed successfully.", +"Asset discovery run was cancelled with tasks still pending, as another run for the same organization was started with a higher priority.", +"Asset discovery run was killed and terminated." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1Finding": { +"description": "Security Command Center finding. A finding is a record of assessment data (security, risk, health or privacy) ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, an XSS vulnerability in an App Engine application is a finding.", +"id": "GoogleCloudSecuritycenterV1p1beta1Finding", +"properties": { +"canonicalName": { +"description": "The canonical name of the finding. It's either \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\" or \"projects/{project_number}/sources/{source_id}/findings/{finding_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", +"type": "string" +}, +"category": { +"description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", +"type": "string" +}, +"createTime": { +"description": "The time at which the finding was created in Security Command Center.", +"format": "google-datetime", +"type": "string" +}, +"eventTime": { +"description": "The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.", +"format": "google-datetime", +"type": "string" +}, +"externalUri": { +"description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", +"type": "string" +}, +"name": { +"description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", +"type": "string" +}, +"parent": { +"description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", +"type": "string" +}, +"resourceName": { +"description": "For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.", +"type": "string" +}, +"securityMarks": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1SecurityMarks", +"description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", +"readOnly": true +}, +"severity": { +"description": "The severity of the finding. This field is managed by the source that writes the finding.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"No severity specified. The default value.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +}, +"sourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", +"type": "object" +}, +"state": { +"description": "The state of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1Folder": { +"description": "Message that contains the resource name and display name of a folder resource.", +"id": "GoogleCloudSecuritycenterV1p1beta1Folder", +"properties": { +"resourceFolder": { +"description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceFolderDisplayName": { +"description": "The user defined display name for this folder.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1NotificationMessage": { +"description": "Security Command Center's Notification", +"id": "GoogleCloudSecuritycenterV1p1beta1NotificationMessage", +"properties": { +"finding": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1Finding", +"description": "If it's a Finding based notification config, this field will be populated." +}, +"notificationConfigName": { +"description": "Name of the notification config that generated current notification.", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1Resource", +"description": "The Cloud resource tied to the notification." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1Resource": { +"description": "Information related to the Google Cloud resource.", +"id": "GoogleCloudSecuritycenterV1p1beta1Resource", +"properties": { +"folders": { +"description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1Folder" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"parent": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"project": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project id that the resource belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse": { +"description": "Response of asset discovery run", +"id": "GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse", +"properties": { +"duration": { +"description": "The duration between asset discovery run start and end", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "The state of an asset discovery run.", +"enum": [ +"STATE_UNSPECIFIED", +"COMPLETED", +"SUPERSEDED", +"TERMINATED" +], +"enumDescriptions": [ +"Asset discovery run state was unspecified.", +"Asset discovery run completed successfully.", +"Asset discovery run was cancelled with tasks still pending, as another run for the same organization was started with a higher priority.", +"Asset discovery run was killed and terminated." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1SecurityMarks": { +"description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", +"id": "GoogleCloudSecuritycenterV1p1beta1SecurityMarks", +"properties": { +"canonicalName": { +"description": "The canonical name of the marks. Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"folders/{folder_id}/assets/{asset_id}/securityMarks\" \"projects/{project_number}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\"", +"type": "string" +}, +"marks": { +"additionalProperties": { +"type": "string" +}, +"description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", +"type": "object" +}, +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Access": { +"description": "Represents an access event.", +"id": "GoogleCloudSecuritycenterV2Access", +"properties": { +"callerIp": { +"description": "Caller's IP address, such as \"1.1.1.1\".", +"type": "string" +}, +"callerIpGeo": { +"$ref": "GoogleCloudSecuritycenterV2Geolocation", +"description": "The caller IP's geolocation, which identifies where the call came from." +}, +"methodName": { +"description": "The method that the service account called, e.g. \"SetIamPolicy\".", +"type": "string" +}, +"principalEmail": { +"description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user or a service account acting on behalf of a third party principal making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", +"type": "string" +}, +"principalSubject": { +"description": "A string that represents the principal_subject that is associated with the identity. Unlike `principal_email`, `principal_subject` supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format is `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`. Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:{identity pool name}[{subject}]`.", +"type": "string" +}, +"serviceAccountDelegationInfo": { +"description": "The identity delegation history of an authenticated service account that made the request. The `serviceAccountDelegationInfo[]` object contains information about the real authorities that try to access Google Cloud resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo" +}, +"type": "array" +}, +"serviceAccountKeyName": { +"description": "The name of the service account key that was used to create or exchange credentials when authenticating the service account that made the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\". ", +"type": "string" +}, +"serviceName": { +"description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", +"type": "string" +}, +"userAgent": { +"description": "The caller's user agent string associated with the finding.", +"type": "string" +}, +"userAgentFamily": { +"description": "Type of user agent associated with the finding. For example, an operating system shell or an embedded or standalone application.", +"type": "string" +}, +"userName": { +"description": "A string that represents a username. The username provided depends on the type of the finding and is likely not an IAM principal. For example, this can be a system username if the finding is related to a virtual machine, or it can be an application login username.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AccessReview": { +"description": "Conveys information about a Kubernetes access review (such as one returned by a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access) command) that was involved in a finding.", +"id": "GoogleCloudSecuritycenterV2AccessReview", +"properties": { +"group": { +"description": "The API group of the resource. \"*\" means all.", +"type": "string" +}, +"name": { +"description": "The name of the resource being requested. Empty means all.", +"type": "string" +}, +"ns": { +"description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", +"type": "string" +}, +"resource": { +"description": "The optional resource type requested. \"*\" means all.", +"type": "string" +}, +"subresource": { +"description": "The optional subresource type.", +"type": "string" +}, +"verb": { +"description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", +"type": "string" +}, +"version": { +"description": "The API version of the resource. \"*\" means all.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AdaptiveProtection": { +"description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", +"id": "GoogleCloudSecuritycenterV2AdaptiveProtection", +"properties": { +"confidence": { +"description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Application": { +"description": "Represents an application associated with a finding.", +"id": "GoogleCloudSecuritycenterV2Application", +"properties": { +"baseUri": { +"description": "The base URI that identifies the network location of the application in which the vulnerability was detected. For example, `http://example.com`.", +"type": "string" +}, +"fullUri": { +"description": "The full URI with payload that could be used to reproduce the vulnerability. For example, `http://example.com?p=aMmYgI6H`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Attack": { +"description": "Information about DDoS attack volume and classification.", +"id": "GoogleCloudSecuritycenterV2Attack", +"properties": { +"classification": { +"description": "Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.", +"type": "string" +}, +"volumeBps": { +"deprecated": true, +"description": "Total BPS (bytes per second) volume of attack. Deprecated - refer to volume_bps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumeBpsLong": { +"description": "Total BPS (bytes per second) volume of attack.", +"format": "int64", +"type": "string" +}, +"volumePps": { +"deprecated": true, +"description": "Total PPS (packets per second) volume of attack. Deprecated - refer to volume_pps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumePpsLong": { +"description": "Total PPS (packets per second) volume of attack.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AttackExposure": { +"description": "An attack exposure contains the results of an attack path simulation run.", +"id": "GoogleCloudSecuritycenterV2AttackExposure", +"properties": { +"attackExposureResult": { +"description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: `organizations/123/simulations/456/attackExposureResults/789`", +"type": "string" +}, +"exposedHighValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedLowValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedMediumValueResourcesCount": { +"description": "The number of medium value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"latestCalculationTime": { +"description": "The most recent time the attack exposure was updated on this finding.", +"format": "google-datetime", +"type": "string" +}, +"score": { +"description": "A number between 0 (inclusive) and infinity that represents how important this finding is to remediate. The higher the score, the more important it is to remediate.", +"format": "double", +"type": "number" +}, +"state": { +"description": "Output only. What state this AttackExposure is in. This captures whether or not an attack exposure has been calculated or not.", +"enum": [ +"STATE_UNSPECIFIED", +"CALCULATED", +"NOT_CALCULATED" +], +"enumDescriptions": [ +"The state is not specified.", +"The attack exposure has been calculated.", +"The attack exposure has not been calculated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsAccount": { +"description": "An AWS account that is a member of an organization.", +"id": "GoogleCloudSecuritycenterV2AwsAccount", +"properties": { +"id": { +"description": "The unique identifier (ID) of the account, containing exactly 12 digits.", +"type": "string" +}, +"name": { +"description": "The friendly name of this account.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsMetadata": { +"description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", +"id": "GoogleCloudSecuritycenterV2AwsMetadata", +"properties": { +"account": { +"$ref": "GoogleCloudSecuritycenterV2AwsAccount", +"description": "The AWS account associated with the resource." +}, +"organization": { +"$ref": "GoogleCloudSecuritycenterV2AwsOrganization", +"description": "The AWS organization associated with the resource." +}, +"organizationalUnits": { +"description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsOrganization": { +"description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", +"id": "GoogleCloudSecuritycenterV2AwsOrganization", +"properties": { +"id": { +"description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsOrganizationalUnit": { +"description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", +"id": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit", +"properties": { +"id": { +"description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", +"type": "string" +}, +"name": { +"description": "The friendly name of the OU.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureManagementGroup": { +"description": "Represents an Azure management group.", +"id": "GoogleCloudSecuritycenterV2AzureManagementGroup", +"properties": { +"displayName": { +"description": "The display name of the Azure management group.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure management group, for example, `20000000-0001-0000-0000-000000000000`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureMetadata": { +"description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", +"id": "GoogleCloudSecuritycenterV2AzureMetadata", +"properties": { +"managementGroups": { +"description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2AzureManagementGroup" +}, +"type": "array" +}, +"resourceGroup": { +"$ref": "GoogleCloudSecuritycenterV2AzureResourceGroup", +"description": "The Azure resource group associated with the resource." +}, +"subscription": { +"$ref": "GoogleCloudSecuritycenterV2AzureSubscription", +"description": "The Azure subscription associated with the resource." +}, +"tenant": { +"$ref": "GoogleCloudSecuritycenterV2AzureTenant", +"description": "The Azure Entra tenant associated with the resource." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureResourceGroup": { +"description": "Represents an Azure resource group.", +"id": "GoogleCloudSecuritycenterV2AzureResourceGroup", +"properties": { +"id": { +"description": "The ID of the Azure resource group.", +"type": "string" +}, +"name": { +"description": "The name of the Azure resource group. This is not a UUID.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureSubscription": { +"description": "Represents an Azure subscription.", +"id": "GoogleCloudSecuritycenterV2AzureSubscription", +"properties": { +"displayName": { +"description": "The display name of the Azure subscription.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure subscription, for example, `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureTenant": { +"description": "Represents a Microsoft Entra tenant.", +"id": "GoogleCloudSecuritycenterV2AzureTenant", +"properties": { +"displayName": { +"description": "The display name of the Azure tenant.", +"type": "string" +}, +"id": { +"description": "The ID of the Microsoft Entra tenant, for example, \"a11aaa11-aa11-1aa1-11aa-1aaa11a\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2BackupDisasterRecovery": { +"description": "Information related to Google Cloud Backup and DR Service findings.", +"id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", +"properties": { +"appliance": { +"description": "The name of the Backup and DR appliance that captures, moves, and manages the lifecycle of backup data. For example, `backup-server-57137`.", +"type": "string" +}, +"applications": { +"description": "The names of Backup and DR applications. An application is a VM, database, or file system on a managed host monitored by a backup and recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"backupCreateTime": { +"description": "The timestamp at which the Backup and DR backup was created.", +"format": "google-datetime", +"type": "string" +}, +"backupTemplate": { +"description": "The name of a Backup and DR template which comprises one or more backup policies. See the [Backup and DR documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information. For example, `snap-ov`.", +"type": "string" +}, +"backupType": { +"description": "The backup type of the Backup and DR image. For example, `Snapshot`, `Remote Snapshot`, `OnVault`.", +"type": "string" +}, +"host": { +"description": "The name of a Backup and DR host, which is managed by the backup and recovery appliance and known to the management console. The host can be of type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.), vCenter, or an ESX server. See the [Backup and DR documentation on hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) for more information. For example, `centos7-01`.", +"type": "string" +}, +"policies": { +"description": "The names of Backup and DR policies that are associated with a template and that define when to run a backup, how frequently to run a backup, and how long to retain the backup image. For example, `onvaults`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"policyOptions": { +"description": "The names of Backup and DR advanced policy options of a policy applying to an application. See the [Backup and DR documentation on policy options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). For example, `skipofflineappsincongrp, nounmap`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"profile": { +"description": "The name of the Backup and DR resource profile that specifies the storage media for backups of application and VM data. See the [Backup and DR documentation on profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). For example, `GCP`.", +"type": "string" +}, +"storagePool": { +"description": "The name of the Backup and DR storage pool that the backup and recovery appliance is storing data in. The storage pool could be of type Cloud, Primary, Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). For example, `DiskPoolOne`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2BigQueryExport": { +"description": "Configures how to deliver Findings to BigQuery Instance.", +"id": "GoogleCloudSecuritycenterV2BigQueryExport", +"properties": { +"createTime": { +"description": "Output only. The time at which the BigQuery export was created. This field is set by the server and will be ignored if provided on export on creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataset": { +"description": "The dataset to write findings' updates to. Its format is \"projects/[project_id]/datasets/[bigquery_dataset_id]\". BigQuery dataset unique ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).", +"type": "string" +}, +"description": { +"description": "The description of the export (max of 1024 characters).", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across create/update events of findings. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the BigQuery export. This field is set by the server and will be ignored if provided on export creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. The following list shows some examples: + `organizations/{organization_id}/locations/{location_id}/bigQueryExports/{export_id}` + `folders/{folder_id}/locations/{location_id}/bigQueryExports/{export_id}` + `projects/{project_id}/locations/{location_id}/bigQueryExports/{export_id}` This field is provided in responses, and is ignored when provided in create requests.", +"type": "string" +}, +"principal": { +"description": "Output only. The service account that needs permission to create table and upload data to the BigQuery dataset.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the BigQuery export was updated. This field is set by the server and will be ignored if provided on export creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Binding": { +"description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", +"id": "GoogleCloudSecuritycenterV2Binding", +"properties": { +"name": { +"description": "Name for the binding.", +"type": "string" +}, +"ns": { +"description": "Namespace for the binding.", +"type": "string" +}, +"role": { +"$ref": "GoogleCloudSecuritycenterV2Role", +"description": "The Role or ClusterRole referenced by the binding." +}, +"subjects": { +"description": "Represents one or more subjects that are bound to the role. Not always available for PATCH requests.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2BulkMuteFindingsResponse": { +"description": "The response to a BulkMute request. Contains the LRO information.", +"id": "GoogleCloudSecuritycenterV2BulkMuteFindingsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudArmor": { +"description": "Fields related to Google Cloud Armor findings.", +"id": "GoogleCloudSecuritycenterV2CloudArmor", +"properties": { +"adaptiveProtection": { +"$ref": "GoogleCloudSecuritycenterV2AdaptiveProtection", +"description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." +}, +"attack": { +"$ref": "GoogleCloudSecuritycenterV2Attack", +"description": "Information about DDoS attack volume and classification." +}, +"duration": { +"description": "Duration of attack from the start until the current moment (updated every 5 minutes).", +"format": "google-duration", +"type": "string" +}, +"requests": { +"$ref": "GoogleCloudSecuritycenterV2Requests", +"description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." +}, +"securityPolicy": { +"$ref": "GoogleCloudSecuritycenterV2SecurityPolicy", +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." +}, +"threatVector": { +"description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \"L3_4\" for Layer 3 and Layer 4 DDoS attacks, or \"L_7\" for Layer 7 DDoS attacks.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudDlpDataProfile": { +"description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", +"id": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", +"properties": { +"dataProfile": { +"description": "Name of the data profile, for example, `projects/123/locations/europe/tableProfiles/8383929`.", +"type": "string" +}, +"parentType": { +"description": "The resource hierarchy level at which the data profile was generated.", +"enum": [ +"PARENT_TYPE_UNSPECIFIED", +"ORGANIZATION", +"PROJECT" +], +"enumDescriptions": [ +"Unspecified parent type.", +"Organization-level configurations.", +"Project-level configurations." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudDlpInspection": { +"description": "Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the finding.", +"id": "GoogleCloudSecuritycenterV2CloudDlpInspection", +"properties": { +"fullScan": { +"description": "Whether Cloud DLP scanned the complete resource or a sampled subset.", +"type": "boolean" +}, +"infoType": { +"description": "The type of information (or *[infoType](https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.", +"type": "string" +}, +"infoTypeCount": { +"description": "The number of times Cloud DLP found this infoType within this job and resource.", +"format": "int64", +"type": "string" +}, +"inspectJob": { +"description": "Name of the inspection job, for example, `projects/123/locations/europe/dlpJobs/i-8383929`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudLoggingEntry": { +"description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", +"id": "GoogleCloudSecuritycenterV2CloudLoggingEntry", +"properties": { +"insertId": { +"description": "A unique identifier for the log entry.", +"type": "string" +}, +"logId": { +"description": "The type of the log (part of `log_name`. `log_name` is the resource name of the log to which this log entry belongs). For example: `cloudresourcemanager.googleapis.com/activity` Note that this field is not URL-encoded, unlike in `LogEntry`.", +"type": "string" +}, +"resourceContainer": { +"description": "The organization, folder, or project of the monitored resource that produced this log entry.", +"type": "string" +}, +"timestamp": { +"description": "The time the event described by the log entry occurred.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Compliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "GoogleCloudSecuritycenterV2Compliance", +"properties": { +"ids": { +"description": "Policies within the standard or benchmark, for example, A.12.4.1", +"items": { +"type": "string" +}, +"type": "array" +}, +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Connection": { +"description": "Contains information about the IP connection associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Connection", +"properties": { +"destinationIp": { +"description": "Destination IP address. Not present for sockets that are listening and not connected.", +"type": "string" +}, +"destinationPort": { +"description": "Destination port. Not present for sockets that are listening and not connected.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IANA Internet Protocol Number such as TCP(6) and UDP(17).", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"ICMP", +"TCP", +"UDP", +"GRE", +"ESP" +], +"enumDescriptions": [ +"Unspecified protocol (not HOPOPT).", +"Internet Control Message Protocol.", +"Transmission Control Protocol.", +"User Datagram Protocol.", +"Generic Routing Encapsulation.", +"Encap Security Payload." +], +"type": "string" +}, +"sourceIp": { +"description": "Source IP address.", +"type": "string" +}, +"sourcePort": { +"description": "Source port.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Contact": { +"description": "The email address of a contact.", +"id": "GoogleCloudSecuritycenterV2Contact", +"properties": { +"email": { +"description": "An email address. For example, \"`person123@company.com`\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ContactDetails": { +"description": "Details about specific contacts", +"id": "GoogleCloudSecuritycenterV2ContactDetails", +"properties": { +"contacts": { +"description": "A list of contacts", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Contact" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Container": { +"description": "Container associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Container", +"properties": { +"createTime": { +"description": "The time that the container was created.", +"format": "google-datetime", +"type": "string" +}, +"imageId": { +"description": "Optional container image ID, if provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", +"type": "string" +}, +"labels": { +"description": "Container labels, as provided by the container runtime.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Label" +}, +"type": "array" +}, +"name": { +"description": "Name of the container.", +"type": "string" +}, +"uri": { +"description": "Container image URI provided when configuring a pod or container. This string can identify a container image version using mutable tags.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Cve": { +"description": "CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE record](https://www.cve.org/ResourcesSupport/Glossary) that describes this vulnerability.", +"id": "GoogleCloudSecuritycenterV2Cve", +"properties": { +"cvssv3": { +"$ref": "GoogleCloudSecuritycenterV2Cvssv3", +"description": "Describe Common Vulnerability Scoring System specified at https://www.first.org/cvss/v3.1/specification-document" +}, +"exploitReleaseDate": { +"description": "Date the first publicly available exploit or PoC was released.", +"format": "google-datetime", +"type": "string" +}, +"exploitationActivity": { +"description": "The exploitation activity of the vulnerability in the wild.", +"enum": [ +"EXPLOITATION_ACTIVITY_UNSPECIFIED", +"WIDE", +"CONFIRMED", +"AVAILABLE", +"ANTICIPATED", +"NO_KNOWN" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation has been reported or confirmed to widely occur.", +"Limited reported or confirmed exploitation activities.", +"Exploit is publicly available.", +"No known exploitation activity, but has a high potential for exploitation.", +"No known exploitation activity." +], +"type": "string" +}, +"firstExploitationDate": { +"description": "Date of the earliest known exploitation.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", +"type": "string" +}, +"impact": { +"description": "The potential impact of the vulnerability if it was to be exploited.", +"enum": [ +"RISK_RATING_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation would have little to no security impact.", +"Exploitation would enable attackers to perform activities, or could allow attackers to have a direct impact, but would require additional steps.", +"Exploitation would enable attackers to have a notable direct impact without needing to overcome any major mitigating factors.", +"Exploitation would fundamentally undermine the security of affected systems, enable actors to perform significant attacks with minimal effort, with little to no mitigating factors to overcome." +], +"type": "string" +}, +"observedInTheWild": { +"description": "Whether or not the vulnerability has been observed in the wild.", +"type": "boolean" +}, +"references": { +"description": "Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Reference" +}, +"type": "array" +}, +"upstreamFixAvailable": { +"description": "Whether upstream fix is available for the CVE.", +"type": "boolean" +}, +"zeroDay": { +"description": "Whether or not the vulnerability was zero day when the finding was published.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Cvssv3": { +"description": "Common Vulnerability Scoring System version 3.", +"id": "GoogleCloudSecuritycenterV2Cvssv3", +"properties": { +"attackComplexity": { +"description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", +"A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." +], +"type": "string" +}, +"attackVector": { +"description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. This metric reflects the context by which vulnerability exploitation is possible.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", +"The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", +"The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", +"The attack requires the attacker to physically touch or manipulate the vulnerable component." +], +"type": "string" +}, +"availabilityImpact": { +"description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores.", +"format": "double", +"type": "number" +}, +"confidentialityImpact": { +"description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"integrityImpact": { +"description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"privilegesRequired": { +"description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", +"The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", +"The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." +], +"type": "string" +}, +"scope": { +"description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"Invalid value.", +"An exploited vulnerability can only affect resources managed by the same security authority.", +"An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." +], +"type": "string" +}, +"userInteraction": { +"description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable system can be exploited without interaction from any user.", +"Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DataAccessEvent": { +"description": "Details about a data access attempt made by a principal not authorized under applicable data security policy.", +"id": "GoogleCloudSecuritycenterV2DataAccessEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data access event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data access event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal to access the data.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that accessed the data. The principal could be a user account, service account, Google group, or other.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DataFlowEvent": { +"description": "Details about a data flow event, in which either the data is moved to or is accessed from a non-compliant geo-location, as defined in the applicable data security policy.", +"id": "GoogleCloudSecuritycenterV2DataFlowEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data flow event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data flow event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal for the data flow event.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that initiated the data flow event. The principal could be a user account, service account, Google group, or other.", +"type": "string" +}, +"violatedLocation": { +"description": "Non-compliant location of the principal or the data destination.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DataRetentionDeletionEvent": { +"description": "Details about data retention deletion violations, in which the data is non-compliant based on their retention or deletion time, as defined in the applicable data security policy. The Data Retention Deletion (DRD) control is a control of the DSPM (Data Security Posture Management) suite that enables organizations to manage data retention and deletion policies in compliance with regulations, such as GDPR and CRPA. DRD supports two primary policy types: maximum storage length (max TTL) and minimum storage length (min TTL). Both are aimed at helping organizations meet regulatory and data management commitments.", +"id": "GoogleCloudSecuritycenterV2DataRetentionDeletionEvent", +"properties": { +"dataObjectCount": { +"description": "Number of objects that violated the policy for this resource. If the number is less than 1,000, then the value of this field is the exact number. If the number of objects that violated the policy is greater than or equal to 1,000, then the value of this field is 1000.", +"format": "int64", +"type": "string" +}, +"eventDetectionTime": { +"description": "Timestamp indicating when the event was detected.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Type of the DRD event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"EVENT_TYPE_MAX_TTL_EXCEEDED" +], +"enumDescriptions": [ +"Unspecified event type.", +"The maximum retention time has been exceeded." +], +"type": "string" +}, +"maxRetentionAllowed": { +"description": "Maximum duration of retention allowed from the DRD control. This comes from the DRD control where users set a max TTL for their data. For example, suppose that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an object in that bucket is 100 days old. In this case, a DataRetentionDeletionEvent will be generated for that Cloud Storage bucket, and the max_retention_allowed is 90 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Database": { +"description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of Cloud SQL instances or Cloud Spanner instances), or the database instance itself. Some database resources might not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types, such as Cloud SQL databases, are not yet supported by Cloud Asset Inventory. In these cases only the display name is provided.", +"id": "GoogleCloudSecuritycenterV2Database", +"properties": { +"displayName": { +"description": "The human-readable name of the database that the user connected to.", +"type": "string" +}, +"grantees": { +"description": "The target usernames, roles, or groups of an SQL privilege grant, which is not an IAM policy change.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Some database resources may not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In these cases only the display name will be provided. The [full resource name](https://google.aip.dev/122#full-resource-names) of the database that the user connected to, if it is supported by Cloud Asset Inventory.", +"type": "string" +}, +"query": { +"description": "The SQL statement that is associated with the database access.", +"type": "string" +}, +"userName": { +"description": "The username used to connect to the database. The username might not be an IAM principal and does not have a set format.", +"type": "string" +}, +"version": { +"description": "The version of the database, for example, POSTGRES_14. See [the complete list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Detection": { +"description": "Memory hash detection contributing to the binary family match.", +"id": "GoogleCloudSecuritycenterV2Detection", +"properties": { +"binary": { +"description": "The name of the binary associated with the memory hash signature detection.", +"type": "string" +}, +"percentPagesMatched": { +"description": "The percentage of memory page hashes in the signature that were matched.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Disk": { +"description": "Contains information about the disk associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Disk", +"properties": { +"name": { +"description": "The name of the disk, for example, \"https://www.googleapis.com/compute/v1/projects/project-id/zones/zone-id/disks/disk-id\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DiskPath": { +"description": "Path of the file in terms of underlying disk/partition identifiers.", +"id": "GoogleCloudSecuritycenterV2DiskPath", +"properties": { +"partitionUuid": { +"description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", +"type": "string" +}, +"relativePath": { +"description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DynamicMuteRecord": { +"description": "The record of a dynamic mute rule that matches the finding.", +"id": "GoogleCloudSecuritycenterV2DynamicMuteRecord", +"properties": { +"matchTime": { +"description": "When the dynamic mute rule first matched the finding.", +"format": "google-datetime", +"type": "string" +}, +"muteConfig": { +"description": "The relative resource name of the mute rule, represented by a mute config, that created this record, for example `organizations/123/muteConfigs/mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2EnvironmentVariable": { +"description": "A name-value pair representing an environment variable used in an operating system process.", +"id": "GoogleCloudSecuritycenterV2EnvironmentVariable", +"properties": { +"name": { +"description": "Environment variable name as a JSON encoded string.", +"type": "string" +}, +"val": { +"description": "Environment variable value as a JSON encoded string.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ExfilResource": { +"description": "Resource where data was exfiltrated from or exfiltrated to.", +"id": "GoogleCloudSecuritycenterV2ExfilResource", +"properties": { +"components": { +"description": "Subcomponents of the asset that was exfiltrated, like URIs used during exfiltration, table names, databases, and filenames. For example, multiple tables might have been exfiltrated from the same Cloud SQL instance, or multiple files might have been exfiltrated from the same Cloud Storage bucket.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Exfiltration": { +"description": "Exfiltration represents a data exfiltration attempt from one or more sources to one or more targets. The `sources` attribute lists the sources of the exfiltrated data. The `targets` attribute lists the destinations the data was copied to.", +"id": "GoogleCloudSecuritycenterV2Exfiltration", +"properties": { +"sources": { +"description": "If there are multiple sources, then the data is considered \"joined\" between them. For instance, BigQuery can join multiple tables, and each table would be considered a source.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ExfilResource" +}, +"type": "array" +}, +"targets": { +"description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ExfilResource" +}, +"type": "array" +}, +"totalExfiltratedBytes": { +"description": "Total exfiltrated bytes processed for the entire job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ExternalSystem": { +"description": "Representation of third party SIEM/SOAR fields within SCC.", +"id": "GoogleCloudSecuritycenterV2ExternalSystem", +"properties": { +"assignees": { +"description": "References primary/secondary etc assignees in the external system.", +"items": { +"type": "string" +}, +"type": "array" +}, +"caseCloseTime": { +"description": "The time when the case was closed, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseCreateTime": { +"description": "The time when the case was created, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"casePriority": { +"description": "The priority of the finding's corresponding case in the external system.", +"type": "string" +}, +"caseSla": { +"description": "The SLA of the finding's corresponding case in the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseUri": { +"description": "The link to the finding's corresponding case in the external system.", +"type": "string" +}, +"externalSystemUpdateTime": { +"description": "The time when the case was last updated, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"externalUid": { +"description": "The identifier that's used to track the finding's corresponding case in the external system.", +"type": "string" +}, +"name": { +"description": "Full resource name of the external system. The following list shows some examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/jira` + `organizations/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + `folders/1234/sources/5678/findings/123456/externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/123456/externalSystems/jira`", +"type": "string" +}, +"status": { +"description": "The most recent status of the finding's corresponding case, as reported by the external system.", +"type": "string" +}, +"ticketInfo": { +"$ref": "GoogleCloudSecuritycenterV2TicketInfo", +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2File": { +"description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", +"id": "GoogleCloudSecuritycenterV2File", +"properties": { +"contents": { +"description": "Prefix of the file contents as a JSON-encoded string.", +"type": "string" +}, +"diskPath": { +"$ref": "GoogleCloudSecuritycenterV2DiskPath", +"description": "Path of the file in terms of underlying disk/partition identifiers." +}, +"hashedSize": { +"description": "The length in bytes of the file prefix that was hashed. If hashed_size == size, any hashes reported represent the entire file.", +"format": "int64", +"type": "string" +}, +"partiallyHashed": { +"description": "True when the hash covers only a prefix of the file.", +"type": "boolean" +}, +"path": { +"description": "Absolute path of the file as a JSON encoded string.", +"type": "string" +}, +"sha256": { +"description": "SHA256 hash of the first hashed_size bytes of the file encoded as a hex string. If hashed_size == size, sha256 represents the SHA256 hash of the entire file.", +"type": "string" +}, +"size": { +"description": "Size of the file in bytes.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Finding": { +"description": "Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.", +"id": "GoogleCloudSecuritycenterV2Finding", +"properties": { +"access": { +"$ref": "GoogleCloudSecuritycenterV2Access", +"description": "Access details associated with the finding, such as more information on the caller, which method was accessed, and from where." +}, +"application": { +"$ref": "GoogleCloudSecuritycenterV2Application", +"description": "Represents an application associated with the finding." +}, +"attackExposure": { +"$ref": "GoogleCloudSecuritycenterV2AttackExposure", +"description": "The results of an attack path simulation relevant to this finding." +}, +"backupDisasterRecovery": { +"$ref": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", +"description": "Fields related to Backup and DR findings." +}, +"canonicalName": { +"description": "Output only. The canonical name of the finding. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` The prefix is the closest CRM ancestor of the resource associated with the finding.", +"readOnly": true, +"type": "string" +}, +"category": { +"description": "Immutable. The additional taxonomy group within findings from a given source. Example: \"XSS_FLASH_INJECTION\"", +"type": "string" +}, +"cloudArmor": { +"$ref": "GoogleCloudSecuritycenterV2CloudArmor", +"description": "Fields related to Cloud Armor findings." +}, +"cloudDlpDataProfile": { +"$ref": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", +"description": "Cloud DLP data profile that is associated with the finding." +}, +"cloudDlpInspection": { +"$ref": "GoogleCloudSecuritycenterV2CloudDlpInspection", +"description": "Cloud Data Loss Prevention (Cloud DLP) inspection results that are associated with the finding." +}, +"compliances": { +"description": "Contains compliance information for security standards associated to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Compliance" +}, +"type": "array" +}, +"connections": { +"description": "Contains information about the IP connection associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Connection" +}, +"type": "array" +}, +"contacts": { +"additionalProperties": { +"$ref": "GoogleCloudSecuritycenterV2ContactDetails" +}, +"description": "Output only. Map containing the points of contact for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] } }", +"readOnly": true, +"type": "object" +}, +"containers": { +"description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Container" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The time at which the finding was created in Security Command Center.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataAccessEvents": { +"description": "Data access events associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DataAccessEvent" +}, +"type": "array" +}, +"dataFlowEvents": { +"description": "Data flow events associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DataFlowEvent" +}, +"type": "array" +}, +"dataRetentionDeletionEvents": { +"description": "Data retention deletion events associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DataRetentionDeletionEvent" +}, +"type": "array" +}, +"database": { +"$ref": "GoogleCloudSecuritycenterV2Database", +"description": "Database associated with the finding." +}, +"description": { +"description": "Contains more details about the finding.", +"type": "string" +}, +"disk": { +"$ref": "GoogleCloudSecuritycenterV2Disk", +"description": "Disk associated with the finding." +}, +"eventTime": { +"description": "The time the finding was first detected. If an existing finding is updated, then this is the time the update occurred. For example, if the finding represents an open firewall, this property captures the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding is later resolved, then this time reflects when the finding was resolved. This must not be set to a value greater than the current timestamp.", +"format": "google-datetime", +"type": "string" +}, +"exfiltration": { +"$ref": "GoogleCloudSecuritycenterV2Exfiltration", +"description": "Represents exfiltrations associated with the finding." +}, +"externalSystems": { +"additionalProperties": { +"$ref": "GoogleCloudSecuritycenterV2ExternalSystem" +}, +"description": "Output only. Third party SIEM/SOAR fields within SCC, contains external system information and external system finding fields.", +"readOnly": true, +"type": "object" +}, +"externalUri": { +"description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", +"type": "string" +}, +"files": { +"description": "File associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2File" +}, +"type": "array" +}, +"findingClass": { +"description": "The class of the finding.", +"enum": [ +"FINDING_CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"SCC_ERROR", +"POSTURE_VIOLATION", +"TOXIC_COMBINATION", +"SENSITIVE_DATA_RISK" +], +"enumDescriptions": [ +"Unspecified finding class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality.", +"Describes a potential security risk due to a change in the security posture.", +"Describes a combination of security issues that represent a more severe security problem when taken together.", +"Describes a potential security risk to data assets that contain sensitive data." +], +"type": "string" +}, +"groupMemberships": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2GroupMembership" +}, +"type": "array" +}, +"iamBindings": { +"description": "Represents IAM bindings associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IamBinding" +}, +"type": "array" +}, +"indicator": { +"$ref": "GoogleCloudSecuritycenterV2Indicator", +"description": "Represents what's commonly known as an *indicator of compromise* (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise)." +}, +"kernelRootkit": { +"$ref": "GoogleCloudSecuritycenterV2KernelRootkit", +"description": "Signature of the kernel rootkit." +}, +"kubernetes": { +"$ref": "GoogleCloudSecuritycenterV2Kubernetes", +"description": "Kubernetes resources associated with the finding." +}, +"loadBalancers": { +"description": "The load balancers associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2LoadBalancer" +}, +"type": "array" +}, +"logEntries": { +"description": "Log entries that are relevant to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2LogEntry" +}, +"type": "array" +}, +"mitreAttack": { +"$ref": "GoogleCloudSecuritycenterV2MitreAttack", +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" +}, +"moduleName": { +"description": "Unique identifier of the module which generated the finding. Example: folders/598186756061/securityHealthAnalyticsSettings/customModules/56799441161885", +"type": "string" +}, +"mute": { +"description": "Indicates the mute state of a finding (either muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +}, +"muteInfo": { +"$ref": "GoogleCloudSecuritycenterV2MuteInfo", +"description": "Output only. The mute information regarding this finding.", +"readOnly": true +}, +"muteInitiator": { +"description": "Records additional information about the mute operation, for example, the [mute configuration](https://cloud.google.com/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", +"type": "string" +}, +"muteUpdateTime": { +"description": "Output only. The most recent time this finding was muted or unmuted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}`", +"type": "string" +}, +"nextSteps": { +"description": "Steps to address the finding.", +"type": "string" +}, +"notebook": { +"$ref": "GoogleCloudSecuritycenterV2Notebook", +"description": "Notebook associated with the finding." +}, +"orgPolicies": { +"description": "Contains information about the org policies associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2OrgPolicy" +}, +"type": "array" +}, +"parent": { +"description": "The relative resource name of the source and location the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}` + `folders/{folders_id}/sources/{source_id}` + `projects/{projects_id}/sources/{source_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}` + `folders/{folders_id}/sources/{source_id}/locations/{location_id}` + `projects/{projects_id}/sources/{source_id}/locations/{location_id}`", +"type": "string" +}, +"parentDisplayName": { +"description": "Output only. The human readable display name of the finding source such as \"Event Threat Detection\" or \"Security Health Analytics\".", +"readOnly": true, +"type": "string" +}, +"processes": { +"description": "Represents operating system processes associated with the Finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Process" +}, +"type": "array" +}, +"resourceName": { +"description": "Immutable. For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string.", +"type": "string" +}, +"securityMarks": { +"$ref": "GoogleCloudSecuritycenterV2SecurityMarks", +"description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", +"readOnly": true +}, +"securityPosture": { +"$ref": "GoogleCloudSecuritycenterV2SecurityPosture", +"description": "The security posture associated with the finding." +}, +"severity": { +"description": "The severity of the finding. This field is managed by the source that writes the finding.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"Vulnerability: A critical vulnerability is easily discoverable by an external actor, exploitable, and results in the direct ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. Examples include publicly accessible unprotected user data and public SSH access with weak or no passwords. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", +"Vulnerability: A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities in order to gain direct access and the ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. An example is a database with weak or no passwords that is only accessible internally. This database could easily be compromised by an actor that had access to the internal network. Threat: Indicates a threat that is able to create new computational resources in an environment but not able to access data or execute code in existing resources.", +"Vulnerability: A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually (through multiple steps or a complex exploit) gain access and the ability to execute arbitrary code or exfiltrate data. An example is a service account with access to more projects than it should have. If an actor gains access to the service account, they could potentially use that access to manipulate a project the service account was not intended to. Threat: Indicates a threat that is able to cause operational impact but may not access data or execute unauthorized code.", +"Vulnerability: A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment, or prevents the root cause investigation of security issues. An example is monitoring and logs being disabled for resource configurations and access. Threat: Indicates a threat that has obtained minimal access to an environment but is not able to access data, execute code, or create resources." +], +"type": "string" +}, +"sourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", +"type": "object" +}, +"state": { +"description": "Output only. The state of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"readOnly": true, +"type": "string" +}, +"toxicCombination": { +"$ref": "GoogleCloudSecuritycenterV2ToxicCombination", +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." +}, +"vulnerability": { +"$ref": "GoogleCloudSecuritycenterV2Vulnerability", +"description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Folder": { +"description": "Message that contains the resource name and display name of a folder resource.", +"id": "GoogleCloudSecuritycenterV2Folder", +"properties": { +"resourceFolder": { +"description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceFolderDisplayName": { +"description": "The user defined display name for this folder.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Geolocation": { +"description": "Represents a geographical location for a given access.", +"id": "GoogleCloudSecuritycenterV2Geolocation", +"properties": { +"regionCode": { +"description": "A CLDR.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2GroupMembership": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", +"id": "GoogleCloudSecuritycenterV2GroupMembership", +"properties": { +"groupId": { +"description": "ID of the group.", +"type": "string" +}, +"groupType": { +"description": "Type of group.", +"enum": [ +"GROUP_TYPE_UNSPECIFIED", +"GROUP_TYPE_TOXIC_COMBINATION" +], +"enumDescriptions": [ +"Default value.", +"Group represents a toxic combination." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IamBinding": { +"description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", +"id": "GoogleCloudSecuritycenterV2IamBinding", +"properties": { +"action": { +"description": "The action that was performed on a Binding.", +"enum": [ +"ACTION_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"Unspecified.", +"Addition of a Binding.", +"Removal of a Binding." +], +"type": "string" +}, +"member": { +"description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", +"type": "string" +}, +"role": { +"description": "Role that is assigned to \"members\". For example, \"roles/viewer\", \"roles/editor\", or \"roles/owner\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Indicator": { +"description": "Represents what's commonly known as an _indicator of compromise_ (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise).", +"id": "GoogleCloudSecuritycenterV2Indicator", +"properties": { +"domains": { +"description": "List of domains associated to the Finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipAddresses": { +"description": "The list of IP addresses that are associated with the finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"signatures": { +"description": "The list of matched signatures indicating that the given process is present in the environment.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ProcessSignature" +}, +"type": "array" +}, +"uris": { +"description": "The list of URIs associated to the Findings.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Issue": { +"description": "Security Command Center Issue.", +"id": "GoogleCloudSecuritycenterV2Issue", +"properties": { +"createTime": { +"description": "Output only. The time the issue was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The description of the issue in Markdown format.", +"type": "string" +}, +"detection": { +"description": "The finding category or rule name that generated the issue.", +"type": "string" +}, +"domains": { +"description": "The domains of the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueDomain" +}, +"type": "array" +}, +"exposureScore": { +"description": "The exposure score of the issue.", +"format": "double", +"type": "number" +}, +"issueType": { +"description": "The type of the issue.", +"enum": [ +"ISSUE_TYPE_UNSPECIFIED", +"CHOKEPOINT", +"TOXIC_COMBINATION", +"INSIGHT" +], +"enumDescriptions": [ +"Unspecified issue type.", +"Chokepoint issue type.", +"Toxic combination issue type.", +"Insight issue type." +], +"type": "string" +}, +"lastObservationTime": { +"description": "The time the issue was last observed.", +"format": "google-datetime", +"type": "string" +}, +"mute": { +"$ref": "GoogleCloudSecuritycenterV2IssueMute", +"description": "The mute information of the issue." +}, +"name": { +"description": "Identifier. The name of the issue. Format: organizations/{organization}/locations/{location}/issues/{issue}", +"type": "string" +}, +"primaryResource": { +"$ref": "GoogleCloudSecuritycenterV2IssueResource", +"description": "The primary resource associated with the issue." +}, +"relatedFindings": { +"description": "The findings related to the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueFinding" +}, +"type": "array" +}, +"remediations": { +"description": "Approaches to remediate the issue in Markdown format.", +"items": { +"type": "string" +}, +"type": "array" +}, +"secondaryResources": { +"description": "Additional resources associated with the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueResource" +}, +"type": "array" +}, +"securityContexts": { +"description": "The security context of the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueSecurityContext" +}, +"type": "array" +}, +"severity": { +"description": "The severity of the issue.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Unspecified severity.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +}, +"state": { +"description": "Output only. The state of the issue.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"Active state.", +"Inactive state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the issue was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueDomain": { +"description": "The domains of an issue.", +"id": "GoogleCloudSecuritycenterV2IssueDomain", +"properties": { +"domainCategory": { +"description": "The domain category of the issue.", +"enum": [ +"DOMAIN_CATEGORY_UNSPECIFIED", +"AI", +"CODE", +"CONTAINER", +"DATA", +"IDENTITY_AND_ACCESS", +"VULNERABILITY" +], +"enumDescriptions": [ +"Unspecified domain category.", +"Issues in the AI domain.", +"Issues in the code domain.", +"Issues in the container domain.", +"Issues in the data domain.", +"Issues in the identity and access domain.", +"Issues in the vulnerability domain." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueFinding": { +"description": "Finding related to an issue.", +"id": "GoogleCloudSecuritycenterV2IssueFinding", +"properties": { +"cve": { +"$ref": "GoogleCloudSecuritycenterV2IssueFindingCve", +"description": "The CVE of the finding." +}, +"name": { +"description": "The name of the finding.", +"type": "string" +}, +"securityBulletin": { +"$ref": "GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin", +"description": "The security bulletin of the finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueFindingCve": { +"description": "The CVE of the finding.", +"id": "GoogleCloudSecuritycenterV2IssueFindingCve", +"properties": { +"name": { +"description": "The CVE name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin": { +"description": "The security bulletin of the finding.", +"id": "GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin", +"properties": { +"name": { +"description": "The security bulletin name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueMute": { +"description": "The mute information of the issue.", +"id": "GoogleCloudSecuritycenterV2IssueMute", +"properties": { +"muteInitiator": { +"description": "The email address of the user who last changed the mute state of the issue.", +"type": "string" +}, +"muteReason": { +"description": "The user-provided reason for muting the issue.", +"type": "string" +}, +"muteState": { +"description": "Output only. The mute state of the issue.", +"enum": [ +"MUTE_STATE_UNSPECIFIED", +"NOT_MUTED", +"MUTED" +], +"enumDescriptions": [ +"Unspecified mute state.", +"Not muted.", +"Muted." +], +"readOnly": true, +"type": "string" +}, +"muteUpdateTime": { +"description": "The time the issue was muted.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResource": { +"description": "A resource associated with the an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResource", +"properties": { +"awsMetadata": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadata", +"description": "The AWS metadata of the resource associated with the issue. Only populated for AWS resources." +}, +"azureMetadata": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadata", +"description": "The Azure metadata of the resource associated with the issue. Only populated for Azure resources." +}, +"cloudProvider": { +"description": "The cloud provider of the resource associated with the issue.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud.", +"Amazon Web Services.", +"Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The resource-type specific display name of the resource associated with the issue.", +"type": "string" +}, +"googleCloudMetadata": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata", +"description": "The Google Cloud metadata of the resource associated with the issue. Only populated for Google Cloud resources." +}, +"name": { +"description": "The full resource name of the resource associated with the issue.", +"type": "string" +}, +"type": { +"description": "The type of the resource associated with the issue.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAwsMetadata": { +"description": "The AWS metadata of a resource associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadata", +"properties": { +"account": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount", +"description": "The AWS account of the resource associated with the issue." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount": { +"description": "The AWS account of the resource associated with the issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount", +"properties": { +"id": { +"description": "The AWS account ID of the resource associated with the issue.", +"type": "string" +}, +"name": { +"description": "The AWS account name of the resource associated with the issue.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAzureMetadata": { +"description": "The Azure metadata of a resource associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadata", +"properties": { +"subscription": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription", +"description": "The Azure subscription of the resource associated with the issue." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription": { +"description": "The Azure subscription of the resource associated with the issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription", +"properties": { +"displayName": { +"description": "The Azure subscription display name of the resource associated with the issue.", +"type": "string" +}, +"id": { +"description": "The Azure subscription ID of the resource associated with the issue.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata": { +"description": "Google Cloud metadata of a resource associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata", +"properties": { +"projectId": { +"description": "The project ID that the resource associated with the issue belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueSecurityContext": { +"description": "Security context associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueSecurityContext", +"properties": { +"aggregatedCount": { +"$ref": "GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount", +"description": "The aggregated count of the security context." +}, +"context": { +"$ref": "GoogleCloudSecuritycenterV2IssueSecurityContextContext", +"description": "The context of the security context." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount": { +"description": "Aggregated count of a security context.", +"id": "GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount", +"properties": { +"key": { +"description": "Aggregation key.", +"type": "string" +}, +"value": { +"description": "Aggregation value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueSecurityContextContext": { +"description": "Context of a security context.", +"id": "GoogleCloudSecuritycenterV2IssueSecurityContextContext", +"properties": { +"type": { +"description": "Context type.", +"type": "string" +}, +"values": { +"description": "Context values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2KernelRootkit": { +"description": "Kernel mode rootkit signatures.", +"id": "GoogleCloudSecuritycenterV2KernelRootkit", +"properties": { +"name": { +"description": "Rootkit name, when available.", +"type": "string" +}, +"unexpectedCodeModification": { +"description": "True if unexpected modifications of kernel code memory are present.", +"type": "boolean" +}, +"unexpectedFtraceHandler": { +"description": "True if `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedInterruptHandler": { +"description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKernelCodePages": { +"description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKprobeHandler": { +"description": "True if `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedProcessesInRunqueue": { +"description": "True if unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", +"type": "boolean" +}, +"unexpectedReadOnlyDataModification": { +"description": "True if unexpected modifications of kernel read-only data memory are present.", +"type": "boolean" +}, +"unexpectedSystemCallHandler": { +"description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Kubernetes": { +"description": "Kubernetes-related attributes.", +"id": "GoogleCloudSecuritycenterV2Kubernetes", +"properties": { +"accessReviews": { +"description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2AccessReview" +}, +"type": "array" +}, +"bindings": { +"description": "Provides Kubernetes role binding information for findings that involve [RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Binding" +}, +"type": "array" +}, +"nodePools": { +"description": "GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) associated with the finding. This field contains node pool information for each node, when it is available.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2NodePool" +}, +"type": "array" +}, +"nodes": { +"description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Node" +}, +"type": "array" +}, +"objects": { +"description": "Kubernetes objects related to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Object" +}, +"type": "array" +}, +"pods": { +"description": "Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated with the finding. This field contains Pod records for each container that is owned by a Pod.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Pod" +}, +"type": "array" +}, +"roles": { +"description": "Provides Kubernetes role information for findings that involve [Roles or ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Role" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Label": { +"description": "Represents a generic name-value label. A label has separate name and value fields to support filtering with the `contains()` function. For more information, see [Filtering on array-type fields](https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).", +"id": "GoogleCloudSecuritycenterV2Label", +"properties": { +"name": { +"description": "Name of the label.", +"type": "string" +}, +"value": { +"description": "Value that corresponds to the label's name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2LoadBalancer": { +"description": "Contains information related to the load balancer associated with the finding.", +"id": "GoogleCloudSecuritycenterV2LoadBalancer", +"properties": { +"name": { +"description": "The name of the load balancer associated with the finding.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2LogEntry": { +"description": "An individual entry in a log.", +"id": "GoogleCloudSecuritycenterV2LogEntry", +"properties": { +"cloudLoggingEntry": { +"$ref": "GoogleCloudSecuritycenterV2CloudLoggingEntry", +"description": "An individual entry in a log stored in Cloud Logging." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MemoryHashSignature": { +"description": "A signature corresponding to memory page hashes.", +"id": "GoogleCloudSecuritycenterV2MemoryHashSignature", +"properties": { +"binaryFamily": { +"description": "The binary family.", +"type": "string" +}, +"detections": { +"description": "The list of memory hash detections contributing to the binary family match.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Detection" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MitreAttack": { +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", +"id": "GoogleCloudSecuritycenterV2MitreAttack", +"properties": { +"additionalTactics": { +"description": "Additional MITRE ATT&CK tactics related to this finding, if any.", +"items": { +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"type": "array" +}, +"additionalTechniques": { +"description": "Additional MITRE ATT&CK techniques related to this finding, if any, along with any of their respective parent techniques.", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"primaryTactic": { +"description": "The MITRE ATT&CK tactic most closely represented by this finding, if any.", +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"primaryTechniques": { +"description": "The MITRE ATT&CK technique most closely represented by this finding, if any. primary_techniques is a repeated field because there are multiple levels of MITRE ATT&CK techniques. If the technique most closely represented by this finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"version": { +"description": "The MITRE ATT&CK version referenced by the above fields. E.g. \"8\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MuteConfig": { +"description": "A mute config is a Cloud SCC resource that contains the configuration to mute create/update events of findings.", +"id": "GoogleCloudSecuritycenterV2MuteConfig", +"properties": { +"createTime": { +"description": "Output only. The time at which the mute config was created. This field is set by the server and will be ignored if provided on config creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the mute config.", +"type": "string" +}, +"expiryTime": { +"description": "Optional. The expiry of the mute config. Only applicable for dynamic configs. If the expiry is set, when the config expires, it is removed from all findings.", +"format": "google-datetime", +"type": "string" +}, +"filter": { +"description": "Required. An expression that defines the filter to apply across create/update events of findings. While creating a filter string, be mindful of the scope in which the mute configuration is being created. E.g., If a filter contains project = X but is created under the project = Y scope, it might not match any findings. The following field and operator combinations are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the mute config. This field is set by the server and will be ignored if provided on config creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. This field will be ignored if provided on config creation. The following list shows some examples of the format: + `organizations/{organization}/muteConfigs/{mute_config}` + `organizations/{organization}locations/{location}//muteConfigs/{mute_config}` + `folders/{folder}/muteConfigs/{mute_config}` + `folders/{folder}/locations/{location}/muteConfigs/{mute_config}` + `projects/{project}/muteConfigs/{mute_config}` + `projects/{project}/locations/{location}/muteConfigs/{mute_config}`", +"type": "string" +}, +"type": { +"description": "Required. The type of the mute config, which determines what type of mute state the config affects. Immutable after creation.", +"enum": [ +"MUTE_CONFIG_TYPE_UNSPECIFIED", +"STATIC", +"DYNAMIC" +], +"enumDescriptions": [ +"Unused.", +"A static mute config, which sets the static mute state of future matching findings to muted. Once the static mute state has been set, finding or config modifications will not affect the state.", +"A dynamic mute config, which is applied to existing and future matching findings, setting their dynamic mute state to \"muted\". If the config is updated or deleted, or a matching finding is updated, such that the finding doesn't match the config, the config will be removed from the finding, and the finding's dynamic mute state may become \"unmuted\" (unless other configs still match)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the mute config was updated. This field is set by the server and will be ignored if provided on config creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MuteInfo": { +"description": "Mute information about the finding, including whether the finding has a static mute or any matching dynamic mute rules.", +"id": "GoogleCloudSecuritycenterV2MuteInfo", +"properties": { +"dynamicMuteRecords": { +"description": "The list of dynamic mute rules that currently match the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DynamicMuteRecord" +}, +"type": "array" +}, +"staticMute": { +"$ref": "GoogleCloudSecuritycenterV2StaticMute", +"description": "If set, the static mute applied to this finding. Static mutes override dynamic mutes. If unset, there is no static mute." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Node": { +"description": "Kubernetes nodes associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Node", +"properties": { +"name": { +"description": "[Full resource name](https://google.aip.dev/122#full-resource-names) of the Compute Engine VM running the cluster node.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2NodePool": { +"description": "Provides GKE node pool information.", +"id": "GoogleCloudSecuritycenterV2NodePool", +"properties": { +"name": { +"description": "Kubernetes node pool name.", +"type": "string" +}, +"nodes": { +"description": "Nodes associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Node" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Notebook": { +"description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", +"id": "GoogleCloudSecuritycenterV2Notebook", +"properties": { +"lastAuthor": { +"description": "The user ID of the latest author to modify the notebook.", +"type": "string" +}, +"name": { +"description": "The name of the notebook.", +"type": "string" +}, +"notebookUpdateTime": { +"description": "The most recent time the notebook was updated.", +"format": "google-datetime", +"type": "string" +}, +"service": { +"description": "The source notebook service, for example, \"Colab Enterprise\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2NotificationMessage": { +"description": "Cloud SCC's Notification", +"id": "GoogleCloudSecuritycenterV2NotificationMessage", +"properties": { +"finding": { +"$ref": "GoogleCloudSecuritycenterV2Finding", +"description": "If it's a Finding based notification config, this field will be populated." +}, +"notificationConfigName": { +"description": "Name of the notification config that generated current notification.", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudSecuritycenterV2Resource", +"description": "The Cloud resource tied to this notification's Finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Object": { +"description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", +"id": "GoogleCloudSecuritycenterV2Object", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Container" +}, +"type": "array" +}, +"group": { +"description": "Kubernetes object group, such as \"policy.k8s.io/v1\".", +"type": "string" +}, +"kind": { +"description": "Kubernetes object kind, such as \"Namespace\".", +"type": "string" +}, +"name": { +"description": "Kubernetes object name. For details see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.", +"type": "string" +}, +"ns": { +"description": "Kubernetes object namespace. Must be a valid DNS label. Named \"ns\" to avoid collision with C++ namespace keyword. For details see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2OrgPolicy": { +"description": "Contains information about the org policies associated with the finding.", +"id": "GoogleCloudSecuritycenterV2OrgPolicy", +"properties": { +"name": { +"description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Package": { +"description": "Package is a generic definition of a package.", +"id": "GoogleCloudSecuritycenterV2Package", +"properties": { +"cpeUri": { +"description": "The CPE URI where the vulnerability was detected.", +"type": "string" +}, +"packageName": { +"description": "The name of the package where the vulnerability was detected.", +"type": "string" +}, +"packageType": { +"description": "Type of package, for example, os, maven, or go.", +"type": "string" +}, +"packageVersion": { +"description": "The version of the package.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Pod": { +"description": "A Kubernetes Pod.", +"id": "GoogleCloudSecuritycenterV2Pod", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Container" +}, +"type": "array" +}, +"labels": { +"description": "Pod labels. For Kubernetes containers, these are applied to the container.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Label" +}, +"type": "array" +}, +"name": { +"description": "Kubernetes Pod name.", +"type": "string" +}, +"ns": { +"description": "Kubernetes Pod namespace.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2PolicyDriftDetails": { +"description": "The policy field that violates the deployed posture and its expected and detected values.", +"id": "GoogleCloudSecuritycenterV2PolicyDriftDetails", +"properties": { +"detectedValue": { +"description": "The detected value that violates the deployed posture, for example, `false` or `allowed_values={\"projects/22831892\"}`.", +"type": "string" +}, +"expectedValue": { +"description": "The value of this field that was configured in a posture, for example, `true` or `allowed_values={\"projects/29831892\"}`.", +"type": "string" +}, +"field": { +"description": "The name of the updated field, for example constraint.implementation.policy_rules[0].enforce", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Process": { +"description": "Represents an operating system process.", +"id": "GoogleCloudSecuritycenterV2Process", +"properties": { +"args": { +"description": "Process arguments as JSON encoded strings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"argumentsTruncated": { +"description": "True if `args` is incomplete.", +"type": "boolean" +}, +"binary": { +"$ref": "GoogleCloudSecuritycenterV2File", +"description": "File information for the process executable." +}, +"envVariables": { +"description": "Process environment variables.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2EnvironmentVariable" +}, +"type": "array" +}, +"envVariablesTruncated": { +"description": "True if `env_variables` is incomplete.", +"type": "boolean" +}, +"libraries": { +"description": "File information for libraries loaded by the process.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2File" +}, +"type": "array" +}, +"name": { +"description": "The process name, as displayed in utilities like `top` and `ps`. This name can be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", +"type": "string" +}, +"parentPid": { +"description": "The parent process ID.", +"format": "int64", +"type": "string" +}, +"pid": { +"description": "The process ID.", +"format": "int64", +"type": "string" +}, +"script": { +"$ref": "GoogleCloudSecuritycenterV2File", +"description": "When the process represents the invocation of a script, `binary` provides information about the interpreter, while `script` provides information about the script file provided to the interpreter." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ProcessSignature": { +"description": "Indicates what signature matched this process.", +"id": "GoogleCloudSecuritycenterV2ProcessSignature", +"properties": { +"memoryHashSignature": { +"$ref": "GoogleCloudSecuritycenterV2MemoryHashSignature", +"description": "Signature indicating that a binary family was matched." +}, +"signatureType": { +"description": "Describes the type of resource associated with the signature.", +"enum": [ +"SIGNATURE_TYPE_UNSPECIFIED", +"SIGNATURE_TYPE_PROCESS", +"SIGNATURE_TYPE_FILE" +], +"enumDescriptions": [ +"The default signature type.", +"Used for signatures concerning processes.", +"Used for signatures concerning disks." +], +"type": "string" +}, +"yaraRuleSignature": { +"$ref": "GoogleCloudSecuritycenterV2YaraRuleSignature", +"description": "Signature indicating that a YARA rule was matched." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Reference": { +"description": "Additional Links", +"id": "GoogleCloudSecuritycenterV2Reference", +"properties": { +"source": { +"description": "Source of the reference e.g. NVD", +"type": "string" +}, +"uri": { +"description": "Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Requests": { +"description": "Information about the requests relevant to the finding.", +"id": "GoogleCloudSecuritycenterV2Requests", +"properties": { +"longTermAllowed": { +"description": "Allowed RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"longTermDenied": { +"description": "Denied RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"ratio": { +"description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", +"format": "double", +"type": "number" +}, +"shortTermAllowed": { +"description": "Allowed RPS (requests per second) in the short term.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Resource": { +"description": "Information related to the Google Cloud resource.", +"id": "GoogleCloudSecuritycenterV2Resource", +"properties": { +"awsMetadata": { +"$ref": "GoogleCloudSecuritycenterV2AwsMetadata", +"description": "The AWS metadata associated with the finding." +}, +"azureMetadata": { +"$ref": "GoogleCloudSecuritycenterV2AzureMetadata", +"description": "The Azure metadata associated with the finding." +}, +"cloudProvider": { +"description": "Indicates which cloud provider the finding is from.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The human readable name of the resource.", +"type": "string" +}, +"gcpMetadata": { +"$ref": "GcpMetadata", +"description": "The GCP metadata associated with the finding." +}, +"location": { +"description": "The region or location of the service (if applicable).", +"type": "string" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourcePath": { +"$ref": "GoogleCloudSecuritycenterV2ResourcePath", +"description": "Provides the path to the resource within the resource hierarchy." +}, +"resourcePathString": { +"description": "A string representation of the resource path. For Google Cloud, it has the format of `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` where there can be any number of folders. For AWS, it has the format of `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` where there can be any number of organizational units. For Azure, it has the format of `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` where there can be any number of management groups.", +"type": "string" +}, +"service": { +"description": "The service or resource provider associated with the resource.", +"type": "string" +}, +"type": { +"description": "The full resource type of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ResourcePath": { +"description": "Represents the path of resources leading up to the resource this finding is about.", +"id": "GoogleCloudSecuritycenterV2ResourcePath", +"properties": { +"nodes": { +"description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ResourcePathNode" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ResourcePathNode": { +"description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", +"id": "GoogleCloudSecuritycenterV2ResourcePathNode", +"properties": { +"displayName": { +"description": "The display name of the resource this node represents.", +"type": "string" +}, +"id": { +"description": "The ID of the resource this node represents.", +"type": "string" +}, +"nodeType": { +"description": "The type of resource this node represents.", +"enum": [ +"RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", +"GCP_ORGANIZATION", +"GCP_FOLDER", +"GCP_PROJECT", +"AWS_ORGANIZATION", +"AWS_ORGANIZATIONAL_UNIT", +"AWS_ACCOUNT", +"AZURE_MANAGEMENT_GROUP", +"AZURE_SUBSCRIPTION", +"AZURE_RESOURCE_GROUP" +], +"enumDescriptions": [ +"Node type is unspecified.", +"The node represents a Google Cloud organization.", +"The node represents a Google Cloud folder.", +"The node represents a Google Cloud project.", +"The node represents an AWS organization.", +"The node represents an AWS organizational unit.", +"The node represents an AWS account.", +"The node represents an Azure management group.", +"The node represents an Azure subscription.", +"The node represents an Azure resource group." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ResourceValueConfig": { +"description": "A resource value configuration (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", +"id": "GoogleCloudSecuritycenterV2ResourceValueConfig", +"properties": { +"cloudProvider": { +"description": "Cloud provider this configuration applies to", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp this resource value configuration was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the resource value configuration.", +"type": "string" +}, +"name": { +"description": "Identifier. Name for the resource value configuration", +"type": "string" +}, +"resourceLabelsSelector": { +"additionalProperties": { +"type": "string" +}, +"description": "List of resource labels to search for, evaluated with `AND`. For example, \"resource_labels_selector\": {\"key\": \"value\", \"env\": \"prod\"} will match resources with labels \"key\": \"value\" `AND` \"env\": \"prod\" https://cloud.google.com/resource-manager/docs/creating-managing-labels", +"type": "object" +}, +"resourceType": { +"description": "Apply resource_value only to resources that match resource_type. resource_type will be checked with `AND` of other resources. For example, \"storage.googleapis.com/Bucket\" with resource_value \"HIGH\" will apply \"HIGH\" value only to \"storage.googleapis.com/Bucket\" resources.", +"type": "string" +}, +"resourceValue": { +"description": "Resource value level this expression represents Only required when there is no Sensitive Data Protection mapping in the request", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"scope": { +"description": "Project or folder to scope this configuration to. For example, \"project/456\" would apply this configuration only to resources in \"project/456\" scope and will be checked with `AND` of other resources.", +"type": "string" +}, +"sensitiveDataProtectionMapping": { +"$ref": "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping", +"description": "A mapping of the sensitivity on Sensitive Data Protection finding to resource values. This mapping can only be used in combination with a resource_type that is related to BigQuery, e.g. \"bigquery.googleapis.com/Dataset\"." +}, +"tagValues": { +"description": "Tag values combined with `AND` to check against. For Google Cloud resources, they are tag value IDs in the form of \"tagValues/123\". Example: `[ \"tagValues/123\", \"tagValues/456\", \"tagValues/789\" ]` https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Timestamp this resource value configuration was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Role": { +"description": "Kubernetes Role or ClusterRole.", +"id": "GoogleCloudSecuritycenterV2Role", +"properties": { +"kind": { +"description": "Role type.", +"enum": [ +"KIND_UNSPECIFIED", +"ROLE", +"CLUSTER_ROLE" +], +"enumDescriptions": [ +"Role type is not specified.", +"Kubernetes Role.", +"Kubernetes ClusterRole." +], +"type": "string" +}, +"name": { +"description": "Role name.", +"type": "string" +}, +"ns": { +"description": "Role namespace.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityBulletin": { +"description": "SecurityBulletin are notifications of vulnerabilities of Google products.", +"id": "GoogleCloudSecuritycenterV2SecurityBulletin", +"properties": { +"bulletinId": { +"description": "ID of the bulletin corresponding to the vulnerability.", +"type": "string" +}, +"submissionTime": { +"description": "Submission time of this Security Bulletin.", +"format": "google-datetime", +"type": "string" +}, +"suggestedUpgradeVersion": { +"description": "This represents a version that the cluster receiving this notification should be upgraded to, based on its current version. For example, 1.15.0", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityMarks": { +"description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", +"id": "GoogleCloudSecuritycenterV2SecurityMarks", +"properties": { +"canonicalName": { +"description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/assets/{asset_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `projects/{project_number}/assets/{asset_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", +"type": "string" +}, +"marks": { +"additionalProperties": { +"type": "string" +}, +"description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", +"type": "object" +}, +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityPolicy": { +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", +"id": "GoogleCloudSecuritycenterV2SecurityPolicy", +"properties": { +"name": { +"description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", +"type": "string" +}, +"preview": { +"description": "Whether or not the associated rule or policy is in preview mode.", +"type": "boolean" +}, +"type": { +"description": "The type of Google Cloud Armor security policy for example, 'backend security policy', 'edge security policy', 'network edge security policy', or 'always-on DDoS protection'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityPosture": { +"description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", +"id": "GoogleCloudSecuritycenterV2SecurityPosture", +"properties": { +"changedPolicy": { +"description": "The name of the updated policy, for example, `projects/{project_id}/policies/{constraint_name}`.", +"type": "string" +}, +"name": { +"description": "Name of the posture, for example, `CIS-Posture`.", +"type": "string" +}, +"policy": { +"description": "The ID of the updated policy, for example, `compute-policy-1`.", +"type": "string" +}, +"policyDriftDetails": { +"description": "The details about a change in an updated policy that violates the deployed posture.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2PolicyDriftDetails" +}, +"type": "array" +}, +"policySet": { +"description": "The name of the updated policy set, for example, `cis-policyset`.", +"type": "string" +}, +"postureDeployment": { +"description": "The name of the posture deployment, for example, `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.", +"type": "string" +}, +"postureDeploymentResource": { +"description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_number}`.", +"type": "string" +}, +"revisionId": { +"description": "The version of the posture, for example, `c7cfa2a8`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping": { +"description": "Resource value mapping for Sensitive Data Protection findings If any of these mappings have a resource value that is not unspecified, the resource_value field will be ignored when reading this configuration.", +"id": "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping", +"properties": { +"highSensitivityMapping": { +"description": "Resource value mapping for high-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"mediumSensitivityMapping": { +"description": "Resource value mapping for medium-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo": { +"description": "Identity delegation history of an authenticated service account.", +"id": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo", +"properties": { +"principalEmail": { +"description": "The email address of a Google account.", +"type": "string" +}, +"principalSubject": { +"description": "A string representing the principal_subject associated with the identity. As compared to `principal_email`, supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2StaticMute": { +"description": "Information about the static mute state. A static mute state overrides any dynamic mute rules that apply to this finding. The static mute state can be set by a static mute rule or by muting the finding directly.", +"id": "GoogleCloudSecuritycenterV2StaticMute", +"properties": { +"applyTime": { +"description": "When the static mute was applied.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding's overall mute state will have the same value.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Subject": { +"description": "Represents a Kubernetes subject.", +"id": "GoogleCloudSecuritycenterV2Subject", +"properties": { +"kind": { +"description": "Authentication type for the subject.", +"enum": [ +"AUTH_TYPE_UNSPECIFIED", +"USER", +"SERVICEACCOUNT", +"GROUP" +], +"enumDescriptions": [ +"Authentication is not specified.", +"User with valid certificate.", +"Users managed by Kubernetes API with credentials stored as secrets.", +"Collection of users." +], +"type": "string" +}, +"name": { +"description": "Name for the subject.", +"type": "string" +}, +"ns": { +"description": "Namespace for the subject.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2TicketInfo": { +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding.", +"id": "GoogleCloudSecuritycenterV2TicketInfo", +"properties": { +"assignee": { +"description": "The assignee of the ticket in the ticket system.", +"type": "string" +}, +"description": { +"description": "The description of the ticket in the ticket system.", +"type": "string" +}, +"id": { +"description": "The identifier of the ticket in the ticket system.", +"type": "string" +}, +"status": { +"description": "The latest status of the ticket, as reported by the ticket system.", +"type": "string" +}, +"updateTime": { +"description": "The time when the ticket was last updated, as reported by the ticket system.", +"format": "google-datetime", +"type": "string" +}, +"uri": { +"description": "The link to the ticket in the ticket system.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ToxicCombination": { +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", +"id": "GoogleCloudSecuritycenterV2ToxicCombination", +"properties": { +"attackExposureScore": { +"description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", +"format": "double", +"type": "number" +}, +"relatedFindings": { +"description": "List of resource names of findings associated with this toxic combination. For example, `organizations/123/sources/456/findings/789`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Vulnerability": { +"description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", +"id": "GoogleCloudSecuritycenterV2Vulnerability", +"properties": { +"cve": { +"$ref": "GoogleCloudSecuritycenterV2Cve", +"description": "CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +}, +"fixedPackage": { +"$ref": "GoogleCloudSecuritycenterV2Package", +"description": "The fixed package is relevant to the finding." +}, +"offendingPackage": { +"$ref": "GoogleCloudSecuritycenterV2Package", +"description": "The offending package is relevant to the finding." +}, +"securityBulletin": { +"$ref": "GoogleCloudSecuritycenterV2SecurityBulletin", +"description": "The security bulletin is relevant to this finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2YaraRuleSignature": { +"description": "A signature corresponding to a YARA rule.", +"id": "GoogleCloudSecuritycenterV2YaraRuleSignature", +"properties": { +"yaraRule": { +"description": "The name of the YARA rule.", +"type": "string" +} +}, +"type": "object" +}, +"GroupAssetsRequest": { +"description": "Request message for grouping by assets.", +"id": "GroupAssetsRequest", +"properties": { +"compareDuration": { +"description": "When compare_duration is set, the GroupResult's \"state_change\" property is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again. Possible \"state_change\" values when compare_duration is specified: * \"ADDED\": indicates that the asset was not present at the start of compare_duration, but present at reference_time. * \"REMOVED\": indicates that the asset was present at the start of compare_duration, but not present at reference_time. * \"ACTIVE\": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and reference_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all assets present at read_time. If this field is set then `state_change` must be a specified field in `group_by`.", +"format": "google-duration", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include: * name * security_center_properties.resource_name * resource_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `update_time = \"2019-06-10T16:07:18-07:00\"` `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `create_time = \"2019-06-10T16:07:18-07:00\"` `create_time = 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` * security_center_properties.resource_name: `=`, `:` * security_center_properties.resource_display_name: `=`, `:` * security_center_properties.resource_type: `=`, `:` * security_center_properties.resource_parent: `=`, `:` * security_center_properties.resource_parent_display_name: `=`, `:` * security_center_properties.resource_project: `=`, `:` * security_center_properties.resource_project_display_name: `=`, `:` * security_center_properties.resource_owners: `=`, `:` For example, `resource_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `resource_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-resource_properties.my_property : \"\"`", +"type": "string" +}, +"groupBy": { +"description": "Required. Expression that defines what assets fields to use for grouping. The string value should follow SQL syntax: comma separated list of fields. For example: \"security_center_properties.resource_project,security_center_properties.project\". The following fields are supported when compare_duration is not set: * security_center_properties.resource_project * security_center_properties.resource_project_display_name * security_center_properties.resource_type * security_center_properties.resource_parent * security_center_properties.resource_parent_display_name The following fields are supported when compare_duration is set: * security_center_properties.resource_type * security_center_properties.resource_project_display_name * security_center_properties.resource_parent_display_name", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `GroupAssetsResponse`; indicates that this is a continuation of a prior `GroupAssets` call, and that the system should return the next page of data.", +"type": "string" +}, +"readTime": { +"description": "Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GroupAssetsResponse": { +"description": "Response message for grouping by assets.", +"id": "GroupAssetsResponse", +"properties": { +"groupByResults": { +"description": "Group results. There exists an element for each existing unique combination of property/values. The element contains a count for the number of times those specific property/values appear.", +"items": { +"$ref": "GroupResult" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"readTime": { +"description": "Time used for executing the groupBy request.", +"format": "google-datetime", +"type": "string" +}, +"totalSize": { +"description": "The total number of results matching the query.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GroupFindingsRequest": { +"description": "Request message for grouping by findings.", +"id": "GroupFindingsRequest", +"properties": { +"compareDuration": { +"deprecated": true, +"description": "When compare_duration is set, the GroupResult's \"state_change\" attribute is updated to indicate whether the finding had its state changed, the finding's state remained unchanged, or if the finding was added during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence and state of the finding at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the finding is made inactive and then active again. Possible \"state_change\" values when compare_duration is specified: * \"CHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration, but changed its state at read_time. * \"UNCHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration and did not change state at read_time. * \"ADDED\": indicates that the finding did not match the given filter or was not present at the start of compare_duration, but was present at read_time. * \"REMOVED\": indicates that the finding was present and matched the filter at the start of compare_duration, but did not match the filter at read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all findings present at read_time. If this field is set then `state_change` must be a specified field in `group_by`.", +"format": "google-duration", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. Examples include: * name * source_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `event_time = \"2019-06-10T16:07:18-07:00\"` `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example, `source_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `source_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-source_properties.my_property : \"\"` * resource: * resource.name: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.type: `=`, `:`", +"type": "string" +}, +"groupBy": { +"description": "Required. Expression that defines what assets fields to use for grouping (including `state_change`). The string value should follow SQL syntax: comma separated list of fields. For example: \"parent,resource_name\". The following fields are supported when compare_duration is set: * state_change", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `GroupFindingsResponse`; indicates that this is a continuation of a prior `GroupFindings` call, and that the system should return the next page of data.", +"type": "string" +}, +"readTime": { +"deprecated": true, +"description": "Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GroupFindingsResponse": { +"description": "Response message for group by findings.", +"id": "GroupFindingsResponse", +"properties": { +"groupByResults": { +"description": "Group results. There exists an element for each existing unique combination of property/values. The element contains a count for the number of times those specific property/values appear.", +"items": { +"$ref": "GroupResult" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"readTime": { +"description": "Time used for executing the groupBy request.", +"format": "google-datetime", +"type": "string" +}, +"totalSize": { +"description": "The total number of results matching the query.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GroupMembership": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", +"id": "GroupMembership", +"properties": { +"groupId": { +"description": "ID of the group.", +"type": "string" +}, +"groupType": { +"description": "Type of group.", +"enum": [ +"GROUP_TYPE_UNSPECIFIED", +"GROUP_TYPE_TOXIC_COMBINATION" +], +"enumDescriptions": [ +"Default value.", +"Group represents a toxic combination." +], +"type": "string" +} +}, +"type": "object" +}, +"GroupResult": { +"description": "Result containing the properties and count of a groupBy request.", +"id": "GroupResult", +"properties": { +"count": { +"description": "Total count of resources for the given properties.", +"format": "int64", +"type": "string" +}, +"properties": { +"additionalProperties": { +"type": "any" +}, +"description": "Properties matching the groupBy fields in the request.", +"type": "object" +} +}, +"type": "object" +}, +"IamBinding": { +"description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", +"id": "IamBinding", +"properties": { +"action": { +"description": "The action that was performed on a Binding.", +"enum": [ +"ACTION_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"Unspecified.", +"Addition of a Binding.", +"Removal of a Binding." +], +"type": "string" +}, +"member": { +"description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", +"type": "string" +}, +"role": { +"description": "Role that is assigned to \"members\". For example, \"roles/viewer\", \"roles/editor\", or \"roles/owner\".", +"type": "string" +} +}, +"type": "object" +}, +"IamPolicy": { +"description": "Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user.", +"id": "IamPolicy", +"properties": { +"policyBlob": { +"description": "The JSON representation of the Policy associated with the asset. See https://cloud.google.com/iam/reference/rest/v1/Policy for format details.", +"type": "string" +} +}, +"type": "object" +}, +"Indicator": { +"description": "Represents what's commonly known as an _indicator of compromise_ (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise).", +"id": "Indicator", +"properties": { +"domains": { +"description": "List of domains associated to the Finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipAddresses": { +"description": "The list of IP addresses that are associated with the finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"signatures": { +"description": "The list of matched signatures indicating that the given process is present in the environment.", +"items": { +"$ref": "ProcessSignature" +}, +"type": "array" +}, +"uris": { +"description": "The list of URIs associated to the Findings.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"KernelRootkit": { +"description": "Kernel mode rootkit signatures.", +"id": "KernelRootkit", +"properties": { +"name": { +"description": "Rootkit name, when available.", +"type": "string" +}, +"unexpectedCodeModification": { +"description": "True if unexpected modifications of kernel code memory are present.", +"type": "boolean" +}, +"unexpectedFtraceHandler": { +"description": "True if `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedInterruptHandler": { +"description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKernelCodePages": { +"description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKprobeHandler": { +"description": "True if `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedProcessesInRunqueue": { +"description": "True if unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", +"type": "boolean" +}, +"unexpectedReadOnlyDataModification": { +"description": "True if unexpected modifications of kernel read-only data memory are present.", +"type": "boolean" +}, +"unexpectedSystemCallHandler": { +"description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +} +}, +"type": "object" +}, +"Kubernetes": { +"description": "Kubernetes-related attributes.", +"id": "Kubernetes", +"properties": { +"accessReviews": { +"description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", +"items": { +"$ref": "AccessReview" +}, +"type": "array" +}, +"bindings": { +"description": "Provides Kubernetes role binding information for findings that involve [RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "GoogleCloudSecuritycenterV1Binding" +}, +"type": "array" +}, +"nodePools": { +"description": "GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) associated with the finding. This field contains node pool information for each node, when it is available.", +"items": { +"$ref": "NodePool" +}, +"type": "array" +}, +"nodes": { +"description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", +"items": { +"$ref": "Node" +}, +"type": "array" +}, +"objects": { +"description": "Kubernetes objects related to the finding.", +"items": { +"$ref": "Object" +}, +"type": "array" +}, +"pods": { +"description": "Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated with the finding. This field contains Pod records for each container that is owned by a Pod.", +"items": { +"$ref": "Pod" +}, +"type": "array" +}, +"roles": { +"description": "Provides Kubernetes role information for findings that involve [Roles or ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "Role" +}, +"type": "array" +} +}, +"type": "object" +}, +"Label": { +"description": "Represents a generic name-value label. A label has separate name and value fields to support filtering with the `contains()` function. For more information, see [Filtering on array-type fields](https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).", +"id": "Label", +"properties": { +"name": { +"description": "Name of the label.", +"type": "string" +}, +"value": { +"description": "Value that corresponds to the label's name.", +"type": "string" +} +}, +"type": "object" +}, +"ListAssetsResponse": { +"description": "Response message for listing assets.", +"id": "ListAssetsResponse", +"properties": { +"listAssetsResults": { +"description": "Assets matching the list request.", +"items": { +"$ref": "ListAssetsResult" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"readTime": { +"description": "Time used for executing the list request.", +"format": "google-datetime", +"type": "string" +}, +"totalSize": { +"description": "The total number of assets matching the query.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListAssetsResult": { +"description": "Result containing the Asset and its State.", +"id": "ListAssetsResult", +"properties": { +"asset": { +"$ref": "Asset", +"description": "Asset matching the search request." +}, +"stateChange": { +"description": "State change of the asset between the points in time.", +"enum": [ +"UNUSED", +"ADDED", +"REMOVED", +"ACTIVE" +], +"enumDescriptions": [ +"State change is unused, this is the canonical default for this enum.", +"Asset was added between the points in time.", +"Asset was removed between the points in time.", +"Asset was present at both point(s) in time." +], +"type": "string" +} +}, +"type": "object" +}, +"ListAttackPathsResponse": { +"description": "Response message for listing the attack paths for a given simulation or valued resource.", +"id": "ListAttackPathsResponse", +"properties": { +"attackPaths": { +"description": "The attack paths that the attack path simulation identified.", +"items": { +"$ref": "AttackPath" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +} +}, +"type": "object" +}, +"ListBigQueryExportsResponse": { +"description": "Response message for listing BigQuery exports.", +"id": "ListBigQueryExportsResponse", +"properties": { +"bigQueryExports": { +"description": "The BigQuery exports from the specified parent.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1BigQueryExport" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListDescendantEventThreatDetectionCustomModulesResponse": { +"description": "Response for listing current and descendant resident Event Threat Detection custom modules.", +"id": "ListDescendantEventThreatDetectionCustomModulesResponse", +"properties": { +"eventThreatDetectionCustomModules": { +"description": "Custom modules belonging to the requested parent.", +"items": { +"$ref": "EventThreatDetectionCustomModule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListDescendantSecurityHealthAnalyticsCustomModulesResponse": { +"description": "Response message for listing descendant Security Health Analytics custom modules.", +"id": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse", +"properties": { +"nextPageToken": { +"description": "If not empty, indicates that there may be more custom modules to be returned.", +"type": "string" +}, +"securityHealthAnalyticsCustomModules": { +"description": "Custom modules belonging to the requested parent and its descendants.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListEffectiveEventThreatDetectionCustomModulesResponse": { +"description": "Response for listing EffectiveEventThreatDetectionCustomModules.", +"id": "ListEffectiveEventThreatDetectionCustomModulesResponse", +"properties": { +"effectiveEventThreatDetectionCustomModules": { +"description": "Effective custom modules belonging to the requested parent.", +"items": { +"$ref": "EffectiveEventThreatDetectionCustomModule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListEffectiveSecurityHealthAnalyticsCustomModulesResponse": { +"description": "Response message for listing effective Security Health Analytics custom modules.", +"id": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse", +"properties": { +"effectiveSecurityHealthAnalyticsCustomModules": { +"description": "Effective custom modules belonging to the requested parent.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If not empty, indicates that there may be more effective custom modules to be returned.", +"type": "string" +} +}, +"type": "object" +}, +"ListEventThreatDetectionCustomModulesResponse": { +"description": "Response for listing Event Threat Detection custom modules.", +"id": "ListEventThreatDetectionCustomModulesResponse", +"properties": { +"eventThreatDetectionCustomModules": { +"description": "Custom modules belonging to the requested parent.", +"items": { +"$ref": "EventThreatDetectionCustomModule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListFindingsResponse": { +"description": "Response message for listing findings.", +"id": "ListFindingsResponse", +"properties": { +"listFindingsResults": { +"description": "Findings matching the list request.", +"items": { +"$ref": "ListFindingsResult" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"readTime": { +"description": "Time used for executing the list request.", +"format": "google-datetime", +"type": "string" +}, +"totalSize": { +"description": "The total number of findings matching the query.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListFindingsResult": { +"description": "Result containing the Finding and its StateChange.", +"id": "ListFindingsResult", +"properties": { +"finding": { +"$ref": "Finding", +"description": "Finding matching the search request." +}, +"resource": { +"$ref": "Resource", +"description": "Output only. Resource that is associated with this finding.", +"readOnly": true +}, +"stateChange": { +"description": "State change of the finding between the points in time.", +"enum": [ +"UNUSED", +"CHANGED", +"UNCHANGED", +"ADDED", +"REMOVED" +], +"enumDescriptions": [ +"State change is unused, this is the canonical default for this enum.", +"The finding has changed state in some way between the points in time and existed at both points.", +"The finding has not changed state between the points in time and existed at both points.", +"The finding was created between the points in time.", +"The finding at timestamp does not match the filter specified, but it did at timestamp - compare_duration." +], +"type": "string" +} +}, +"type": "object" +}, +"ListMuteConfigsResponse": { +"description": "Response message for listing mute configs.", +"id": "ListMuteConfigsResponse", +"properties": { +"muteConfigs": { +"description": "The mute configs from the specified parent.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1MuteConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListNotificationConfigsResponse": { +"description": "Response message for listing notification configs.", +"id": "ListNotificationConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"notificationConfigs": { +"description": "Notification configs belonging to the requested parent.", +"items": { +"$ref": "NotificationConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListResourceValueConfigsResponse": { +"description": "Response message to list resource value configs", +"id": "ListResourceValueConfigsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", +"type": "string" +}, +"resourceValueConfigs": { +"description": "The resource value configs from the specified parent.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSecurityHealthAnalyticsCustomModulesResponse": { +"description": "Response message for listing Security Health Analytics custom modules.", +"id": "ListSecurityHealthAnalyticsCustomModulesResponse", +"properties": { +"nextPageToken": { +"description": "If not empty, indicates that there may be more custom modules to be returned.", +"type": "string" +}, +"securityHealthAnalyticsCustomModules": { +"description": "Custom modules belonging to the requested parent.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSourcesResponse": { +"description": "Response message for listing sources.", +"id": "ListSourcesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"sources": { +"description": "Sources belonging to the requested parent.", +"items": { +"$ref": "Source" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListValuedResourcesResponse": { +"description": "Response message for listing the valued resources for a given simulation.", +"id": "ListValuedResourcesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results.", +"type": "string" +}, +"totalSize": { +"description": "The estimated total number of results matching the query.", +"format": "int32", +"type": "integer" +}, +"valuedResources": { +"description": "The valued resources that the attack path simulation identified.", +"items": { +"$ref": "ValuedResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadBalancer": { +"description": "Contains information related to the load balancer associated with the finding.", +"id": "LoadBalancer", +"properties": { +"name": { +"description": "The name of the load balancer associated with the finding.", +"type": "string" +} +}, +"type": "object" +}, +"LogEntry": { +"description": "An individual entry in a log.", +"id": "LogEntry", +"properties": { +"cloudLoggingEntry": { +"$ref": "CloudLoggingEntry", +"description": "An individual entry in a log stored in Cloud Logging." +} +}, +"type": "object" +}, +"MemoryHashSignature": { +"description": "A signature corresponding to memory page hashes.", +"id": "MemoryHashSignature", +"properties": { +"binaryFamily": { +"description": "The binary family.", +"type": "string" +}, +"detections": { +"description": "The list of memory hash detections contributing to the binary family match.", +"items": { +"$ref": "Detection" +}, +"type": "array" +} +}, +"type": "object" +}, +"MitreAttack": { +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", +"id": "MitreAttack", +"properties": { +"additionalTactics": { +"description": "Additional MITRE ATT&CK tactics related to this finding, if any.", +"items": { +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"type": "array" +}, +"additionalTechniques": { +"description": "Additional MITRE ATT&CK techniques related to this finding, if any, along with any of their respective parent techniques.", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"primaryTactic": { +"description": "The MITRE ATT&CK tactic most closely represented by this finding, if any.", +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"primaryTechniques": { +"description": "The MITRE ATT&CK technique most closely represented by this finding, if any. primary_techniques is a repeated field because there are multiple levels of MITRE ATT&CK techniques. If the technique most closely represented by this finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"version": { +"description": "The MITRE ATT&CK version referenced by the above fields. E.g. \"8\".", +"type": "string" +} +}, +"type": "object" +}, +"MuteInfo": { +"description": "Mute information about the finding, including whether the finding has a static mute or any matching dynamic mute rules.", +"id": "MuteInfo", +"properties": { +"dynamicMuteRecords": { +"description": "The list of dynamic mute rules that currently match the finding.", +"items": { +"$ref": "DynamicMuteRecord" +}, +"type": "array" +}, +"staticMute": { +"$ref": "StaticMute", +"description": "If set, the static mute applied to this finding. Static mutes override dynamic mutes. If unset, there is no static mute." +} +}, +"type": "object" +}, +"Node": { +"description": "Kubernetes nodes associated with the finding.", +"id": "Node", +"properties": { +"name": { +"description": "[Full resource name](https://google.aip.dev/122#full-resource-names) of the Compute Engine VM running the cluster node.", +"type": "string" +} +}, +"type": "object" +}, +"NodePool": { +"description": "Provides GKE node pool information.", +"id": "NodePool", +"properties": { +"name": { +"description": "Kubernetes node pool name.", +"type": "string" +}, +"nodes": { +"description": "Nodes associated with the finding.", +"items": { +"$ref": "Node" +}, +"type": "array" +} +}, +"type": "object" +}, +"Notebook": { +"description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", +"id": "Notebook", +"properties": { +"lastAuthor": { +"description": "The user ID of the latest author to modify the notebook.", +"type": "string" +}, +"name": { +"description": "The name of the notebook.", +"type": "string" +}, +"notebookUpdateTime": { +"description": "The most recent time the notebook was updated.", +"format": "google-datetime", +"type": "string" +}, +"service": { +"description": "The source notebook service, for example, \"Colab Enterprise\".", +"type": "string" +} +}, +"type": "object" +}, +"NotificationConfig": { +"description": "Cloud Security Command Center (Cloud SCC) notification configs. A notification config is a Cloud SCC resource that contains the configuration to send notifications for create/update events of findings, assets and etc.", +"id": "NotificationConfig", +"properties": { +"description": { +"description": "The description of the notification config (max of 1024 characters).", +"type": "string" +}, +"name": { +"description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", +"type": "string" +}, +"pubsubTopic": { +"description": "The Pub/Sub topic to send notifications to. Its format is \"projects/[project_id]/topics/[topic]\".", +"type": "string" +}, +"serviceAccount": { +"description": "Output only. The service account that needs \"pubsub.topics.publish\" permission to publish to the Pub/Sub topic.", +"readOnly": true, +"type": "string" +}, +"streamingConfig": { +"$ref": "StreamingConfig", +"description": "The config for triggering streaming-based notifications." +} +}, +"type": "object" +}, +"Object": { +"description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", +"id": "Object", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"group": { +"description": "Kubernetes object group, such as \"policy.k8s.io/v1\".", +"type": "string" +}, +"kind": { +"description": "Kubernetes object kind, such as \"Namespace\".", +"type": "string" +}, +"name": { +"description": "Kubernetes object name. For details see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.", +"type": "string" +}, +"ns": { +"description": "Kubernetes object namespace. Must be a valid DNS label. Named \"ns\" to avoid collision with C++ namespace keyword. For details see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OrgPolicy": { +"description": "Contains information about the org policies associated with the finding.", +"id": "OrgPolicy", +"properties": { +"name": { +"description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", +"type": "string" +} +}, +"type": "object" +}, +"OrganizationSettings": { +"description": "User specified settings that are attached to the Security Command Center organization.", +"id": "OrganizationSettings", +"properties": { +"assetDiscoveryConfig": { +"$ref": "AssetDiscoveryConfig", +"description": "The configuration used for Asset Discovery runs." +}, +"enableAssetDiscovery": { +"description": "A flag that indicates if Asset Discovery should be enabled. If the flag is set to `true`, then discovery of assets will occur. If it is set to `false`, all historical assets will remain, but discovery of future assets will not occur.", +"type": "boolean" +}, +"name": { +"description": "The relative resource name of the settings. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/organizationSettings\".", +"type": "string" +} +}, +"type": "object" +}, +"Package": { +"description": "Package is a generic definition of a package.", +"id": "Package", +"properties": { +"cpeUri": { +"description": "The CPE URI where the vulnerability was detected.", +"type": "string" +}, +"packageName": { +"description": "The name of the package where the vulnerability was detected.", +"type": "string" +}, +"packageType": { +"description": "Type of package, for example, os, maven, or go.", +"type": "string" +}, +"packageVersion": { +"description": "The version of the package.", +"type": "string" +} +}, +"type": "object" +}, +"PathNodeAssociatedFinding": { +"description": "A finding that is associated with this node in the attack path.", +"id": "PathNodeAssociatedFinding", +"properties": { +"canonicalFinding": { +"description": "Canonical name of the associated findings. Example: `organizations/123/sources/456/findings/789`", +"type": "string" +}, +"findingCategory": { +"description": "The additional taxonomy group within findings from a given source.", +"type": "string" +}, +"name": { +"description": "Full resource name of the finding.", +"type": "string" +} +}, +"type": "object" +}, +"Pod": { +"description": "A Kubernetes Pod.", +"id": "Pod", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"labels": { +"description": "Pod labels. For Kubernetes containers, these are applied to the container.", +"items": { +"$ref": "Label" +}, +"type": "array" +}, +"name": { +"description": "Kubernetes Pod name.", +"type": "string" +}, +"ns": { +"description": "Kubernetes Pod namespace.", +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PolicyDriftDetails": { +"description": "The policy field that violates the deployed posture and its expected and detected values.", +"id": "PolicyDriftDetails", +"properties": { +"detectedValue": { +"description": "The detected value that violates the deployed posture, for example, `false` or `allowed_values={\"projects/22831892\"}`.", +"type": "string" +}, +"expectedValue": { +"description": "The value of this field that was configured in a posture, for example, `true` or `allowed_values={\"projects/29831892\"}`.", +"type": "string" +}, +"field": { +"description": "The name of the updated field, for example constraint.implementation.policy_rules[0].enforce", +"type": "string" +} +}, +"type": "object" +}, +"Position": { +"description": "A position in the uploaded text version of a module.", +"id": "Position", +"properties": { +"columnNumber": { +"format": "int32", +"type": "integer" +}, +"lineNumber": { +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Process": { +"description": "Represents an operating system process.", +"id": "Process", +"properties": { +"args": { +"description": "Process arguments as JSON encoded strings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"argumentsTruncated": { +"description": "True if `args` is incomplete.", +"type": "boolean" +}, +"binary": { +"$ref": "File", +"description": "File information for the process executable." +}, +"envVariables": { +"description": "Process environment variables.", +"items": { +"$ref": "EnvironmentVariable" +}, +"type": "array" +}, +"envVariablesTruncated": { +"description": "True if `env_variables` is incomplete.", +"type": "boolean" +}, +"libraries": { +"description": "File information for libraries loaded by the process.", +"items": { +"$ref": "File" +}, +"type": "array" +}, +"name": { +"description": "The process name, as displayed in utilities like `top` and `ps`. This name can be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", +"type": "string" +}, +"parentPid": { +"description": "The parent process ID.", +"format": "int64", +"type": "string" +}, +"pid": { +"description": "The process ID.", +"format": "int64", +"type": "string" +}, +"script": { +"$ref": "File", +"description": "When the process represents the invocation of a script, `binary` provides information about the interpreter, while `script` provides information about the script file provided to the interpreter." +} +}, +"type": "object" +}, +"ProcessSignature": { +"description": "Indicates what signature matched this process.", +"id": "ProcessSignature", +"properties": { +"memoryHashSignature": { +"$ref": "MemoryHashSignature", +"description": "Signature indicating that a binary family was matched." +}, +"signatureType": { +"description": "Describes the type of resource associated with the signature.", +"enum": [ +"SIGNATURE_TYPE_UNSPECIFIED", +"SIGNATURE_TYPE_PROCESS", +"SIGNATURE_TYPE_FILE" +], +"enumDescriptions": [ +"The default signature type.", +"Used for signatures concerning processes.", +"Used for signatures concerning disks." +], +"type": "string" +}, +"yaraRuleSignature": { +"$ref": "YaraRuleSignature", +"description": "Signature indicating that a YARA rule was matched." +} +}, +"type": "object" +}, +"Reference": { +"description": "Additional Links", +"id": "Reference", +"properties": { +"source": { +"description": "Source of the reference e.g. NVD", +"type": "string" +}, +"uri": { +"description": "Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.", +"type": "string" +} +}, +"type": "object" +}, +"Requests": { +"description": "Information about the requests relevant to the finding.", +"id": "Requests", +"properties": { +"longTermAllowed": { +"description": "Allowed RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"longTermDenied": { +"description": "Denied RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"ratio": { +"description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", +"format": "double", +"type": "number" +}, +"shortTermAllowed": { +"description": "Allowed RPS (requests per second) in the short term.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Resource": { +"description": "Information related to the Google Cloud resource that is associated with this finding.", +"id": "Resource", +"properties": { +"awsMetadata": { +"$ref": "AwsMetadata", +"description": "The AWS metadata associated with the finding." +}, +"azureMetadata": { +"$ref": "AzureMetadata", +"description": "The Azure metadata associated with the finding." +}, +"cloudProvider": { +"description": "Indicates which cloud provider the finding is from.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The human readable name of the resource.", +"type": "string" +}, +"folders": { +"description": "Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "Folder" +}, +"type": "array" +}, +"location": { +"description": "The region or location of the service (if applicable).", +"type": "string" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"organization": { +"description": "Indicates which organization / tenant the finding is for.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"parentName": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project ID that the resource belongs to.", +"type": "string" +}, +"projectName": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"resourcePath": { +"$ref": "ResourcePath", +"description": "Provides the path to the resource within the resource hierarchy." +}, +"resourcePathString": { +"description": "A string representation of the resource path. For Google Cloud, it has the format of `org/{organization_id}/folder/{folder_id}/folder/{folder_id}/project/{project_id}` where there can be any number of folders. For AWS, it has the format of `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` where there can be any number of organizational units. For Azure, it has the format of `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` where there can be any number of management groups.", +"type": "string" +}, +"service": { +"description": "The service or resource provider associated with the resource.", +"type": "string" +}, +"type": { +"description": "The full resource type of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"ResourcePath": { +"description": "Represents the path of resources leading up to the resource this finding is about.", +"id": "ResourcePath", +"properties": { +"nodes": { +"description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", +"items": { +"$ref": "ResourcePathNode" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourcePathNode": { +"description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", +"id": "ResourcePathNode", +"properties": { +"displayName": { +"description": "The display name of the resource this node represents.", +"type": "string" +}, +"id": { +"description": "The ID of the resource this node represents.", +"type": "string" +}, +"nodeType": { +"description": "The type of resource this node represents.", +"enum": [ +"RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", +"GCP_ORGANIZATION", +"GCP_FOLDER", +"GCP_PROJECT", +"AWS_ORGANIZATION", +"AWS_ORGANIZATIONAL_UNIT", +"AWS_ACCOUNT", +"AZURE_MANAGEMENT_GROUP", +"AZURE_SUBSCRIPTION", +"AZURE_RESOURCE_GROUP" +], +"enumDescriptions": [ +"Node type is unspecified.", +"The node represents a Google Cloud organization.", +"The node represents a Google Cloud folder.", +"The node represents a Google Cloud project.", +"The node represents an AWS organization.", +"The node represents an AWS organizational unit.", +"The node represents an AWS account.", +"The node represents an Azure management group.", +"The node represents an Azure subscription.", +"The node represents an Azure resource group." +], +"type": "string" +} +}, +"type": "object" +}, +"ResourceValueConfigMetadata": { +"description": "Metadata about a ResourceValueConfig. For example, id and name.", +"id": "ResourceValueConfigMetadata", +"properties": { +"name": { +"description": "Resource value config name", +"type": "string" +} +}, +"type": "object" +}, +"Role": { +"description": "Kubernetes Role or ClusterRole.", +"id": "Role", +"properties": { +"kind": { +"description": "Role type.", +"enum": [ +"KIND_UNSPECIFIED", +"ROLE", +"CLUSTER_ROLE" +], +"enumDescriptions": [ +"Role type is not specified.", +"Kubernetes Role.", +"Kubernetes ClusterRole." +], +"type": "string" +}, +"name": { +"description": "Role name.", +"type": "string" +}, +"ns": { +"description": "Role namespace.", +"type": "string" +} +}, +"type": "object" +}, +"RunAssetDiscoveryRequest": { +"description": "Request message for running asset discovery for an organization.", +"id": "RunAssetDiscoveryRequest", +"properties": {}, +"type": "object" +}, +"SecurityBulletin": { +"description": "SecurityBulletin are notifications of vulnerabilities of Google products.", +"id": "SecurityBulletin", +"properties": { +"bulletinId": { +"description": "ID of the bulletin corresponding to the vulnerability.", +"type": "string" +}, +"submissionTime": { +"description": "Submission time of this Security Bulletin.", +"format": "google-datetime", +"type": "string" +}, +"suggestedUpgradeVersion": { +"description": "This represents a version that the cluster receiving this notification should be upgraded to, based on its current version. For example, 1.15.0", +"type": "string" +} +}, +"type": "object" +}, +"SecurityCenterProperties": { +"description": "Security Command Center managed properties. These properties are managed by Security Command Center and cannot be modified by the user.", +"id": "SecurityCenterProperties", +"properties": { +"folders": { +"description": "Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "Folder" +}, +"type": "array" +}, +"resourceDisplayName": { +"description": "The user defined display name for this resource.", +"type": "string" +}, +"resourceName": { +"description": "The full resource name of the Google Cloud resource this asset represents. This field is immutable after create time. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceOwners": { +"description": "Owners of the Google Cloud resource.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceParent": { +"description": "The full resource name of the immediate parent of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceParentDisplayName": { +"description": "The user defined display name for the parent of this resource.", +"type": "string" +}, +"resourceProject": { +"description": "The full resource name of the project the resource belongs to. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceProjectDisplayName": { +"description": "The user defined display name for the project of this resource.", +"type": "string" +}, +"resourceType": { +"description": "The type of the Google Cloud resource. Examples include: APPLICATION, PROJECT, and ORGANIZATION. This is a case insensitive field defined by Security Command Center and/or the producer of the resource and is immutable after create time.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityMarks": { +"description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", +"id": "SecurityMarks", +"properties": { +"canonicalName": { +"description": "The canonical name of the marks. Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"folders/{folder_id}/assets/{asset_id}/securityMarks\" \"projects/{project_number}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\"", +"type": "string" +}, +"marks": { +"additionalProperties": { +"type": "string" +}, +"description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", +"type": "object" +}, +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"type": "string" +} +}, +"type": "object" +}, +"SecurityPolicy": { +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", +"id": "SecurityPolicy", +"properties": { +"name": { +"description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", +"type": "string" +}, +"preview": { +"description": "Whether or not the associated rule or policy is in preview mode.", +"type": "boolean" +}, +"type": { +"description": "The type of Google Cloud Armor security policy for example, 'backend security policy', 'edge security policy', 'network edge security policy', or 'always-on DDoS protection'.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityPosture": { +"description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", +"id": "SecurityPosture", +"properties": { +"changedPolicy": { +"description": "The name of the updated policy, for example, `projects/{project_id}/policies/{constraint_name}`.", +"type": "string" +}, +"name": { +"description": "Name of the posture, for example, `CIS-Posture`.", +"type": "string" +}, +"policy": { +"description": "The ID of the updated policy, for example, `compute-policy-1`.", +"type": "string" +}, +"policyDriftDetails": { +"description": "The details about a change in an updated policy that violates the deployed posture.", +"items": { +"$ref": "PolicyDriftDetails" +}, +"type": "array" +}, +"policySet": { +"description": "The name of the updated policyset, for example, `cis-policyset`.", +"type": "string" +}, +"postureDeployment": { +"description": "The name of the posture deployment, for example, `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.", +"type": "string" +}, +"postureDeploymentResource": { +"description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_number}`.", +"type": "string" +}, +"revisionId": { +"description": "The version of the posture, for example, `c7cfa2a8`.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceAccountDelegationInfo": { +"description": "Identity delegation history of an authenticated service account.", +"id": "ServiceAccountDelegationInfo", +"properties": { +"principalEmail": { +"description": "The email address of a Google account.", +"type": "string" +}, +"principalSubject": { +"description": "A string representing the principal_subject associated with the identity. As compared to `principal_email`, supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]`", +"type": "string" +} +}, +"type": "object" +}, +"SetFindingStateRequest": { +"description": "Request message for updating a finding's state.", +"id": "SetFindingStateRequest", +"properties": { +"startTime": { +"deprecated": true, +"description": "Optional. The time at which the updated state takes effect. If unset, defaults to the request time.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Required. The desired State of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SetMuteRequest": { +"description": "Request message for updating a finding's mute status.", +"id": "SetMuteRequest", +"properties": { +"mute": { +"description": "Required. The desired state of the Mute.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +} +}, +"type": "object" +}, +"SimulateSecurityHealthAnalyticsCustomModuleRequest": { +"description": "Request message to simulate a CustomConfig against a given test resource. Maximum size of the request is 4 MB by default.", +"id": "SimulateSecurityHealthAnalyticsCustomModuleRequest", +"properties": { +"customConfig": { +"$ref": "GoogleCloudSecuritycenterV1CustomConfig", +"description": "Required. The custom configuration that you need to test." +}, +"resource": { +"$ref": "SimulatedResource", +"description": "Required. Resource data to simulate custom module against." +} +}, +"type": "object" +}, +"SimulateSecurityHealthAnalyticsCustomModuleResponse": { +"description": "Response message for simulating a `SecurityHealthAnalyticsCustomModule` against a given resource.", +"id": "SimulateSecurityHealthAnalyticsCustomModuleResponse", +"properties": { +"result": { +"$ref": "SimulatedResult", +"description": "Result for test case in the corresponding request." +} +}, +"type": "object" +}, +"SimulatedResource": { +"description": "Manually constructed resource name. If the custom module evaluates against only the resource data, you can omit the `iam_policy_data` field. If it evaluates only the `iam_policy_data` field, you can omit the resource data.", +"id": "SimulatedResource", +"properties": { +"iamPolicyData": { +"$ref": "Policy", +"description": "Optional. A representation of the IAM policy." +}, +"resourceData": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. A representation of the Google Cloud resource. Should match the Google Cloud resource JSON format.", +"type": "object" +}, +"resourceType": { +"description": "Required. The type of the resource, for example, `compute.googleapis.com/Disk`.", +"type": "string" +} +}, +"type": "object" +}, +"SimulatedResult": { +"description": "Possible test result.", +"id": "SimulatedResult", +"properties": { +"error": { +"$ref": "Status", +"description": "Error encountered during the test." +}, +"finding": { +"$ref": "Finding", +"description": "Finding that would be published for the test case, if a violation is detected." +}, +"noViolation": { +"$ref": "Empty", +"description": "Indicates that the test case does not trigger any violation." +} +}, +"type": "object" +}, +"Simulation": { +"description": "Attack path simulation", +"id": "Simulation", +"properties": { +"cloudProvider": { +"description": "Indicates which cloud provider was used in this simulation.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Time simulation was created", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Full resource name of the Simulation: `organizations/123/simulations/456`", +"type": "string" +}, +"resourceValueConfigsMetadata": { +"description": "Resource value configurations' metadata used in this simulation. Maximum of 100.", +"items": { +"$ref": "ResourceValueConfigMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"Source": { +"description": "Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.", +"id": "Source", +"properties": { +"canonicalName": { +"description": "The canonical name of the finding source. It's either \"organizations/{organization_id}/sources/{source_id}\", \"folders/{folder_id}/sources/{source_id}\", or \"projects/{project_number}/sources/{source_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", +"type": "string" +}, +"description": { +"description": "The description of the source (max of 1024 characters). Example: \"Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.\"", +"type": "string" +}, +"displayName": { +"description": "The source's display name. A source's display name must be unique amongst its siblings, for example, two sources with the same parent can't share the same display name. The display name must have a length between 1 and 64 characters (inclusive).", +"type": "string" +}, +"name": { +"description": "The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}\"", +"type": "string" +} +}, +"type": "object" +}, +"StaticMute": { +"description": "Information about the static mute state. A static mute state overrides any dynamic mute rules that apply to this finding. The static mute state can be set by a static mute rule or by muting the finding directly.", +"id": "StaticMute", +"properties": { +"applyTime": { +"description": "When the static mute was applied.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding's overall mute state will have the same value.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StreamingConfig": { +"description": "The config for streaming-based notifications, which send each event as soon as it is detected.", +"id": "StreamingConfig", +"properties": { +"filter": { +"description": "Expression that defines the filter to apply across create/update events of assets or findings as specified by the event type. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", +"type": "string" +} +}, +"type": "object" +}, +"Subject": { +"description": "Represents a Kubernetes subject.", +"id": "Subject", +"properties": { +"kind": { +"description": "Authentication type for the subject.", +"enum": [ +"AUTH_TYPE_UNSPECIFIED", +"USER", +"SERVICEACCOUNT", +"GROUP" +], +"enumDescriptions": [ +"Authentication is not specified.", +"User with valid certificate.", +"Users managed by Kubernetes API with credentials stored as secrets.", +"Collection of users." +], +"type": "string" +}, +"name": { +"description": "Name for the subject.", +"type": "string" +}, +"ns": { +"description": "Namespace for the subject.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TicketInfo": { +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding.", +"id": "TicketInfo", +"properties": { +"assignee": { +"description": "The assignee of the ticket in the ticket system.", +"type": "string" +}, +"description": { +"description": "The description of the ticket in the ticket system.", +"type": "string" +}, +"id": { +"description": "The identifier of the ticket in the ticket system.", +"type": "string" +}, +"status": { +"description": "The latest status of the ticket, as reported by the ticket system.", +"type": "string" +}, +"updateTime": { +"description": "The time when the ticket was last updated, as reported by the ticket system.", +"format": "google-datetime", +"type": "string" +}, +"uri": { +"description": "The link to the ticket in the ticket system.", +"type": "string" +} +}, +"type": "object" +}, +"ToxicCombination": { +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", +"id": "ToxicCombination", +"properties": { +"attackExposureScore": { +"description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", +"format": "double", +"type": "number" +}, +"relatedFindings": { +"description": "List of resource names of findings associated with this toxic combination. For example, `organizations/123/sources/456/findings/789`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ValidateEventThreatDetectionCustomModuleRequest": { +"description": "Request to validate an Event Threat Detection custom module.", +"id": "ValidateEventThreatDetectionCustomModuleRequest", +"properties": { +"rawText": { +"description": "Required. The raw text of the module's contents. Used to generate error messages.", +"type": "string" +}, +"type": { +"description": "Required. The type of the module (e.g. CONFIGURABLE_BAD_IP).", +"type": "string" +} +}, +"type": "object" +}, +"ValidateEventThreatDetectionCustomModuleResponse": { +"description": "Response to validating an Event Threat Detection custom module.", +"id": "ValidateEventThreatDetectionCustomModuleResponse", +"properties": { +"errors": { +"$ref": "CustomModuleValidationErrors", +"description": "A list of errors returned by the validator. If the list is empty, there were no errors." +} +}, +"type": "object" +}, +"ValuedResource": { +"description": "A resource that is determined to have value to a user's system", +"id": "ValuedResource", +"properties": { +"displayName": { +"description": "Human-readable name of the valued resource.", +"type": "string" +}, +"exposedScore": { +"description": "Exposed score for this valued resource. A value of 0 means no exposure was detected exposure.", +"format": "double", +"type": "number" +}, +"name": { +"description": "Valued resource name, for example, e.g.: `organizations/123/simulations/456/valuedResources/789`", +"type": "string" +}, +"resource": { +"description": "The [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) of the valued resource.", +"type": "string" +}, +"resourceType": { +"description": "The [resource type](https://cloud.google.com/asset-inventory/docs/supported-asset-types) of the valued resource.", +"type": "string" +}, +"resourceValue": { +"description": "How valuable this resource is.", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"RESOURCE_VALUE_LOW", +"RESOURCE_VALUE_MEDIUM", +"RESOURCE_VALUE_HIGH" +], +"enumDescriptions": [ +"The resource value isn't specified.", +"This is a low-value resource.", +"This is a medium-value resource.", +"This is a high-value resource." +], +"type": "string" +}, +"resourceValueConfigsUsed": { +"description": "List of resource value configurations' metadata used to determine the value of this resource. Maximum of 100.", +"items": { +"$ref": "ResourceValueConfigMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"Vulnerability": { +"description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", +"id": "Vulnerability", +"properties": { +"cve": { +"$ref": "Cve", +"description": "CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +}, +"fixedPackage": { +"$ref": "Package", +"description": "The fixed package is relevant to the finding." +}, +"offendingPackage": { +"$ref": "Package", +"description": "The offending package is relevant to the finding." +}, +"securityBulletin": { +"$ref": "SecurityBulletin", +"description": "The security bulletin is relevant to this finding." +} +}, +"type": "object" +}, +"VulnerabilityCountBySeverity": { +"description": "Vulnerability count by severity.", +"id": "VulnerabilityCountBySeverity", +"properties": { +"severityToFindingCount": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Key is the Severity enum.", +"type": "object" +} +}, +"type": "object" +}, +"VulnerabilitySnapshot": { +"description": "Result containing the properties and count of a VulnerabilitySnapshot request.", +"id": "VulnerabilitySnapshot", +"properties": { +"cloudProvider": { +"description": "The cloud provider for the vulnerability snapshot.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"findingCount": { +"$ref": "VulnerabilityCountBySeverity", +"description": "The vulnerability count by severity." +}, +"name": { +"description": "Identifier. The vulnerability snapshot name. Format: //locations//vulnerabilitySnapshots/", +"type": "string" +}, +"snapshotTime": { +"description": "The time that the snapshot was taken.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"YaraRuleSignature": { +"description": "A signature corresponding to a YARA rule.", +"id": "YaraRuleSignature", +"properties": { +"yaraRule": { +"description": "The name of the YARA rule.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Security Command Center API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..2612c2aa57b91cbd5259396584c5eb06fb15abb9 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json @@ -0,0 +1,1377 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://servicedirectory.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Service Directory", +"description": "Service Directory is a platform for discovering, publishing, and connecting services. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/service-directory", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "servicedirectory:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://servicedirectory.mtls.googleapis.com/", +"name": "servicedirectory", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"namespaces": { +"methods": { +"create": { +"description": "Creates a namespace, and returns the new namespace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"namespaceId": { +"description": "Required. The Resource ID must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project and location the namespace will be created in.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/namespaces", +"request": { +"$ref": "Namespace" +}, +"response": { +"$ref": "Namespace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a namespace. This also deletes all services and endpoints in the namespace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}", +"httpMethod": "DELETE", +"id": "servicedirectory.projects.locations.namespaces.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the namespace to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a namespace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.namespaces.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the namespace to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Namespace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM Policy for a resource", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}:getIamPolicy", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all namespaces.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.namespaces.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name`, `labels.` for map field, or `attributes.` for attributes field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `labels.owner` returns namespaces that have a label with the key `owner`, this is the same as `labels:owner` * `labels.owner=sd` returns namespaces that have key/value `owner=sd` * `name>projects/my-project/locations/us-east1/namespaces/namespace-c` returns namespaces that have name that is alphabetically later than the string, so \"namespace-e\" is returned but \"namespace-a\" is not * `labels.owner!=sd AND labels.foo=bar` returns namespaces that have `owner` in label key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that namespace doesn't have a field called \"doesnotexist\". Since the filter does not match any namespaces, it returns no results * `attributes.managed_registration=true` returns namespaces that are managed by a GCP product or service For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The order to list results by. General `order_by` string syntax: ` () (,)` * `` allows value: `name` * `` ascending or descending order by ``. If this is left blank, `asc` is used Note that an empty `order_by` string results in default order, which is order by `name` in ascending order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. The default value is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project and location whose namespaces you'd like to list.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/namespaces", +"response": { +"$ref": "ListNamespacesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a namespace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}", +"httpMethod": "PATCH", +"id": "servicedirectory.projects.locations.namespaces.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name for the namespace in the format `projects/*/locations/*/namespaces/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. List of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Namespace" +}, +"response": { +"$ref": "Namespace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM Policy for a resource", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}:setIamPolicy", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests IAM permissions for a resource (namespace, service or service workload only).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}:testIamPermissions", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"services": { +"methods": { +"create": { +"description": "Creates a service, and returns the new service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.services.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the namespace this service will belong to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"serviceId": { +"description": "Required. The Resource ID must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/services", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a service. This also deletes all endpoints associated with the service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "servicedirectory.projects.locations.namespaces.services.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the service to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.namespaces.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the service to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM Policy for a resource", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:getIamPolicy", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.services.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all services belonging to a namespace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.namespaces.services.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name` or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns services that have a metadata with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns services that have key/value `protocol=gRPC` * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/service-c` returns services that have name that is alphabetically later than the string, so \"service-e\" is returned but \"service-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns services that have `owner` in metadata key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that service doesn't have a field called \"doesnotexist\". Since the filter does not match any services, it returns no results * `attributes.managed_registration=true` returns services that are managed by a GCP product or service For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The order to list results by. General `order_by` string syntax: ` () (,)` * `` allows value: `name` * `` ascending or descending order by ``. If this is left blank, `asc` is used Note that an empty `order_by` string results in default order, which is order by `name` in ascending order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. The default value is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the namespace whose services you'd like to list.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/services", +"response": { +"$ref": "ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}", +"httpMethod": "PATCH", +"id": "servicedirectory.projects.locations.namespaces.services.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. List of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resolve": { +"description": "Returns a service and its associated endpoints. Resolving a service is not considered an active developer method.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:resolve", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.services.resolve", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the service to resolve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:resolve", +"request": { +"$ref": "ResolveServiceRequest" +}, +"response": { +"$ref": "ResolveServiceResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM Policy for a resource", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:setIamPolicy", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.services.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests IAM permissions for a resource (namespace, service or service workload only).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:testIamPermissions", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.services.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"endpoints": { +"methods": { +"create": { +"description": "Creates an endpoint, and returns the new endpoint.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}/endpoints", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.services.endpoints.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"endpointId": { +"description": "Required. The Resource ID must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the service that this endpoint provides.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/endpoints", +"request": { +"$ref": "Endpoint" +}, +"response": { +"$ref": "Endpoint" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an endpoint.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}/endpoints/{endpointsId}", +"httpMethod": "DELETE", +"id": "servicedirectory.projects.locations.namespaces.services.endpoints.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the endpoint to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+/endpoints/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an endpoint.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}/endpoints/{endpointsId}", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.namespaces.services.endpoints.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the endpoint to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+/endpoints/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Endpoint" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all endpoints.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}/endpoints", +"httpMethod": "GET", +"id": "servicedirectory.projects.locations.namespaces.services.endpoints.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, `metadata.` for map field, or `attributes.` for attributes field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns endpoints that have a metadata with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns endpoints that have `owner` in metadata key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoints, it returns no results * `attributes.kubernetes_resource_type=KUBERNETES_RESOURCE_TYPE_CLUSTER_ IP` returns endpoints with the corresponding kubernetes_resource_type For more information about filtering, see [API Filtering](https://aip.dev/160).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The order to list results by. General `order_by` string syntax: ` () (,)` * `` allows values: `name`, `address`, `port` * `` ascending or descending order by ``. If this is left blank, `asc` is used Note that an empty `order_by` string results in default order, which is order by `name` in ascending order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. The default value is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the service whose endpoints you'd like to list.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/endpoints", +"response": { +"$ref": "ListEndpointsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an endpoint.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}/endpoints/{endpointsId}", +"httpMethod": "PATCH", +"id": "servicedirectory.projects.locations.namespaces.services.endpoints.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/services/[^/]+/endpoints/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. List of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Endpoint" +}, +"response": { +"$ref": "Endpoint" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"workloads": { +"methods": { +"getIamPolicy": { +"description": "Gets the IAM Policy for a resource", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/workloads/{workloadsId}:getIamPolicy", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.workloads.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM Policy for a resource", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/workloads/{workloadsId}:setIamPolicy", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.workloads.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests IAM permissions for a resource (namespace, service or service workload only).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/workloads/{workloadsId}:testIamPermissions", +"httpMethod": "POST", +"id": "servicedirectory.projects.locations.namespaces.workloads.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/namespaces/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240630", +"rootUrl": "https://servicedirectory.googleapis.com/", +"schemas": { +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Endpoint": { +"description": "An individual endpoint that provides a service. The service must already exist to create an endpoint.", +"id": "Endpoint", +"properties": { +"address": { +"description": "Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters.", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when the endpoint was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory.", +"type": "object" +}, +"name": { +"description": "Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`.", +"type": "string" +}, +"network": { +"description": "Immutable. The Google Compute Engine network (VPC) of the endpoint in the format `projects//locations/global/networks/*`. The project must be specified by project number (project id is rejected). Incorrectly formatted networks are rejected, but no other validation is performed on this field (ex. network or project existence, reachability, or permissions).", +"type": "string" +}, +"port": { +"description": "Optional. Service Directory rejects values outside of `[0, 65535]`.", +"format": "int32", +"type": "integer" +}, +"uid": { +"description": "Output only. A globally unique identifier (in UUID4 format) for this endpoint.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the endpoint was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListEndpointsResponse": { +"description": "The response message for RegistrationService.ListEndpoints.", +"id": "ListEndpointsResponse", +"properties": { +"endpoints": { +"description": "The list of endpoints.", +"items": { +"$ref": "Endpoint" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListNamespacesResponse": { +"description": "The response message for RegistrationService.ListNamespaces.", +"id": "ListNamespacesResponse", +"properties": { +"namespaces": { +"description": "The list of namespaces.", +"items": { +"$ref": "Namespace" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListServicesResponse": { +"description": "The response message for RegistrationService.ListServices.", +"id": "ListServicesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"services": { +"description": "The list of services.", +"items": { +"$ref": "Service" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Namespace": { +"description": "A container for services. Namespaces allow administrators to group services together and define permissions for a collection of services.", +"id": "Namespace", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the namespace was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels associated with this namespace. No more than 64 user labels can be associated with a given resource. Label keys and values can be no longer than 63 characters.", +"type": "object" +}, +"name": { +"description": "Immutable. The resource name for the namespace in the format `projects/*/locations/*/namespaces/*`.", +"type": "string" +}, +"uid": { +"description": "Output only. A globally unique identifier (in UUID4 format) for this namespace.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the namespace was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ResolveServiceRequest": { +"description": "The request message for LookupService.ResolveService. Looks up a service by its name, returns the service and its endpoints.", +"id": "ResolveServiceRequest", +"properties": { +"endpointFilter": { +"description": "Optional. The filter applied to the endpoints of the resolved service. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns endpoints that have a annotation with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `name=projects/my-project/locations/us-central1/namespaces/my-namespace/services/my-service/endpoints/ep-1` returns the endpoint that has an endpoint_id equal to `ep-1` * `metadata.owner!=sd AND metadata.foo=bar` returns endpoints that have `owner` in annotation key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoint, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", +"type": "string" +}, +"maxEndpoints": { +"description": "Optional. The maximum number of endpoints to return. Defaults to 25. Maximum is 100. If a value less than one is specified, the Default is used. If a value greater than the Maximum is specified, the Maximum is used.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ResolveServiceResponse": { +"description": "The response message for LookupService.ResolveService.", +"id": "ResolveServiceResponse", +"properties": { +"service": { +"$ref": "Service" +} +}, +"type": "object" +}, +"Service": { +"description": "An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it.", +"id": "Service", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the service was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endpoints": { +"description": "Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints.", +"items": { +"$ref": "Endpoint" +}, +"readOnly": true, +"type": "array" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory.", +"type": "object" +}, +"name": { +"description": "Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`.", +"type": "string" +}, +"uid": { +"description": "Output only. A globally unique identifier (in UUID4 format) for this service.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the service was last updated. Note: endpoints being created/deleted/updated within the service are not considered service updates for the purpose of this timestamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Service Directory API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..32de8540e4aaac670682c3880e04970f733b45e3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json @@ -0,0 +1,2994 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/service.management": { +"description": "Manage your Google API service configuration" +} +} +} +}, +"basePath": "", +"baseUrl": "https://servicenetworking.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Service Networking", +"description": "Provides automatic management of network configurations necessary for certain services.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "servicenetworking:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://servicenetworking.mtls.googleapis.com/", +"name": "servicenetworking", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta/operations/{operationsId}", +"httpMethod": "GET", +"id": "servicenetworking.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"services": { +"methods": { +"addSubnetwork": { +"description": "For service producers, provisions a new subnet in a peered service's shared VPC network in the requested region and with the requested size that's expressed as a CIDR range (number of leading bits of ipV4 network mask). The method checks against the assigned allocated ranges to find a non-conflicting IP address range. The method will reuse a subnet if subsequent calls contain the same subnet name, region, and prefix length. This method will make producer's tenant project to be a shared VPC service project as needed. The response from the `get` operation will be of type `Subnetwork` if the operation successfully completes.", +"flatPath": "v1beta/services/{servicesId}/{servicesId1}/{servicesId2}:addSubnetwork", +"httpMethod": "POST", +"id": "servicenetworking.services.addSubnetwork", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. A tenant project in the service producer organization, in the following format: services/{service}/{collection-id}/{resource-id}. {collection-id} is the cloud resource collection type that represents the tenant project. Only `projects` are supported. {resource-id} is the tenant project numeric id, such as `123456`. {service} the name of the peering service, such as `service-peering.example.com`. This service must already be enabled in the service consumer's project.", +"location": "path", +"pattern": "^services/[^/]+/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}:addSubnetwork", +"request": { +"$ref": "AddSubnetworkRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"searchRange": { +"description": "Service producers can use this method to find a currently unused range within consumer allocated ranges. This returned range is not reserved, and not guaranteed to remain unused. It will validate previously provided allocated ranges, find non-conflicting sub-range of requested size (expressed in number of leading bits of ipv4 network mask, as in CIDR range notation). Operation", +"flatPath": "v1beta/services/{servicesId}:searchRange", +"httpMethod": "POST", +"id": "servicenetworking.services.searchRange", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. This is in a form services/{service}. {service} the name of the private access management service, for example 'service-peering.example.com'.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}:searchRange", +"request": { +"$ref": "SearchRangeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"updateConnections": { +"description": "Updates the allocated ranges that are assigned to a connection. The response from the `get` operation will be of type `Connection` if the operation successfully completes.", +"flatPath": "v1beta/services/{servicesId}/connections", +"httpMethod": "PATCH", +"id": "servicenetworking.services.updateConnections", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If a previously defined allocated range is removed, force flag must be set to true.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The service producer peering service that is managing peering connectivity for a service producer organization. For Google services that support this functionality, this is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask. If this is omitted, it defaults to \"*\". You can only update the listed peering ranges.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}/connections", +"request": { +"$ref": "GoogleCloudServicenetworkingV1betaConnection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +}, +"resources": { +"connections": { +"methods": { +"create": { +"description": "Creates a private connection that establishes a VPC Network Peering connection to a VPC network in the service producer's organization. The administrator of the service consumer's VPC network invokes this method. The administrator must assign one or more allocated IP ranges for provisioning subnetworks in the service producer's VPC network. This connection is used for all supported services in the service producer's organization, so it only needs to be invoked once. The response from the `get` operation will be of type `Connection` if the operation successfully completes.", +"flatPath": "v1beta/services/{servicesId}/connections", +"httpMethod": "POST", +"id": "servicenetworking.services.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/connections", +"request": { +"$ref": "GoogleCloudServicenetworkingV1betaConnection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "List the private connections that are configured in a service consumer's VPC network.", +"flatPath": "v1beta/services/{servicesId}/connections", +"httpMethod": "GET", +"id": "servicenetworking.services.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"network": { +"description": "The name of service consumer's VPC network that's connected with service producer network through a private connection. The network name must be in the following format: `projects/{project}/global/networks/{network}`. {project} is a project number, such as in `12345` that includes the VPC service consumer's VPC network. {network} is the name of the service consumer's VPC network.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`. If you specify `-` as the parameter value, all configured public peering services are listed.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/connections", +"response": { +"$ref": "ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +} +} +} +}, +"revision": "20241212", +"rootUrl": "https://servicenetworking.googleapis.com/", +"schemas": { +"AddDnsRecordSetMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by AddDnsRecordSet API", +"id": "AddDnsRecordSetMetadata", +"properties": {}, +"type": "object" +}, +"AddDnsZoneMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by AddDnsZone API", +"id": "AddDnsZoneMetadata", +"properties": {}, +"type": "object" +}, +"AddDnsZoneResponse": { +"description": "Represents managed DNS zones created in the shared producer host and consumer projects.", +"id": "AddDnsZoneResponse", +"properties": { +"consumerPeeringZone": { +"$ref": "DnsZone", +"description": "The DNS peering zone created in the consumer project." +}, +"producerPrivateZone": { +"$ref": "DnsZone", +"description": "The private DNS zone created in the shared producer host project." +} +}, +"type": "object" +}, +"AddRolesMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by AddRoles API", +"id": "AddRolesMetadata", +"properties": {}, +"type": "object" +}, +"AddRolesResponse": { +"description": "Represents IAM roles added to the shared VPC host project.", +"id": "AddRolesResponse", +"properties": { +"policyBinding": { +"description": "Required. List of policy bindings that were added to the shared VPC host project.", +"items": { +"$ref": "PolicyBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddSubnetworkRequest": { +"description": "Request to create a subnetwork in a previously peered service network.", +"id": "AddSubnetworkRequest", +"properties": { +"consumer": { +"description": "Required. A resource that represents the service consumer, such as `projects/123456`. The project number can be different from the value in the consumer network parameter. For example, the network might be part of a Shared VPC network. In those cases, Service Networking validates that this resource belongs to that Shared VPC.", +"type": "string" +}, +"consumerNetwork": { +"description": "Required. The name of the service consumer's VPC network. The network must have an existing private connection that was provisioned through the connections.create method. The name must be in the following format: `projects/{project}/global/networks/{network}`, where {project} is a project number, such as `12345`. {network} is the name of a VPC network in the project.", +"type": "string" +}, +"description": { +"description": "An optional description of the subnet.", +"type": "string" +}, +"ipPrefixLength": { +"description": "Required. The prefix length of the subnet's IP address range. Use CIDR range notation, such as `30` to provision a subnet with an `x.x.x.x/30` CIDR range. The IP address range is drawn from a pool of available ranges in the service consumer's allocated range.", +"format": "int32", +"type": "integer" +}, +"region": { +"description": "Required. The name of a [region](/compute/docs/regions-zones) for the subnet, such `europe-west1`.", +"type": "string" +}, +"requestedAddress": { +"description": "Optional. The starting address of a range. The address must be a valid IPv4 address in the x.x.x.x format. This value combined with the IP prefix range is the CIDR range for the subnet. The range must be within the allocated range that is assigned to the private connection. If the CIDR range isn't available, the call fails.", +"type": "string" +}, +"subnetwork": { +"description": "Required. A name for the new subnet. For information about the naming requirements, see [subnetwork](/compute/docs/reference/rest/v1/subnetworks) in the Compute API documentation.", +"type": "string" +}, +"subnetworkUsers": { +"description": "A list of members that are granted the `compute.networkUser` role on the subnet.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Api": { +"description": "Api is a light-weight descriptor for an API Interface. Interfaces are also described as \"protocol buffer services\" in some contexts, such as by the \"service\" keyword in a .proto file, but they are different from API Services, which represent a concrete implementation of an interface as opposed to simply a description of methods and bindings. They are also sometimes simply referred to as \"APIs\" in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.", +"id": "Api", +"properties": { +"methods": { +"description": "The methods of this interface, in unspecified order.", +"items": { +"$ref": "Method" +}, +"type": "array" +}, +"mixins": { +"description": "Included interfaces. See Mixin.", +"items": { +"$ref": "Mixin" +}, +"type": "array" +}, +"name": { +"description": "The fully qualified name of this interface, including package name followed by the interface's simple name.", +"type": "string" +}, +"options": { +"description": "Any metadata attached to the interface.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "Source context for the protocol buffer service represented by this message." +}, +"syntax": { +"description": "The source syntax of the service.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +}, +"version": { +"description": "A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces. ", +"type": "string" +} +}, +"type": "object" +}, +"AuthProvider": { +"description": "Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", +"id": "AuthProvider", +"properties": { +"audiences": { +"description": "The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - \"https://[service.name]/[google.protobuf.Api.name]\" - \"https://[service.name]/\" will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com", +"type": "string" +}, +"authorizationUrl": { +"description": "Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.", +"type": "string" +}, +"id": { +"description": "The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: \"bookstore_auth\".", +"type": "string" +}, +"issuer": { +"description": "Identifies the principal that issued the JWT. See https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 Usually a URL or an email address. Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com", +"type": "string" +}, +"jwksUri": { +"description": "URL of the provider's public key set to validate signature of the JWT. See [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). Optional if the key set document: - can be retrieved from [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) of the issuer. - can be inferred from the email domain of the issuer (e.g. a Google service account). Example: https://www.googleapis.com/oauth2/v1/certs", +"type": "string" +}, +"jwtLocations": { +"description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", +"items": { +"$ref": "JwtLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthRequirement": { +"description": "User-defined authentication requirements, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", +"id": "AuthRequirement", +"properties": { +"audiences": { +"description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is implemented and accepted in all the runtime components. The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, only JWTs with audience \"https://Service_name/API_name\" will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience \"https://library-example.googleapis.com/google.example.library.v1.LibraryService\". Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com", +"type": "string" +}, +"providerId": { +"description": "id from authentication provider. Example: provider_id: bookstore_auth", +"type": "string" +} +}, +"type": "object" +}, +"Authentication": { +"description": "`Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read", +"id": "Authentication", +"properties": { +"providers": { +"description": "Defines a set of authentication providers that a service supports.", +"items": { +"$ref": "AuthProvider" +}, +"type": "array" +}, +"rules": { +"description": "A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "AuthenticationRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthenticationRule": { +"description": "Authentication rules for the service. By default, if a method has any authentication requirements, every request must include a valid credential matching one of the requirements. It's an error to include more than one kind of credential in a single request. If a method doesn't have any auth requirements, request credentials will be ignored.", +"id": "AuthenticationRule", +"properties": { +"allowWithoutCredential": { +"description": "If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.", +"type": "boolean" +}, +"oauth": { +"$ref": "OAuthRequirements", +"description": "The requirements for OAuth credentials." +}, +"requirements": { +"description": "Requirements for additional authentication providers.", +"items": { +"$ref": "AuthRequirement" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Backend": { +"description": "`Backend` defines the backend configuration for a service.", +"id": "Backend", +"properties": { +"rules": { +"description": "A list of API backend rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "BackendRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"BackendRule": { +"description": "A backend rule provides configuration for an individual API element.", +"id": "BackendRule", +"properties": { +"address": { +"description": "The address of the API backend. The scheme is used to determine the backend protocol and security. The following schemes are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to explicitly include a scheme. Leaving out the scheme may cause constrasting behaviors across platforms. If the port is unspecified, the default is: - 80 for schemes without TLS - 443 for schemes with TLS For HTTP backends, use protocol to specify the protocol version.", +"type": "string" +}, +"deadline": { +"description": "The number of seconds to wait for a response from a request. The default varies based on the request protocol and deployment environment.", +"format": "double", +"type": "number" +}, +"disableAuth": { +"description": "When disable_auth is true, a JWT ID token won't be generated and the original \"Authorization\" HTTP header will be preserved. If the header is used to carry the original token and is expected by the backend, this field must be set to true to preserve the header.", +"type": "boolean" +}, +"jwtAudience": { +"description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", +"type": "string" +}, +"minDeadline": { +"deprecated": true, +"description": "Deprecated, do not use.", +"format": "double", +"type": "number" +}, +"operationDeadline": { +"description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", +"format": "double", +"type": "number" +}, +"overridesByRequestProtocol": { +"additionalProperties": { +"$ref": "BackendRule" +}, +"description": "The map between request protocol and the backend address.", +"type": "object" +}, +"pathTranslation": { +"enum": [ +"PATH_TRANSLATION_UNSPECIFIED", +"CONSTANT_ADDRESS", +"APPEND_PATH_TO_ADDRESS" +], +"enumDescriptions": [ +"", +"Use the backend address as-is, with no modification to the path. If the URL pattern contains variables, the variable names and values will be appended to the query string. If a query string parameter and a URL pattern variable have the same name, this may result in duplicate keys in the query string. # Examples Given the following operation config: Method path: /api/company/{cid}/user/{uid} Backend address: https://example.cloudfunctions.net/getUser Requests to the following request paths will call the backend at the translated path: Request path: /api/company/widgetworks/user/johndoe Translated: https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe", +"The request path will be appended to the backend address. # Examples Given the following operation config: Method path: /api/company/{cid}/user/{uid} Backend address: https://example.appspot.com Requests to the following request paths will call the backend at the translated path: Request path: /api/company/widgetworks/user/johndoe Translated: https://example.appspot.com/api/company/widgetworks/user/johndoe Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST" +], +"type": "string" +}, +"protocol": { +"description": "The protocol used for sending a request to the backend. The supported values are \"http/1.1\" and \"h2\". The default value is inferred from the scheme in the address field: SCHEME PROTOCOL http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure HTTP backends (https://) that support HTTP/2, set this field to \"h2\" for improved performance. Configuring this field to non-default values is only supported for secure HTTP backends. This field will be ignored for all other backends. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for more details on the supported values.", +"type": "string" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Billing": { +"description": "Billing related configuration of the service. The following example shows how to configure monitored resources and metrics for billing, `consumer_destinations` is the only supported destination and the monitored resources need at least one label key `cloud.googleapis.com/location` to indicate the location of the billing usage, using different monitored resources between monitoring and billing is recommended so they can be evolved independently: monitored_resources: - type: library.googleapis.com/billing_branch labels: - key: cloud.googleapis.com/location description: | Predefined label to support billing location restriction. - key: city description: | Custom label to define the city where the library branch is located in. - key: name description: Custom label to define the name of the library branch. metrics: - name: library.googleapis.com/book/borrowed_count metric_kind: DELTA value_type: INT64 unit: \"1\" billing: consumer_destinations: - monitored_resource: library.googleapis.com/billing_branch metrics: - library.googleapis.com/book/borrowed_count", +"id": "Billing", +"properties": { +"consumerDestinations": { +"description": "Billing configurations for sending metrics to the consumer project. There can be multiple consumer destinations per service, each one must have a different monitored resource type. A metric can be used in at most one consumer destination.", +"items": { +"$ref": "BillingDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"BillingDestination": { +"description": "Configuration of a specific billing destination (Currently only support bill against consumer project).", +"id": "BillingDestination", +"properties": { +"metrics": { +"description": "Names of the metrics to report to this billing destination. Each name must be defined in Service.metrics section.", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"ClientLibrarySettings": { +"description": "Details about how and where to publish client libraries.", +"id": "ClientLibrarySettings", +"properties": { +"cppSettings": { +"$ref": "CppSettings", +"description": "Settings for C++ client libraries." +}, +"dotnetSettings": { +"$ref": "DotnetSettings", +"description": "Settings for .NET client libraries." +}, +"goSettings": { +"$ref": "GoSettings", +"description": "Settings for Go client libraries." +}, +"javaSettings": { +"$ref": "JavaSettings", +"description": "Settings for legacy Java features, supported in the Service YAML." +}, +"launchStage": { +"description": "Launch stage of this version of the API.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"nodeSettings": { +"$ref": "NodeSettings", +"description": "Settings for Node client libraries." +}, +"phpSettings": { +"$ref": "PhpSettings", +"description": "Settings for PHP client libraries." +}, +"pythonSettings": { +"$ref": "PythonSettings", +"description": "Settings for Python client libraries." +}, +"restNumericEnums": { +"description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", +"type": "boolean" +}, +"rubySettings": { +"$ref": "RubySettings", +"description": "Settings for Ruby client libraries." +}, +"version": { +"description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", +"type": "string" +} +}, +"type": "object" +}, +"CloudSQLConfig": { +"description": "Cloud SQL configuration.", +"id": "CloudSQLConfig", +"properties": { +"service": { +"description": "Peering service used for peering with the Cloud SQL project.", +"type": "string" +}, +"umbrellaNetwork": { +"description": "The name of the umbrella network in the Cloud SQL umbrella project.", +"type": "string" +}, +"umbrellaProject": { +"description": "The project number of the Cloud SQL umbrella project.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CommonLanguageSettings": { +"description": "Required information for every language.", +"id": "CommonLanguageSettings", +"properties": { +"destinations": { +"description": "The destination where API teams want this client library to be published.", +"items": { +"enum": [ +"CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", +"GITHUB", +"PACKAGE_MANAGER" +], +"enumDescriptions": [ +"Client libraries will neither be generated nor published to package managers.", +"Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", +"Publish the library to package managers like nuget.org and npmjs.com." +], +"type": "string" +}, +"type": "array" +}, +"referenceDocsUri": { +"deprecated": true, +"description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", +"type": "string" +}, +"selectiveGapicGeneration": { +"$ref": "SelectiveGapicGeneration", +"description": "Configuration for which RPCs should be generated in the GAPIC client." +} +}, +"type": "object" +}, +"Connection": { +"description": "Represents a private connection resource. A private connection is implemented as a VPC Network Peering connection between a service producer's VPC network and a service consumer's VPC network.", +"id": "Connection", +"properties": { +"network": { +"description": "The name of service consumer's VPC network that's connected with service producer network, in the following format: `projects/{project}/global/networks/{network}`. `{project}` is a project number, such as in `12345` that includes the VPC service consumer's VPC network. `{network}` is the name of the service consumer's VPC network.", +"type": "string" +}, +"peering": { +"description": "Output only. The name of the VPC Network Peering connection that was created by the service producer.", +"readOnly": true, +"type": "string" +}, +"reservedPeeringRanges": { +"description": "The name of one or more allocated IP address ranges for this service producer of type `PEERING`. Note that invoking CreateConnection method with a different range when connection is already established will not modify already provisioned service producer subnetworks. If CreateConnection method is invoked repeatedly to reconnect when peering connection had been disconnected on the consumer side, leaving this field empty will restore previously allocated IP ranges.", +"items": { +"type": "string" +}, +"type": "array" +}, +"service": { +"description": "Output only. The name of the peering service that's associated with this connection, in the following format: `services/{service name}`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConsumerConfig": { +"description": "Configuration information for a private service access connection.", +"id": "ConsumerConfig", +"properties": { +"cloudsqlConfigs": { +"description": "Represents one or multiple Cloud SQL configurations.", +"items": { +"$ref": "CloudSQLConfig" +}, +"type": "array" +}, +"consumerExportCustomRoutes": { +"description": "Export custom routes flag value for peering from consumer to producer.", +"type": "boolean" +}, +"consumerExportSubnetRoutesWithPublicIp": { +"description": "Export subnet routes with public ip flag value for peering from consumer to producer.", +"type": "boolean" +}, +"consumerImportCustomRoutes": { +"description": "Import custom routes flag value for peering from consumer to producer.", +"type": "boolean" +}, +"consumerImportSubnetRoutesWithPublicIp": { +"description": "Import subnet routes with public ip flag value for peering from consumer to producer.", +"type": "boolean" +}, +"producerExportCustomRoutes": { +"description": "Export custom routes flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerExportSubnetRoutesWithPublicIp": { +"description": "Export subnet routes with public ip flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerImportCustomRoutes": { +"description": "Import custom routes flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerImportSubnetRoutesWithPublicIp": { +"description": "Import subnet routes with public ip flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerNetwork": { +"description": "Output only. The VPC host network that is used to host managed service instances. In the format, projects/{project}/global/networks/{network} where {project} is the project number e.g. '12345' and {network} is the network name.", +"readOnly": true, +"type": "string" +}, +"reservedRanges": { +"description": "Output only. The reserved ranges associated with this private service access connection.", +"items": { +"$ref": "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange" +}, +"readOnly": true, +"type": "array" +}, +"usedIpRanges": { +"description": "Output only. The IP ranges already in use by consumer or producer", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"vpcScReferenceArchitectureEnabled": { +"description": "Output only. Indicates whether the VPC Service Controls reference architecture is configured for the producer VPC host network.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"ConsumerConfigMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by UpdateConsumerConfig API.", +"id": "ConsumerConfigMetadata", +"properties": {}, +"type": "object" +}, +"Context": { +"description": "`Context` defines which contexts an API requests. Example: context: rules: - selector: \"*\" requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using \u201cx-goog-ext--bin\u201d and \u201cx-goog-ext--jspb\u201d format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here.", +"id": "Context", +"properties": { +"rules": { +"description": "A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "ContextRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContextRule": { +"description": "A context rule provides information about the context for an individual API element.", +"id": "ContextRule", +"properties": { +"allowedRequestExtensions": { +"description": "A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowedResponseExtensions": { +"description": "A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.", +"items": { +"type": "string" +}, +"type": "array" +}, +"provided": { +"description": "A list of full type names of provided contexts. It is used to support propagating HTTP headers and ETags from the response extension.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requested": { +"description": "A list of full type names of requested contexts, only the requested context will be made available to the backend.", +"items": { +"type": "string" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Control": { +"description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", +"id": "Control", +"properties": { +"environment": { +"description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", +"type": "string" +}, +"methodPolicies": { +"description": "Defines policies applying to the API methods of the service.", +"items": { +"$ref": "MethodPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"CppSettings": { +"description": "Settings for C++ client libraries.", +"id": "CppSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"CustomError": { +"description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", +"id": "CustomError", +"properties": { +"rules": { +"description": "The list of custom error rules that apply to individual API messages. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "CustomErrorRule" +}, +"type": "array" +}, +"types": { +"description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomErrorRule": { +"description": "A custom error rule.", +"id": "CustomErrorRule", +"properties": { +"isErrorType": { +"description": "Mark this message as possible payload in error response. Otherwise, objects of this type will be filtered when they appear in error payload.", +"type": "boolean" +}, +"selector": { +"description": "Selects messages to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"CustomHttpPattern": { +"description": "A custom pattern is used for defining custom HTTP verb.", +"id": "CustomHttpPattern", +"properties": { +"kind": { +"description": "The name of this custom HTTP verb.", +"type": "string" +}, +"path": { +"description": "The path matched by this custom verb.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteConnectionMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by Delete Connection API", +"id": "DeleteConnectionMetadata", +"properties": {}, +"type": "object" +}, +"DeletePeeredDnsDomainMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by DeletePeeredDnsDomain API.", +"id": "DeletePeeredDnsDomainMetadata", +"properties": {}, +"type": "object" +}, +"DnsRecordSet": { +"description": "Represents a DNS record set resource.", +"id": "DnsRecordSet", +"properties": { +"data": { +"description": "Required. As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) for examples see https://cloud.google.com/dns/records/json-record.", +"items": { +"type": "string" +}, +"type": "array" +}, +"domain": { +"description": "Required. The DNS or domain name of the record set, e.g. `test.example.com`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"ttl": { +"description": "Required. The period of time for which this RecordSet can be cached by resolvers.", +"format": "google-duration", +"type": "string" +}, +"type": { +"description": "Required. The identifier of a supported record type.", +"type": "string" +} +}, +"type": "object" +}, +"DnsZone": { +"description": "Represents a DNS zone resource.", +"id": "DnsZone", +"properties": { +"dnsSuffix": { +"description": "The DNS name suffix of this zone e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"name": { +"description": "User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.", +"type": "string" +} +}, +"type": "object" +}, +"Documentation": { +"description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", +"id": "Documentation", +"properties": { +"additionalIamInfo": { +"description": "Optional information about the IAM configuration. This is typically used to link to documentation about a product's IAM roles and permissions.", +"type": "string" +}, +"documentationRootUrl": { +"description": "The URL to the root of documentation.", +"type": "string" +}, +"overview": { +"description": "Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.", +"type": "string" +}, +"pages": { +"description": "The top level pages for the documentation set.", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"rules": { +"description": "A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "DocumentationRule" +}, +"type": "array" +}, +"sectionOverrides": { +"description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"serviceRootUrl": { +"description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", +"type": "string" +}, +"summary": { +"description": "A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.", +"type": "string" +} +}, +"type": "object" +}, +"DocumentationRule": { +"description": "A documentation rule provides information about individual API elements.", +"id": "DocumentationRule", +"properties": { +"deprecationDescription": { +"description": "Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.", +"type": "string" +}, +"description": { +"description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", +"type": "string" +}, +"disableReplacementWords": { +"description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", +"type": "string" +}, +"selector": { +"description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", +"type": "string" +} +}, +"type": "object" +}, +"DotnetSettings": { +"description": "Settings for Dotnet client libraries.", +"id": "DotnetSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"forcedNamespaceAliases": { +"description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", +"items": { +"type": "string" +}, +"type": "array" +}, +"handwrittenSignatures": { +"description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoredResources": { +"description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"renamedResources": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", +"type": "object" +}, +"renamedServices": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", +"type": "object" +} +}, +"type": "object" +}, +"Endpoint": { +"description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", +"id": "Endpoint", +"properties": { +"aliases": { +"description": "Aliases for this endpoint, these will be served by the same UrlMap as the parent endpoint, and will be provisioned in the GCP stack for the Regional Endpoints.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowCors": { +"description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", +"type": "boolean" +}, +"name": { +"description": "The canonical name of this endpoint.", +"type": "string" +}, +"target": { +"description": "The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, \"8.8.8.8\" or \"myservice.appspot.com\".", +"type": "string" +} +}, +"type": "object" +}, +"Enum": { +"description": "Enum type definition.", +"id": "Enum", +"properties": { +"edition": { +"description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", +"type": "string" +}, +"enumvalue": { +"description": "Enum value definitions.", +"items": { +"$ref": "EnumValue" +}, +"type": "array" +}, +"name": { +"description": "Enum type name.", +"type": "string" +}, +"options": { +"description": "Protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "The source context." +}, +"syntax": { +"description": "The source syntax.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"EnumValue": { +"description": "Enum value definition.", +"id": "EnumValue", +"properties": { +"name": { +"description": "Enum value name.", +"type": "string" +}, +"number": { +"description": "Enum value number.", +"format": "int32", +"type": "integer" +}, +"options": { +"description": "Protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExperimentalFeatures": { +"description": "Experimental features to be included during client library generation. These fields will be deprecated once the feature graduates and is enabled by default.", +"id": "ExperimentalFeatures", +"properties": { +"protobufPythonicTypesEnabled": { +"description": "Enables generation of protobuf code using new types that are more Pythonic which are included in `protobuf>=5.29.x`. This feature will be enabled by default 1 month after launching the feature in preview packages.", +"type": "boolean" +}, +"restAsyncIoEnabled": { +"description": "Enables generation of asynchronous REST clients if `rest` transport is enabled. By default, asynchronous REST clients will not be generated. This feature will be enabled by default 1 month after launching the feature in preview packages.", +"type": "boolean" +} +}, +"type": "object" +}, +"Field": { +"description": "A single field of a message type.", +"id": "Field", +"properties": { +"cardinality": { +"description": "The field cardinality.", +"enum": [ +"CARDINALITY_UNKNOWN", +"CARDINALITY_OPTIONAL", +"CARDINALITY_REQUIRED", +"CARDINALITY_REPEATED" +], +"enumDescriptions": [ +"For fields with unknown cardinality.", +"For optional fields.", +"For required fields. Proto2 syntax only.", +"For repeated fields." +], +"type": "string" +}, +"defaultValue": { +"description": "The string value of the default value of this field. Proto2 syntax only.", +"type": "string" +}, +"jsonName": { +"description": "The field JSON name.", +"type": "string" +}, +"kind": { +"description": "The field type.", +"enum": [ +"TYPE_UNKNOWN", +"TYPE_DOUBLE", +"TYPE_FLOAT", +"TYPE_INT64", +"TYPE_UINT64", +"TYPE_INT32", +"TYPE_FIXED64", +"TYPE_FIXED32", +"TYPE_BOOL", +"TYPE_STRING", +"TYPE_GROUP", +"TYPE_MESSAGE", +"TYPE_BYTES", +"TYPE_UINT32", +"TYPE_ENUM", +"TYPE_SFIXED32", +"TYPE_SFIXED64", +"TYPE_SINT32", +"TYPE_SINT64" +], +"enumDescriptions": [ +"Field type unknown.", +"Field type double.", +"Field type float.", +"Field type int64.", +"Field type uint64.", +"Field type int32.", +"Field type fixed64.", +"Field type fixed32.", +"Field type bool.", +"Field type string.", +"Field type group. Proto2 syntax only, and deprecated.", +"Field type message.", +"Field type bytes.", +"Field type uint32.", +"Field type enum.", +"Field type sfixed32.", +"Field type sfixed64.", +"Field type sint32.", +"Field type sint64." +], +"type": "string" +}, +"name": { +"description": "The field name.", +"type": "string" +}, +"number": { +"description": "The field number.", +"format": "int32", +"type": "integer" +}, +"oneofIndex": { +"description": "The index of the field type in `Type.oneofs`, for message or enumeration types. The first type has index 1; zero means the type is not in the list.", +"format": "int32", +"type": "integer" +}, +"options": { +"description": "The protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"packed": { +"description": "Whether to use alternative packed wire representation.", +"type": "boolean" +}, +"typeUrl": { +"description": "The field type URL, without the scheme, for message or enumeration types. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.", +"type": "string" +} +}, +"type": "object" +}, +"FieldPolicy": { +"description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", +"id": "FieldPolicy", +"properties": { +"resourcePermission": { +"description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", +"type": "string" +}, +"resourceType": { +"description": "Specifies the resource type for the resource referred to by the field.", +"type": "string" +}, +"selector": { +"description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", +"type": "string" +} +}, +"type": "object" +}, +"GoSettings": { +"description": "Settings for Go client libraries.", +"id": "GoSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"renamedServices": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of service names to renamed services. Keys are the package relative service names and values are the name to be used for the service client and call options. publishing: go_settings: renamed_services: Publisher: TopicAdmin", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudServicenetworkingV1ConsumerConfigReservedRange": { +"description": "Allocated IP address ranges for this private service access connection.", +"id": "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange", +"properties": { +"address": { +"description": "The starting address of the reserved range. The address must be a valid IPv4 address in the x.x.x.x format. This value combined with the IP prefix length is the CIDR range for the reserved range.", +"type": "string" +}, +"ipPrefixLength": { +"description": "The prefix length of the reserved range.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of the reserved range.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudServicenetworkingV1betaConnection": { +"description": "Represents a private connection resource. A private connection is implemented as a VPC Network Peering connection between a service producer's VPC network and a service consumer's VPC network.", +"id": "GoogleCloudServicenetworkingV1betaConnection", +"properties": { +"network": { +"description": "The name of service consumer's VPC network that's connected with service producer network, in the following format: `projects/{project}/global/networks/{network}`. `{project}` is a project number, such as in `12345` that includes the VPC service consumer's VPC network. `{network}` is the name of the service consumer's VPC network.", +"type": "string" +}, +"peering": { +"description": "Output only. The name of the VPC Network Peering connection that was created by the service producer.", +"type": "string" +}, +"reservedPeeringRanges": { +"description": "The name of one or more allocated IP address ranges for this service producer of type `PEERING`. Note that invoking this method with a different range when connection is already established will not modify already provisioned service producer subnetworks.", +"items": { +"type": "string" +}, +"type": "array" +}, +"service": { +"description": "Output only. The name of the peering service that's associated with this connection, in the following format: `services/{service name}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudServicenetworkingV1betaSubnetwork": { +"description": "Represents a subnet that was created or discovered by a private access management service.", +"id": "GoogleCloudServicenetworkingV1betaSubnetwork", +"properties": { +"ipCidrRange": { +"description": "Subnetwork CIDR range in `10.x.x.x/y` format.", +"type": "string" +}, +"name": { +"description": "Subnetwork name. See https://cloud.google.com/compute/docs/vpc/", +"type": "string" +}, +"network": { +"description": "In the Shared VPC host project, the VPC network that's peered with the consumer network. For example: `projects/1234321/global/networks/host-network`", +"type": "string" +}, +"outsideAllocation": { +"description": "This is a discovered subnet that is not within the current consumer allocated ranges.", +"type": "boolean" +} +}, +"type": "object" +}, +"Http": { +"description": "Defines the HTTP configuration for an API service. It contains a list of HttpRule, each specifying the mapping of an RPC method to one or more HTTP REST API methods.", +"id": "Http", +"properties": { +"fullyDecodeReservedExpansion": { +"description": "When set to true, URL path parameters will be fully URI-decoded except in cases of single segment matches in reserved expansion, where \"%2F\" will be left encoded. The default behavior is to not decode RFC 6570 reserved characters in multi segment matches.", +"type": "boolean" +}, +"rules": { +"description": "A list of HTTP configuration rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "HttpRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpRule": { +"description": "gRPC Transcoding gRPC Transcoding is a feature for mapping between a gRPC method and one or more HTTP REST endpoints. It allows developers to build a single API service that supports both gRPC APIs and REST APIs. Many systems, including [Google APIs](https://github.com/googleapis/googleapis), [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC Gateway](https://github.com/grpc-ecosystem/grpc-gateway), and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature and use it for large scale production services. `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies how different portions of the gRPC request message are mapped to the URL path, URL query parameters, and HTTP request body. It also controls how the gRPC response message is mapped to the HTTP response body. `HttpRule` is typically specified as an `google.api.http` annotation on the gRPC method. Each mapping specifies a URL path template and an HTTP method. The path template may refer to one or more fields in the gRPC request message, as long as each field is a non-repeated field with a primitive (non-message) type. The path template controls how fields of the request message are mapped to the URL path. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: \"/v1/{name=messages/*}\" }; } } message GetMessageRequest { string name = 1; // Mapped to URL path. } message Message { string text = 1; // The resource content. } This enables an HTTP REST to gRPC mapping as below: - HTTP: `GET /v1/messages/123456` - gRPC: `GetMessage(name: \"messages/123456\")` Any fields in the request message which are not bound by the path template automatically become HTTP query parameters if there is no HTTP request body. For example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get:\"/v1/messages/{message_id}\" }; } } message GetMessageRequest { message SubMessage { string subfield = 1; } string message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL query parameter `revision`. SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. } This enables a HTTP JSON to RPC mapping as below: - HTTP: `GET /v1/messages/123456?revision=2&sub.subfield=foo` - gRPC: `GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield: \"foo\"))` Note that fields which are mapped to URL query parameters must have a primitive type or a repeated primitive type or a non-repeated message type. In the case of a repeated type, the parameter can be repeated in the URL as `...?param=A¶m=B`. In the case of a message type, each field of the message is mapped to a separate parameter, such as `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request body, the `body` field specifies the mapping. Consider a REST update method on the message resource collection: service Messaging { rpc UpdateMessage(UpdateMessageRequest) returns (Message) { option (google.api.http) = { patch: \"/v1/messages/{message_id}\" body: \"message\" }; } } message UpdateMessageRequest { string message_id = 1; // mapped to the URL Message message = 2; // mapped to the body } The following HTTP JSON to RPC mapping is enabled, where the representation of the JSON in the request body is determined by protos JSON encoding: - HTTP: `PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` - gRPC: `UpdateMessage(message_id: \"123456\" message { text: \"Hi!\" })` The special name `*` can be used in the body mapping to define that every field not bound by the path template should be mapped to the request body. This enables the following alternative definition of the update method: service Messaging { rpc UpdateMessage(Message) returns (Message) { option (google.api.http) = { patch: \"/v1/messages/{message_id}\" body: \"*\" }; } } message Message { string message_id = 1; string text = 2; } The following HTTP JSON to RPC mapping is enabled: - HTTP: `PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` - gRPC: `UpdateMessage(message_id: \"123456\" text: \"Hi!\")` Note that when using `*` in the body mapping, it is not possible to have HTTP parameters, as all fields not bound by the path end in the body. This makes this option more rarely used in practice when defining REST APIs. The common usage of `*` is in custom methods which don't use the URL at all for transferring data. It is possible to define multiple HTTP methods for one RPC by using the `additional_bindings` option. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: \"/v1/messages/{message_id}\" additional_bindings { get: \"/v1/users/{user_id}/messages/{message_id}\" } }; } } message GetMessageRequest { string message_id = 1; string user_id = 2; } This enables the following two alternative HTTP JSON to RPC mappings: - HTTP: `GET /v1/messages/123456` - gRPC: `GetMessage(message_id: \"123456\")` - HTTP: `GET /v1/users/me/messages/123456` - gRPC: `GetMessage(user_id: \"me\" message_id: \"123456\")` Rules for HTTP mapping 1. Leaf request fields (recursive expansion nested messages in the request message) are classified into three categories: - Fields referred by the path template. They are passed via the URL path. - Fields referred by the HttpRule.body. They are passed via the HTTP request body. - All other fields are passed via the URL query parameters, and the parameter name is the field path in the request message. A repeated field can be represented as multiple query parameters under the same name. 2. If HttpRule.body is \"*\", there is no URL query parameter, all fields are passed via URL path and HTTP request body. 3. If HttpRule.body is omitted, there is no HTTP request body, all fields are passed via URL path and URL query parameters. Path template syntax Template = \"/\" Segments [ Verb ] ; Segments = Segment { \"/\" Segment } ; Segment = \"*\" | \"**\" | LITERAL | Variable ; Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ; FieldPath = IDENT { \".\" IDENT } ; Verb = \":\" LITERAL ; The syntax `*` matches a single URL path segment. The syntax `**` matches zero or more URL path segments, which must be the last part of the URL path except the `Verb`. The syntax `Variable` matches part of the URL path as specified by its template. A variable template must not contain other variables. If a variable matches a single path segment, its template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` contains any reserved character, such characters should be percent-encoded before the matching. If a variable contains exactly one path segment, such as `\"{var}\"` or `\"{var=*}\"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{var}`. If a variable contains multiple path segments, such as `\"{var=foo/*}\"` or `\"{var=**}\"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding, except \"%2F\" and \"%2f\" are left unchanged. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{+var}`. Using gRPC API Service Configuration gRPC API Service Configuration (service config) is a configuration language for configuring a gRPC service to become a user-facing product. The service config is simply the YAML representation of the `google.api.Service` proto message. As an alternative to annotating your proto file, you can configure gRPC transcoding in your service config YAML files. You do this by specifying a `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same effect as the proto annotation. This can be particularly useful if you have a proto that is reused in multiple services. Note that any transcoding specified in the service config will override any matching transcoding configuration in the proto. The following example selects a gRPC method and applies an `HttpRule` to it: http: rules: - selector: example.v1.Messaging.GetMessage get: /v1/messages/{message_id}/{sub.subfield} Special notes When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the proto to JSON conversion must follow the [proto3 specification](https://developers.google.com/protocol-buffers/docs/proto3#json). While the single segment variable follows the semantics of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String Expansion, the multi segment variable **does not** follow RFC 6570 Section 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion does not expand special characters like `?` and `#`, which would lead to invalid URLs. As the result, gRPC Transcoding uses a custom encoding for multi segment variables. The path variables **must not** refer to any repeated or mapped field, because client libraries are not capable of handling such variable expansion. The path variables **must not** capture the leading \"/\" character. The reason is that the most common use case \"{var}\" does not capture the leading \"/\" character. For consistency, all path variables must share the same behavior. Repeated message fields must not be mapped to URL query parameters, because no client library can support such complicated mapping. If an API needs to use a JSON array for request or response body, it can map the request or response body to a repeated field. However, some gRPC Transcoding implementations may not support this feature.", +"id": "HttpRule", +"properties": { +"additionalBindings": { +"description": "Additional HTTP bindings for the selector. Nested bindings must not contain an `additional_bindings` field themselves (that is, the nesting may only be one level deep).", +"items": { +"$ref": "HttpRule" +}, +"type": "array" +}, +"body": { +"description": "The name of the request field whose value is mapped to the HTTP request body, or `*` for mapping all request fields not captured by the path pattern to the HTTP body, or omitted for not having any HTTP request body. NOTE: the referred field must be present at the top-level of the request message type.", +"type": "string" +}, +"custom": { +"$ref": "CustomHttpPattern", +"description": "The custom pattern is used for specifying an HTTP method that is not included in the `pattern` field, such as HEAD, or \"*\" to leave the HTTP method unspecified for this rule. The wild-card rule is useful for services that provide content to Web (HTML) clients." +}, +"delete": { +"description": "Maps to HTTP DELETE. Used for deleting a resource.", +"type": "string" +}, +"get": { +"description": "Maps to HTTP GET. Used for listing and getting information about resources.", +"type": "string" +}, +"patch": { +"description": "Maps to HTTP PATCH. Used for updating a resource.", +"type": "string" +}, +"post": { +"description": "Maps to HTTP POST. Used for creating a resource or performing an action.", +"type": "string" +}, +"put": { +"description": "Maps to HTTP PUT. Used for replacing a resource.", +"type": "string" +}, +"responseBody": { +"description": "Optional. The name of the response field whose value is mapped to the HTTP response body. When omitted, the entire response message will be used as the HTTP response body. NOTE: The referred field must be present at the top-level of the response message type.", +"type": "string" +}, +"selector": { +"description": "Selects a method to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"JavaSettings": { +"description": "Settings for Java client libraries.", +"id": "JavaSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"libraryPackage": { +"description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", +"type": "string" +}, +"serviceClassNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", +"type": "object" +} +}, +"type": "object" +}, +"JwtLocation": { +"description": "Specifies a location to extract JWT from an API request.", +"id": "JwtLocation", +"properties": { +"cookie": { +"description": "Specifies cookie name to extract JWT token.", +"type": "string" +}, +"header": { +"description": "Specifies HTTP header name to extract JWT token.", +"type": "string" +}, +"query": { +"description": "Specifies URL query parameter name to extract JWT token.", +"type": "string" +}, +"valuePrefix": { +"description": "The value prefix. The value format is \"value_prefix{token}\" Only applies to \"in\" header type. Must be empty for \"in\" query type. If not empty, the header value has to match (case sensitive) this prefix. If not matched, JWT will not be extracted. If matched, JWT will be extracted after the prefix is removed. For example, for \"Authorization: Bearer {JWT}\", value_prefix=\"Bearer \" with a space at the end.", +"type": "string" +} +}, +"type": "object" +}, +"LabelDescriptor": { +"description": "A description of a label.", +"id": "LabelDescriptor", +"properties": { +"description": { +"description": "A human-readable description for the label.", +"type": "string" +}, +"key": { +"description": "The label key.", +"type": "string" +}, +"valueType": { +"description": "The type of data that can be assigned to the label.", +"enum": [ +"STRING", +"BOOL", +"INT64" +], +"enumDescriptions": [ +"A variable-length string. This is the default.", +"Boolean; true or false.", +"A 64-bit signed integer." +], +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionsResponse": { +"description": "ListConnectionsResponse is the response to list peering states for the given service and consumer project.", +"id": "ListConnectionsResponse", +"properties": { +"connections": { +"description": "The list of Connections.", +"items": { +"$ref": "GoogleCloudServicenetworkingV1betaConnection" +}, +"type": "array" +} +}, +"type": "object" +}, +"LogDescriptor": { +"description": "A description of a log type. Example in YAML format: - name: library.googleapis.com/activity_history description: The history of borrowing and returning library items. display_name: Activity labels: - key: /customer_id description: Identifier of a library customer", +"id": "LogDescriptor", +"properties": { +"description": { +"description": "A human-readable description of this log. This information appears in the documentation and can contain details.", +"type": "string" +}, +"displayName": { +"description": "The human-readable name for this log. This information appears on the user interface and should be concise.", +"type": "string" +}, +"labels": { +"description": "The set of labels that are available to describe a specific log entry. Runtime requests that contain labels not specified here are considered invalid.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"name": { +"description": "The name of the log. It must be less than 512 characters long and can include the following characters: upper- and lower-case alphanumeric characters [A-Za-z0-9], and punctuation characters including slash, underscore, hyphen, period [/_-.].", +"type": "string" +} +}, +"type": "object" +}, +"Logging": { +"description": "Logging configuration of the service. The following example shows how to configure logs to be sent to the producer and consumer projects. In the example, the `activity_history` log is sent to both the producer and consumer projects, whereas the `purchase_history` log is only sent to the producer project. monitored_resources: - type: library.googleapis.com/branch labels: - key: /city description: The city where the library branch is located in. - key: /name description: The name of the branch. logs: - name: activity_history labels: - key: /customer_id - name: purchase_history logging: producer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history - purchase_history consumer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history", +"id": "Logging", +"properties": { +"consumerDestinations": { +"description": "Logging configurations for sending logs to the consumer project. There can be multiple consumer destinations, each one must have a different monitored resource type. A log can be used in at most one consumer destination.", +"items": { +"$ref": "LoggingDestination" +}, +"type": "array" +}, +"producerDestinations": { +"description": "Logging configurations for sending logs to the producer project. There can be multiple producer destinations, each one must have a different monitored resource type. A log can be used in at most one producer destination.", +"items": { +"$ref": "LoggingDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoggingDestination": { +"description": "Configuration of a specific logging destination (the producer project or the consumer project).", +"id": "LoggingDestination", +"properties": { +"logs": { +"description": "Names of the logs to be sent to this destination. Each name must be defined in the Service.logs section. If the log name is not a domain scoped name, it will be automatically prefixed with the service name followed by \"/\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in the Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"LongRunning": { +"description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", +"id": "LongRunning", +"properties": { +"initialPollDelay": { +"description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", +"format": "google-duration", +"type": "string" +}, +"maxPollDelay": { +"description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", +"format": "google-duration", +"type": "string" +}, +"pollDelayMultiplier": { +"description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", +"format": "float", +"type": "number" +}, +"totalPollTimeout": { +"description": "Total polling timeout. Default value: 5 minutes.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Method": { +"description": "Method represents a method of an API interface.", +"id": "Method", +"properties": { +"name": { +"description": "The simple name of this method.", +"type": "string" +}, +"options": { +"description": "Any metadata attached to the method.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"requestStreaming": { +"description": "If true, the request is streamed.", +"type": "boolean" +}, +"requestTypeUrl": { +"description": "A URL of the input message type.", +"type": "string" +}, +"responseStreaming": { +"description": "If true, the response is streamed.", +"type": "boolean" +}, +"responseTypeUrl": { +"description": "The URL of the output message type.", +"type": "string" +}, +"syntax": { +"description": "The source syntax of this method.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"MethodPolicy": { +"description": "Defines policies applying to an RPC method.", +"id": "MethodPolicy", +"properties": { +"requestPolicies": { +"description": "Policies that are applicable to the request message.", +"items": { +"$ref": "FieldPolicy" +}, +"type": "array" +}, +"selector": { +"description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", +"type": "string" +} +}, +"type": "object" +}, +"MethodSettings": { +"description": "Describes the generator configuration for a method.", +"id": "MethodSettings", +"properties": { +"autoPopulatedFields": { +"description": "List of top-level fields of the request message, that should be automatically populated by the client libraries based on their (google.api.field_info).format. Currently supported format: UUID4. Example of a YAML configuration: publishing: method_settings: - selector: google.example.v1.ExampleService.CreateExample auto_populated_fields: - request_id", +"items": { +"type": "string" +}, +"type": "array" +}, +"longRunning": { +"$ref": "LongRunning", +"description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" +}, +"selector": { +"description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", +"type": "string" +} +}, +"type": "object" +}, +"MetricDescriptor": { +"description": "Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. ", +"id": "MetricDescriptor", +"properties": { +"description": { +"description": "A detailed description of the metric, which can be used in documentation.", +"type": "string" +}, +"displayName": { +"description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.", +"type": "string" +}, +"labels": { +"description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the `appengine.googleapis.com/http/server/response_latencies` metric type has a label for the HTTP response code, `response_code`, so you can look at latencies for successful responses or just for responses that failed.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"launchStage": { +"description": "Optional. The launch stage of the metric definition.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"metadata": { +"$ref": "MetricDescriptorMetadata", +"description": "Optional. Metadata which can be used to guide usage of the metric." +}, +"metricKind": { +"description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of `metric_kind` and `value_type` might not be supported.", +"enum": [ +"METRIC_KIND_UNSPECIFIED", +"GAUGE", +"DELTA", +"CUMULATIVE" +], +"enumDescriptions": [ +"Do not use this default value.", +"An instantaneous measurement of a value.", +"The change in a value during a time interval.", +"A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." +], +"type": "string" +}, +"monitoredResourceTypes": { +"description": "Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the metric descriptor.", +"type": "string" +}, +"type": { +"description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name `custom.googleapis.com` or `external.googleapis.com`. Metric types should use a natural hierarchical grouping. For example: \"custom.googleapis.com/invoice/paid/amount\" \"external.googleapis.com/prometheus/up\" \"appengine.googleapis.com/http/server/response_latencies\"", +"type": "string" +}, +"unit": { +"description": "The units in which the metric value is reported. It is only applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the representation of the stored metric values. Different systems might scale the values to be more easily displayed (so a value of `0.02kBy` _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of the metric is always in thousands of bytes, no matter how it might be displayed. If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if you want a custom metric to record data in a more granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). The supported units are a subset of [The Unified Code for Units of Measure](https://unitsofmeasure.org/ucum.html) standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these connectors: * `/` division or ratio (as an infix operator). For examples, `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in a metric `unit`; rates should always be computed at query time from the underlying cumulative or delta value). * `.` multiplication or composition (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: Expression = Component { \".\" Component } { \"/\" Component } ; Component = ( [ PREFIX ] UNIT | \"%\" ) [ Annotation ] | Annotation | \"1\" ; Annotation = \"{\" NAME \"}\" ; Notes: * `Annotation` is just a comment if it follows a `UNIT`. If the annotation is used alone, then the unit is equivalent to `1`. For examples, `{request}/s == 1/s`, `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable ASCII characters not containing `{` or `}`. * `1` represents a unitary [dimensionless unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as in `1/s`. It is typically used when none of the basic units are appropriate. For example, \"new users per day\" can be represented as `1/d` or `{new-users}/d` (and a metric value `5` would mean \"5 new users). Alternatively, \"thousands of page views per day\" would be represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would mean \"5300 page views per day\"). * `%` represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value `3` means \"3 percent\"). * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value `0.03` means \"3 percent\").", +"type": "string" +}, +"valueType": { +"description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of `metric_kind` and `value_type` might not be supported.", +"enum": [ +"VALUE_TYPE_UNSPECIFIED", +"BOOL", +"INT64", +"DOUBLE", +"STRING", +"DISTRIBUTION", +"MONEY" +], +"enumDescriptions": [ +"Do not use this default value.", +"The value is a boolean. This value type can be used only if the metric kind is `GAUGE`.", +"The value is a signed 64-bit integer.", +"The value is a double precision floating point number.", +"The value is a text string. This value type can be used only if the metric kind is `GAUGE`.", +"The value is a `Distribution`.", +"The value is money." +], +"type": "string" +} +}, +"type": "object" +}, +"MetricDescriptorMetadata": { +"description": "Additional annotations that can be used to guide the usage of a metric.", +"id": "MetricDescriptorMetadata", +"properties": { +"ingestDelay": { +"description": "The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors.", +"format": "google-duration", +"type": "string" +}, +"launchStage": { +"deprecated": true, +"description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"samplePeriod": { +"description": "The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period.", +"format": "google-duration", +"type": "string" +}, +"timeSeriesResourceHierarchyLevel": { +"description": "The scope of the timeseries data of the metric.", +"items": { +"enum": [ +"TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED", +"PROJECT", +"ORGANIZATION", +"FOLDER" +], +"enumDescriptions": [ +"Do not use this default value.", +"Scopes a metric to a project.", +"Scopes a metric to an organization.", +"Scopes a metric to a folder." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"MetricRule": { +"description": "Bind API methods to metrics. Binding a method to a metric causes that metric's configured quota behaviors to apply to the method call.", +"id": "MetricRule", +"properties": { +"metricCosts": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Metrics to update when the selected methods are called, and the associated cost applied to each metric. The key of the map is the metric name, and the values are the amount increased for the metric against which the quota limits are defined. The value must not be negative.", +"type": "object" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Mixin": { +"description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", +"id": "Mixin", +"properties": { +"name": { +"description": "The fully qualified name of the interface which is included.", +"type": "string" +}, +"root": { +"description": "If non-empty specifies a path under which inherited HTTP paths are rooted.", +"type": "string" +} +}, +"type": "object" +}, +"MonitoredResourceDescriptor": { +"description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and `\"zone\"` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API. ", +"id": "MonitoredResourceDescriptor", +"properties": { +"description": { +"description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", +"type": "string" +}, +"displayName": { +"description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `\"Google Cloud SQL Database\"`.", +"type": "string" +}, +"labels": { +"description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `\"database_id\"` and `\"zone\"`.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"launchStage": { +"description": "Optional. The launch stage of the monitored resource definition.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"name": { +"description": "Optional. The resource name of the monitored resource descriptor: `\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `\"monitoredResourceDescriptors/{type}\"`.", +"type": "string" +}, +"type": { +"description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", +"type": "string" +} +}, +"type": "object" +}, +"Monitoring": { +"description": "Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: \"Library Branch\" description: \"A branch of a library.\" launch_stage: GA labels: - key: resource_container description: \"The Cloud container (ie. project id) for the Branch.\" - key: location description: \"The location of the library branch.\" - key: branch_id description: \"The id of the branch.\" metrics: - name: library.googleapis.com/book/returned_count display_name: \"Books Returned\" description: \"The count of books that have been returned.\" launch_stage: GA metric_kind: DELTA value_type: INT64 unit: \"1\" labels: - key: customer_id description: \"The id of the customer.\" - name: library.googleapis.com/book/num_overdue display_name: \"Books Overdue\" description: \"The current number of overdue books.\" launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: \"1\" labels: - key: customer_id description: \"The id of the customer.\" monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue", +"id": "Monitoring", +"properties": { +"consumerDestinations": { +"description": "Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.", +"items": { +"$ref": "MonitoringDestination" +}, +"type": "array" +}, +"producerDestinations": { +"description": "Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.", +"items": { +"$ref": "MonitoringDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"MonitoringDestination": { +"description": "Configuration of a specific monitoring destination (the producer project or the consumer project).", +"id": "MonitoringDestination", +"properties": { +"metrics": { +"description": "Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"NodeSettings": { +"description": "Settings for Node client libraries.", +"id": "NodeSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"OAuthRequirements": { +"description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", +"id": "OAuthRequirements", +"properties": { +"canonicalScopes": { +"description": "The list of publicly documented OAuth scopes that are allowed access. An OAuth token containing any of these scopes will be accepted. Example: canonical_scopes: https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/calendar.read", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Option": { +"description": "A protocol buffer option, which can be attached to a message, field, enumeration, etc.", +"id": "Option", +"properties": { +"name": { +"description": "The option's name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `\"map_entry\"`. For custom options, it should be the fully-qualified name. For example, `\"google.api.http\"`.", +"type": "string" +}, +"value": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The option's value packed in an Any message. If the value is a primitive, the corresponding wrapper type defined in google/protobuf/wrappers.proto should be used. If the value is an enum, it should be stored as an int32 value using the google.protobuf.Int32Value type.", +"type": "object" +} +}, +"type": "object" +}, +"Page": { +"description": "Represents a documentation page. A page can contain subpages to represent nested documentation set structure.", +"id": "Page", +"properties": { +"content": { +"description": "The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.", +"type": "string" +}, +"name": { +"description": "The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.", +"type": "string" +}, +"subpages": { +"description": "Subpages of this page. The order of subpages specified here will be honored in the generated docset.", +"items": { +"$ref": "Page" +}, +"type": "array" +} +}, +"type": "object" +}, +"PartialDeleteConnectionMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by Partial Delete Connection API", +"id": "PartialDeleteConnectionMetadata", +"properties": {}, +"type": "object" +}, +"PeeredDnsDomain": { +"description": "DNS domain suffix for which requests originating in the producer VPC network are resolved in the associated consumer VPC network.", +"id": "PeeredDnsDomain", +"properties": { +"dnsSuffix": { +"description": "The DNS domain name suffix e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"name": { +"description": "User assigned name for this resource. Must be unique within the consumer network. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.", +"type": "string" +} +}, +"type": "object" +}, +"PeeredDnsDomainMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by CreatePeeredDnsDomain API.", +"id": "PeeredDnsDomainMetadata", +"properties": {}, +"type": "object" +}, +"PhpSettings": { +"description": "Settings for Php client libraries.", +"id": "PhpSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"PolicyBinding": { +"description": "Grouping of IAM role and IAM member.", +"id": "PolicyBinding", +"properties": { +"member": { +"description": "Required. Member to bind the role with. See /iam/docs/reference/rest/v1/Policy#Binding for how to format each member. Eg. - user:myuser@mydomain.com - serviceAccount:my-service-account@app.gserviceaccount.com", +"type": "string" +}, +"role": { +"description": "Required. Role to apply. Only allowlisted roles can be used at the specified granularity. The role must be one of the following: - 'roles/container.hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.securityAdmin' applied on the shared VPC host project - 'roles/compute.networkAdmin' applied on the shared VPC host project - 'roles/tpu.xpnAgent' applied on the shared VPC host project - 'roles/dns.admin' applied on the shared VPC host project - 'roles/logging.admin' applied on the shared VPC host project - 'roles/monitoring.viewer' applied on the shared VPC host project - 'roles/servicemanagement.quotaViewer' applied on the shared VPC host project", +"type": "string" +} +}, +"type": "object" +}, +"Publishing": { +"description": "This message configures the settings for publishing [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from the service config.", +"id": "Publishing", +"properties": { +"apiShortName": { +"description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", +"type": "string" +}, +"codeownerGithubTeams": { +"description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", +"items": { +"type": "string" +}, +"type": "array" +}, +"docTagPrefix": { +"description": "A prefix used in sample code when demarking regions to be included in documentation.", +"type": "string" +}, +"documentationUri": { +"description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", +"type": "string" +}, +"githubLabel": { +"description": "GitHub label to apply to issues and pull requests opened for this API.", +"type": "string" +}, +"librarySettings": { +"description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", +"items": { +"$ref": "ClientLibrarySettings" +}, +"type": "array" +}, +"methodSettings": { +"description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", +"items": { +"$ref": "MethodSettings" +}, +"type": "array" +}, +"newIssueUri": { +"description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", +"type": "string" +}, +"organization": { +"description": "For whom the client library is being published.", +"enum": [ +"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", +"CLOUD", +"ADS", +"PHOTOS", +"STREET_VIEW", +"SHOPPING", +"GEO", +"GENERATIVE_AI" +], +"enumDescriptions": [ +"Not useful.", +"Google Cloud Platform Org.", +"Ads (Advertising) Org.", +"Photos Org.", +"Street View Org.", +"Shopping Org.", +"Geo Org.", +"Generative AI - https://developers.generativeai.google" +], +"type": "string" +}, +"protoReferenceDocumentationUri": { +"description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", +"type": "string" +}, +"restReferenceDocumentationUri": { +"description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", +"type": "string" +} +}, +"type": "object" +}, +"PythonSettings": { +"description": "Settings for Python client libraries.", +"id": "PythonSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"experimentalFeatures": { +"$ref": "ExperimentalFeatures", +"description": "Experimental features to be included during client library generation." +} +}, +"type": "object" +}, +"Quota": { +"description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", +"id": "Quota", +"properties": { +"limits": { +"description": "List of QuotaLimit definitions for the service.", +"items": { +"$ref": "QuotaLimit" +}, +"type": "array" +}, +"metricRules": { +"description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", +"items": { +"$ref": "MetricRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"QuotaLimit": { +"description": "`QuotaLimit` defines a specific limit that applies over a specified duration for a limit type. There can be at most one limit for a duration and limit type combination defined within a `QuotaGroup`.", +"id": "QuotaLimit", +"properties": { +"defaultLimit": { +"description": "Default number of tokens that can be consumed during the specified duration. This is the number of tokens assigned when a client application developer activates the service for his/her project. Specifying a value of 0 will block all requests. This can be used if you are provisioning quota to selected consumers and blocking others. Similarly, a value of -1 will indicate an unlimited quota. No other negative values are allowed. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Optional. User-visible, extended description for this quota limit. Should be used only when more context is needed to understand this limit than provided by the limit's display name (see: `display_name`).", +"type": "string" +}, +"displayName": { +"description": "User-visible display name for this limit. Optional. If not set, the UI will provide a default display name based on the quota configuration. This field can be used to override the default display name generated from the configuration.", +"type": "string" +}, +"duration": { +"description": "Duration of this limit in textual notation. Must be \"100s\" or \"1d\". Used by group-based quotas only.", +"type": "string" +}, +"freeTier": { +"description": "Free tier value displayed in the Developers Console for this limit. The free tier is the number of tokens that will be subtracted from the billed amount when billing is enabled. This field can only be set on a limit with duration \"1d\", in a billable group; it is invalid on any other limit. If this field is not set, it defaults to 0, indicating that there is no free tier for this service. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"maxLimit": { +"description": "Maximum number of tokens that can be consumed during the specified duration. Client application developers can override the default limit up to this maximum. If specified, this value cannot be set to a value less than the default limit. If not specified, it is set to the default limit. To allow clients to apply overrides with no upper bound, set this to -1, indicating unlimited maximum quota. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"metric": { +"description": "The name of the metric this quota limit applies to. The quota limits with the same metric will be checked together during runtime. The metric must be defined within the service config.", +"type": "string" +}, +"name": { +"description": "Name of the quota limit. The name must be provided, and it must be unique within the service. The name can only include alphanumeric characters as well as '-'. The maximum length of the limit name is 64 characters.", +"type": "string" +}, +"unit": { +"description": "Specify the unit of the quota limit. It uses the same syntax as MetricDescriptor.unit. The supported unit kinds are determined by the quota backend system. Here are some examples: * \"1/min/{project}\" for quota per minute per project. Note: the order of unit components is insignificant. The \"1\" at the beginning is required to follow the metric unit syntax.", +"type": "string" +}, +"values": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Tiered limit values. You must specify this as a key:value pair, with an integer value that is the maximum number of requests allowed for the specified unit. Currently only STANDARD is supported.", +"type": "object" +} +}, +"type": "object" +}, +"Range": { +"description": "Represents a found unused range.", +"id": "Range", +"properties": { +"ipCidrRange": { +"description": "CIDR range in \"10.x.x.x/y\" format that is within the allocated ranges and currently unused.", +"type": "string" +}, +"network": { +"description": "In the Shared VPC host project, the VPC network that's peered with the consumer network. For example: `projects/1234321/global/networks/host-network`", +"type": "string" +} +}, +"type": "object" +}, +"RemoveDnsRecordSetMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by RemoveDnsRecordSet API", +"id": "RemoveDnsRecordSetMetadata", +"properties": {}, +"type": "object" +}, +"RemoveDnsRecordSetResponse": { +"description": "Blank message response type for RemoveDnsRecordSet API", +"id": "RemoveDnsRecordSetResponse", +"properties": {}, +"type": "object" +}, +"RemoveDnsZoneMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by RemoveDnsZone API", +"id": "RemoveDnsZoneMetadata", +"properties": {}, +"type": "object" +}, +"RemoveDnsZoneResponse": { +"description": "Blank message response type for RemoveDnsZone API", +"id": "RemoveDnsZoneResponse", +"properties": {}, +"type": "object" +}, +"Route": { +"description": "Represents a route that was created or discovered by a private access management service.", +"id": "Route", +"properties": { +"destRange": { +"description": "Destination CIDR range that this route applies to.", +"type": "string" +}, +"name": { +"description": "Route name. See https://cloud.google.com/vpc/docs/routes", +"type": "string" +}, +"network": { +"description": "Fully-qualified URL of the VPC network in the producer host tenant project that this route applies to. For example: `projects/123456/global/networks/host-network`", +"type": "string" +}, +"nextHopGateway": { +"description": "Fully-qualified URL of the gateway that should handle matching packets that this route applies to. For example: `projects/123456/global/gateways/default-internet-gateway`", +"type": "string" +} +}, +"type": "object" +}, +"RubySettings": { +"description": "Settings for Ruby client libraries.", +"id": "RubySettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"SearchRangeRequest": { +"description": "Request to search for an unused range within allocated ranges.", +"id": "SearchRangeRequest", +"properties": { +"ipPrefixLength": { +"description": "Required. The prefix length of the IP range. Use usual CIDR range notation. For example, '30' to find unused x.x.x.x/30 CIDR range. Actual range will be determined using allocated range for the consumer peered network and returned in the result.", +"format": "int32", +"type": "integer" +}, +"network": { +"description": "Network name in the consumer project. This network must have been already peered with a shared VPC network using CreateConnection method. Must be in a form 'projects/{project}/global/networks/{network}'. {project} is a project number, as in '12345' {network} is network name.", +"type": "string" +} +}, +"type": "object" +}, +"SecondaryIpRange": { +"id": "SecondaryIpRange", +"properties": { +"ipCidrRange": { +"description": "Secondary IP CIDR range in `x.x.x.x/y` format.", +"type": "string" +}, +"rangeName": { +"description": "Name of the secondary IP range.", +"type": "string" +} +}, +"type": "object" +}, +"SelectiveGapicGeneration": { +"description": "This message is used to configure the generation of a subset of the RPCs in a service for client libraries.", +"id": "SelectiveGapicGeneration", +"properties": { +"methods": { +"description": "An allowlist of the fully qualified names of RPCs that should be included on public client surfaces.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Service": { +"description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", +"id": "Service", +"properties": { +"apis": { +"description": "A list of API interfaces exported by this service. Only the `name` field of the google.protobuf.Api needs to be provided by the configuration author, as the remaining fields will be derived from the IDL during the normalization process. It is an error to specify an API interface here which cannot be resolved against the associated IDL files.", +"items": { +"$ref": "Api" +}, +"type": "array" +}, +"authentication": { +"$ref": "Authentication", +"description": "Auth configuration." +}, +"backend": { +"$ref": "Backend", +"description": "API backend configuration." +}, +"billing": { +"$ref": "Billing", +"description": "Billing configuration." +}, +"configVersion": { +"description": "Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.", +"format": "uint32", +"type": "integer" +}, +"context": { +"$ref": "Context", +"description": "Context configuration." +}, +"control": { +"$ref": "Control", +"description": "Configuration for the service control plane." +}, +"customError": { +"$ref": "CustomError", +"description": "Custom error configuration." +}, +"documentation": { +"$ref": "Documentation", +"description": "Additional API documentation." +}, +"endpoints": { +"description": "Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.", +"items": { +"$ref": "Endpoint" +}, +"type": "array" +}, +"enums": { +"description": "A list of all enum types included in this API service. Enums referenced directly or indirectly by the `apis` are automatically included. Enums which are not referenced but shall be included should be listed here by name by the configuration author. Example: enums: - name: google.someapi.v1.SomeEnum", +"items": { +"$ref": "Enum" +}, +"type": "array" +}, +"http": { +"$ref": "Http", +"description": "HTTP configuration." +}, +"id": { +"description": "A unique ID for a specific instance of this message, typically assigned by the client for tracking purpose. Must be no longer than 63 characters and only lower case letters, digits, '.', '_' and '-' are allowed. If empty, the server may choose to generate one instead.", +"type": "string" +}, +"logging": { +"$ref": "Logging", +"description": "Logging configuration." +}, +"logs": { +"description": "Defines the logs used by this service.", +"items": { +"$ref": "LogDescriptor" +}, +"type": "array" +}, +"metrics": { +"description": "Defines the metrics used by this service.", +"items": { +"$ref": "MetricDescriptor" +}, +"type": "array" +}, +"monitoredResources": { +"description": "Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.", +"items": { +"$ref": "MonitoredResourceDescriptor" +}, +"type": "array" +}, +"monitoring": { +"$ref": "Monitoring", +"description": "Monitoring configuration." +}, +"name": { +"description": "The service name, which is a DNS-like logical identifier for the service, such as `calendar.googleapis.com`. The service name typically goes through DNS verification to make sure the owner of the service also owns the DNS name.", +"type": "string" +}, +"producerProjectId": { +"description": "The Google project that owns this service.", +"type": "string" +}, +"publishing": { +"$ref": "Publishing", +"description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." +}, +"quota": { +"$ref": "Quota", +"description": "Quota configuration." +}, +"sourceInfo": { +"$ref": "SourceInfo", +"description": "Output only. The source information for this configuration if available." +}, +"systemParameters": { +"$ref": "SystemParameters", +"description": "System parameter configuration." +}, +"systemTypes": { +"description": "A list of all proto message types included in this API service. It serves similar purpose as [google.api.Service.types], except that these types are not needed by user-defined APIs. Therefore, they will not show up in the generated discovery doc. This field should only be used to define system APIs in ESF.", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"title": { +"description": "The product title for this service, it is the name displayed in Google Cloud Console.", +"type": "string" +}, +"types": { +"description": "A list of all proto message types included in this API service. Types referenced directly or indirectly by the `apis` are automatically included. Messages which are not referenced but shall be included, such as types used by the `google.protobuf.Any` type, should be listed here by name by the configuration author. Example: types: - name: google.protobuf.Int32", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"usage": { +"$ref": "Usage", +"description": "Configuration controlling usage of this service." +} +}, +"type": "object" +}, +"SourceContext": { +"description": "`SourceContext` represents information about the source of a protobuf element, like the file in which it is defined.", +"id": "SourceContext", +"properties": { +"fileName": { +"description": "The path-qualified name of the .proto file that contained the associated protobuf element. For example: `\"google/protobuf/source_context.proto\"`.", +"type": "string" +} +}, +"type": "object" +}, +"SourceInfo": { +"description": "Source information used to create a Service Config", +"id": "SourceInfo", +"properties": { +"sourceFiles": { +"description": "All files used during config generation.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Subnetwork": { +"description": "Represents a subnet that was created or discovered by a private access management service.", +"id": "Subnetwork", +"properties": { +"ipCidrRange": { +"description": "Subnetwork CIDR range in `10.x.x.x/y` format.", +"type": "string" +}, +"name": { +"description": "Subnetwork name. See https://cloud.google.com/compute/docs/vpc/", +"type": "string" +}, +"network": { +"description": "In the Shared VPC host project, the VPC network that's peered with the consumer network. For example: `projects/1234321/global/networks/host-network`", +"type": "string" +}, +"outsideAllocation": { +"description": "This is a discovered subnet that is not within the current consumer allocated ranges.", +"type": "boolean" +}, +"region": { +"description": "GCP region where the subnetwork is located.", +"type": "string" +}, +"secondaryIpRanges": { +"description": "List of secondary IP ranges in this subnetwork.", +"items": { +"$ref": "SecondaryIpRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"SystemParameter": { +"description": "Define a parameter's name and location. The parameter may be passed as either an HTTP header or a URL query parameter, and if both are passed the behavior is implementation-dependent.", +"id": "SystemParameter", +"properties": { +"httpHeader": { +"description": "Define the HTTP header name to use for the parameter. It is case insensitive.", +"type": "string" +}, +"name": { +"description": "Define the name of the parameter, such as \"api_key\" . It is case sensitive.", +"type": "string" +}, +"urlQueryParameter": { +"description": "Define the URL query parameter name to use for the parameter. It is case sensitive.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameterRule": { +"description": "Define a system parameter rule mapping system parameter definitions to methods.", +"id": "SystemParameterRule", +"properties": { +"parameters": { +"description": "Define parameters. Multiple names may be defined for a parameter. For a given method call, only one of them should be used. If multiple names are used the behavior is implementation-dependent. If none of the specified names are present the behavior is parameter-dependent.", +"items": { +"$ref": "SystemParameter" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameters": { +"description": "### System parameter configuration A system parameter is a special kind of parameter defined by the API system, not by an individual API. It is typically mapped to an HTTP header and/or a URL query parameter. This configuration specifies which methods change the names of the system parameters.", +"id": "SystemParameters", +"properties": { +"rules": { +"description": "Define system parameters. The parameters defined here will override the default parameters implemented by the system. If this field is missing from the service config, default system parameters will be used. Default system parameters and names is implementation-dependent. Example: define api key for all methods system_parameters rules: - selector: \"*\" parameters: - name: api_key url_query_parameter: api_key Example: define 2 api key names for a specific method. system_parameters rules: - selector: \"/ListShelves\" parameters: - name: api_key http_header: Api-Key1 - name: api_key http_header: Api-Key2 **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "SystemParameterRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"Type": { +"description": "A protocol buffer message type.", +"id": "Type", +"properties": { +"edition": { +"description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", +"type": "string" +}, +"fields": { +"description": "The list of fields.", +"items": { +"$ref": "Field" +}, +"type": "array" +}, +"name": { +"description": "The fully qualified message name.", +"type": "string" +}, +"oneofs": { +"description": "The list of types appearing in `oneof` definitions in this type.", +"items": { +"type": "string" +}, +"type": "array" +}, +"options": { +"description": "The protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "The source context." +}, +"syntax": { +"description": "The source syntax.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"UpdateDnsRecordSetMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by UpdateDnsRecordSet API", +"id": "UpdateDnsRecordSetMetadata", +"properties": {}, +"type": "object" +}, +"Usage": { +"description": "Configuration controlling usage of a service.", +"id": "Usage", +"properties": { +"producerNotificationChannel": { +"description": "The full resource name of a channel used for sending notifications to the service producer. Google Service Management currently only supports [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification channel. To use Google Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format documented in https://cloud.google.com/pubsub/docs/overview.", +"type": "string" +}, +"requirements": { +"description": "Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example 'serviceusage.googleapis.com/billing-enabled'. For Google APIs, a Terms of Service requirement must be included here. Google Cloud APIs must include \"serviceusage.googleapis.com/tos/cloud\". Other Google APIs should include \"serviceusage.googleapis.com/tos/universal\". Additional ToS can be included based on the business needs.", +"items": { +"type": "string" +}, +"type": "array" +}, +"rules": { +"description": "A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "UsageRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"UsageRule": { +"description": "Usage configuration rules for the service. NOTE: Under development. Use this rule to configure unregistered calls for the service. Unregistered calls are calls that do not contain consumer project identity. (Example: calls that do not contain an API key). By default, API methods do not allow unregistered calls, and each method call must be identified by a consumer project identity. Use this rule to allow/disallow unregistered calls. Example of an API that wants to allow unregistered calls for entire service. usage: rules: - selector: \"*\" allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allow_unregistered_calls: true", +"id": "UsageRule", +"properties": { +"allowUnregisteredCalls": { +"description": "If true, the selected method allows unregistered calls, e.g. calls that don't identify any user or application.", +"type": "boolean" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details.", +"type": "string" +}, +"skipServiceControl": { +"description": "If true, the selected method should skip service control and the control plane features, such as quota and billing, will not be available. This flag is used by Google Cloud Endpoints to bypass checks for internal methods, such as service health check methods.", +"type": "boolean" +} +}, +"type": "object" +}, +"VpcServiceControls": { +"description": "Response for the get VPC Service Controls request.", +"id": "VpcServiceControls", +"properties": { +"enabled": { +"description": "Output only. Indicates whether the VPC Service Controls are enabled or disabled for the connection. If the consumer called the EnableVpcServiceControls method, then this is true. If the consumer called DisableVpcServiceControls, then this is false. The default is false.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Service Networking API", +"version": "v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..3b1d4d97c9814cf09a080916eb7237ceddb3bcf7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json @@ -0,0 +1,4476 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +}, +"https://www.googleapis.com/auth/service.management": { +"description": "Manage your Google API service configuration" +} +} +} +}, +"basePath": "", +"baseUrl": "https://serviceusage.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Service Usage", +"description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/service-usage/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "serviceusage:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://serviceusage.mtls.googleapis.com/", +"name": "serviceusage", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/operations/{operationsId}", +"httpMethod": "GET", +"id": "serviceusage.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/operations", +"httpMethod": "GET", +"id": "serviceusage.operations.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"services": { +"methods": { +"batchEnable": { +"deprecated": true, +"description": "Enables multiple services on a project. The operation is atomic: if enabling any service fails, then the entire batch fails, and no state changes occur. Operation response type: `google.protobuf.Empty`", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services:batchEnable", +"httpMethod": "POST", +"id": "serviceusage.services.batchEnable", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent to enable services on. An example name would be: `projects/123` where `123` is the project number (not project ID). The `BatchEnableServices` method currently only supports projects.", +"location": "path", +"pattern": "^[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/services:batchEnable", +"request": { +"$ref": "BatchEnableServicesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"disable": { +"deprecated": true, +"description": "Disables a service so that it can no longer be used with a project. This prevents unintended usage that may cause unexpected billing charges or security leaks. It is not valid to call the disable method on a service that is not currently enabled. Callers will receive a `FAILED_PRECONDITION` status if the target service is not currently enabled. Operation response type: `google.protobuf.Empty`", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}:disable", +"httpMethod": "POST", +"id": "serviceusage.services.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the consumer and service to disable the service on. The enable and disable methods currently only support projects. An example name would be: `projects/123/services/serviceusage.googleapis.com` where `123` is the project number (not project ID).", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:disable", +"request": { +"$ref": "DisableServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"enable": { +"deprecated": true, +"description": "Enables a service so that it can be used with a project. Operation response type: `google.protobuf.Empty`", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}:enable", +"httpMethod": "POST", +"id": "serviceusage.services.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the consumer and service to enable the service on. The `EnableService` and `DisableService` methods currently only support projects. Enabling a service requires that the service is public or is shared with the user enabling the service. An example name would be: `projects/123/services/serviceusage.googleapis.com` where `123` is the project number (not project ID).", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:enable", +"request": { +"$ref": "EnableServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"generateServiceIdentity": { +"description": "Generates service identity for service.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}:generateServiceIdentity", +"httpMethod": "POST", +"id": "serviceusage.services.generateServiceIdentity", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Name of the consumer and service to generate an identity for. The `GenerateServiceIdentity` methods currently support projects, folders, organizations. Example parents would be: `projects/123/services/example.googleapis.com` `folders/123/services/example.googleapis.com` `organizations/123/services/example.googleapis.com`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}:generateServiceIdentity", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"get": { +"deprecated": true, +"description": "Returns the service configuration and enabled state for a given service.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}", +"httpMethod": "GET", +"id": "serviceusage.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the consumer and service to get the `ConsumerState` for. An example name would be: `projects/123/services/serviceusage.googleapis.com` where `123` is the project number (not project ID).", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"deprecated": true, +"description": "Lists all services available to the specified project, and the current state of those services with respect to the project. The list includes all public services, all services for which the calling user has the `servicemanagement.services.bind` permission, and all services that have already been enabled on the project. The list can be filtered to only include services in a specific state, for example to only include services enabled on the project.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services", +"httpMethod": "GET", +"id": "serviceusage.services.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Only list services that conform to the given filter. The allowed filter strings are `state:ENABLED` and `state:DISABLED`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested size of the next page of data. Requested page size cannot exceed 200. If not set, the default page size is 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token identifying which result to start with, which is returned by a previous list call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Parent to search for services on. An example name would be: `projects/123` where `123` is the project number (not project ID).", +"location": "path", +"pattern": "^[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/services", +"response": { +"$ref": "ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"consumerQuotaMetrics": { +"methods": { +"get": { +"description": "Retrieves a summary of quota information for a specific quota metric", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}", +"httpMethod": "GET", +"id": "serviceusage.services.consumerQuotaMetrics.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the quota limit. An example name would be: `projects/123/services/serviceusage.googleapis.com/quotas/metrics/serviceusage.googleapis.com%2Fmutate_requests`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies the level of detail for quota information in the response.", +"enum": [ +"QUOTA_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"No quota view specified. Requests that do not specify a quota view will typically default to the BASIC view.", +"Only buckets with overrides are shown in the response.", +"Include per-location buckets even if they do not have overrides. When the view is FULL, and a limit has regional or zonal quota, the limit will include buckets for all regions or zones that could support overrides, even if none are currently present. In some cases this will cause the response to become very large; callers that do not need this extra information should use the BASIC view instead." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ConsumerQuotaMetric" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"importAdminOverrides": { +"description": "Creates or updates multiple admin overrides atomically, all on the same consumer, but on many different metrics or limits. The name field in the quota override message should not be set.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics:importAdminOverrides", +"httpMethod": "POST", +"id": "serviceusage.services.consumerQuotaMetrics.importAdminOverrides", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource name of the consumer. An example name would be: `projects/123/services/compute.googleapis.com`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/consumerQuotaMetrics:importAdminOverrides", +"request": { +"$ref": "ImportAdminOverridesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"importConsumerOverrides": { +"description": "Creates or updates multiple consumer overrides atomically, all on the same consumer, but on many different metrics or limits. The name field in the quota override message should not be set.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics:importConsumerOverrides", +"httpMethod": "POST", +"id": "serviceusage.services.consumerQuotaMetrics.importConsumerOverrides", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource name of the consumer. An example name would be: `projects/123/services/compute.googleapis.com`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/consumerQuotaMetrics:importConsumerOverrides", +"request": { +"$ref": "ImportConsumerOverridesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Retrieves a summary of all quota information visible to the service consumer, organized by service metric. Each metric includes information about all of its defined limits. Each limit includes the limit configuration (quota unit, preciseness, default value), the current effective limit value, and all of the overrides applied to the limit.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics", +"httpMethod": "GET", +"id": "serviceusage.services.consumerQuotaMetrics.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested size of the next page of data.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token identifying which result to start with; returned by a previous list call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Parent of the quotas resource. Some example names would be: `projects/123/services/serviceconsumermanagement.googleapis.com` `folders/345/services/serviceconsumermanagement.googleapis.com` `organizations/456/services/serviceconsumermanagement.googleapis.com`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies the level of detail for quota information in the response.", +"enum": [ +"QUOTA_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"No quota view specified. Requests that do not specify a quota view will typically default to the BASIC view.", +"Only buckets with overrides are shown in the response.", +"Include per-location buckets even if they do not have overrides. When the view is FULL, and a limit has regional or zonal quota, the limit will include buckets for all regions or zones that could support overrides, even if none are currently present. In some cases this will cause the response to become very large; callers that do not need this extra information should use the BASIC view instead." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/consumerQuotaMetrics", +"response": { +"$ref": "ListConsumerQuotaMetricsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"limits": { +"methods": { +"get": { +"description": "Retrieves a summary of quota information for a specific quota limit.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}", +"httpMethod": "GET", +"id": "serviceusage.services.consumerQuotaMetrics.limits.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the quota limit. Use the quota limit resource name returned by previous ListConsumerQuotaMetrics and GetConsumerQuotaMetric API calls.", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies the level of detail for quota information in the response.", +"enum": [ +"QUOTA_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"No quota view specified. Requests that do not specify a quota view will typically default to the BASIC view.", +"Only buckets with overrides are shown in the response.", +"Include per-location buckets even if they do not have overrides. When the view is FULL, and a limit has regional or zonal quota, the limit will include buckets for all regions or zones that could support overrides, even if none are currently present. In some cases this will cause the response to become very large; callers that do not need this extra information should use the BASIC view instead." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ConsumerQuotaLimit" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"adminOverrides": { +"methods": { +"create": { +"description": "Creates an admin override. An admin override is applied by an administrator of a parent folder or parent organization of the consumer receiving the override. An admin override is intended to limit the amount of quota the consumer can use out of the total quota pool allocated to all children of the folder or organization.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/adminOverrides", +"httpMethod": "POST", +"id": "serviceusage.services.consumerQuotaMetrics.limits.adminOverrides.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"force": { +"description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"location": "query", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"parent": { +"description": "The resource name of the parent quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/adminOverrides", +"request": { +"$ref": "QuotaOverride" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"delete": { +"description": "Deletes an admin override.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/adminOverrides/{adminOverridesId}", +"httpMethod": "DELETE", +"id": "serviceusage.services.consumerQuotaMetrics.limits.adminOverrides.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"location": "query", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "The resource name of the override to delete. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+/adminOverrides/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Lists all admin overrides on this limit.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/adminOverrides", +"httpMethod": "GET", +"id": "serviceusage.services.consumerQuotaMetrics.limits.adminOverrides.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested size of the next page of data.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token identifying which result to start with; returned by a previous list call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The resource name of the parent quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/adminOverrides", +"response": { +"$ref": "ListAdminOverridesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates an admin override.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/adminOverrides/{adminOverridesId}", +"httpMethod": "PATCH", +"id": "serviceusage.services.consumerQuotaMetrics.limits.adminOverrides.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"location": "query", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "The resource name of the override to update. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+/adminOverrides/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update only the specified fields of the override. If unset, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "QuotaOverride" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"consumerOverrides": { +"methods": { +"create": { +"description": "Creates a consumer override. A consumer override is applied to the consumer on its own authority to limit its own quota usage. Consumer overrides cannot be used to grant more quota than would be allowed by admin overrides, producer overrides, or the default limit of the service.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/consumerOverrides", +"httpMethod": "POST", +"id": "serviceusage.services.consumerQuotaMetrics.limits.consumerOverrides.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"force": { +"description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"location": "query", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"parent": { +"description": "The resource name of the parent quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/consumerOverrides", +"request": { +"$ref": "QuotaOverride" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"delete": { +"description": "Deletes a consumer override.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/consumerOverrides/{consumerOverridesId}", +"httpMethod": "DELETE", +"id": "serviceusage.services.consumerQuotaMetrics.limits.consumerOverrides.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"location": "query", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "The resource name of the override to delete. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+/consumerOverrides/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Lists all consumer overrides on this limit.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/consumerOverrides", +"httpMethod": "GET", +"id": "serviceusage.services.consumerQuotaMetrics.limits.consumerOverrides.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested size of the next page of data.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token identifying which result to start with; returned by a previous list call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The resource name of the parent quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/consumerOverrides", +"response": { +"$ref": "ListConsumerOverridesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a consumer override.", +"flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/consumerOverrides/{consumerOverridesId}", +"httpMethod": "PATCH", +"id": "serviceusage.services.consumerQuotaMetrics.limits.consumerOverrides.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"location": "query", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "The resource name of the override to update. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d`", +"location": "path", +"pattern": "^[^/]+/[^/]+/services/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+/consumerOverrides/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update only the specified fields of the override. If unset, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "QuotaOverride" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241219", +"rootUrl": "https://serviceusage.googleapis.com/", +"schemas": { +"AddEnableRulesMetadata": { +"description": "Metadata for the `AddEnableRules` method.", +"id": "AddEnableRulesMetadata", +"properties": {}, +"type": "object" +}, +"AddEnableRulesResponse": { +"description": "The response message of `AddEnableRules` method.", +"id": "AddEnableRulesResponse", +"properties": { +"addedValues": { +"description": "The values added to the parent consumer policy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"parent": { +"description": "The parent consumer policy. It can be `projects/12345/consumerPolicies/default`, or `folders/12345/consumerPolicies/default`, or `organizations/12345/consumerPolicies/default`.", +"type": "string" +} +}, +"type": "object" +}, +"AdminQuotaPolicy": { +"description": "Quota policy created by quota administrator.", +"id": "AdminQuotaPolicy", +"properties": { +"container": { +"description": "The cloud resource container at which the quota policy is created. The format is `{container_type}/{container_number}`", +"type": "string" +}, +"dimensions": { +"additionalProperties": { +"type": "string" +}, +"description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * Keys other than `region` or `zone` are not valid.", +"type": "object" +}, +"metric": { +"description": "The name of the metric to which this policy applies. An example name would be: `compute.googleapis.com/cpus`", +"type": "string" +}, +"name": { +"description": "The resource name of the policy. This name is generated by the server when the policy is created. Example names would be: `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminQuotaPolicies/4a3f2c1d`", +"type": "string" +}, +"policyValue": { +"description": "The quota policy value. Can be any nonnegative integer, or -1 (unlimited quota).", +"format": "int64", +"type": "string" +}, +"unit": { +"description": "The limit unit of the limit to which this policy applies. An example unit would be: `1/{project}/{region}` Note that `{project}` and `{region}` are not placeholders in this example; the literal characters `{` and `}` occur in the string.", +"type": "string" +} +}, +"type": "object" +}, +"Analysis": { +"description": "A message to group the analysis information.", +"id": "Analysis", +"properties": { +"analysis": { +"$ref": "AnalysisResult", +"description": "Output only. Analysis result of updating a policy.", +"readOnly": true +}, +"analysisType": { +"description": "Output only. The type of analysis.", +"enum": [ +"ANALYSIS_TYPE_UNSPECIFIED", +"ANALYSIS_TYPE_DEPENDENCY", +"ANALYSIS_TYPE_RESOURCE_USAGE", +"ANALYSIS_TYPE_RESOURCE_EXISTENCE" +], +"enumDescriptions": [ +"Unspecified analysis type. Do not use.", +"The analysis of service dependencies.", +"The analysis of service resource usage.", +"The analysis of service resource existence." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The user friendly display name of the analysis type. E.g. service dependency analysis, service resource usage analysis, etc.", +"readOnly": true, +"type": "string" +}, +"service": { +"description": "The names of the service that has analysis result of warnings or blockers. Example: `services/storage.googleapis.com`.", +"type": "string" +} +}, +"type": "object" +}, +"AnalysisResult": { +"description": "An analysis result including blockers and warnings.", +"id": "AnalysisResult", +"properties": { +"blockers": { +"description": "Blocking information that would prevent the policy changes at runtime.", +"items": { +"$ref": "Impact" +}, +"type": "array" +}, +"warnings": { +"description": "Warning information indicating that the policy changes might be unsafe, but will not block the changes at runtime.", +"items": { +"$ref": "Impact" +}, +"type": "array" +} +}, +"type": "object" +}, +"AnalyzeConsumerPolicyMetadata": { +"description": "Metadata for the `AnalyzeConsumerPolicy` method.", +"id": "AnalyzeConsumerPolicyMetadata", +"properties": {}, +"type": "object" +}, +"AnalyzeConsumerPolicyResponse": { +"description": "The response of analyzing a consumer policy update.", +"id": "AnalyzeConsumerPolicyResponse", +"properties": { +"analysis": { +"description": "The list of analyses returned from performing the intended policy update analysis. The analysis is grouped by service name and different analysis types. The empty analysis list means that the consumer policy can be updated without any warnings or blockers.", +"items": { +"$ref": "Analysis" +}, +"type": "array" +} +}, +"type": "object" +}, +"Api": { +"description": "Api is a light-weight descriptor for an API Interface. Interfaces are also described as \"protocol buffer services\" in some contexts, such as by the \"service\" keyword in a .proto file, but they are different from API Services, which represent a concrete implementation of an interface as opposed to simply a description of methods and bindings. They are also sometimes simply referred to as \"APIs\" in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.", +"id": "Api", +"properties": { +"methods": { +"description": "The methods of this interface, in unspecified order.", +"items": { +"$ref": "Method" +}, +"type": "array" +}, +"mixins": { +"description": "Included interfaces. See Mixin.", +"items": { +"$ref": "Mixin" +}, +"type": "array" +}, +"name": { +"description": "The fully qualified name of this interface, including package name followed by the interface's simple name.", +"type": "string" +}, +"options": { +"description": "Any metadata attached to the interface.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "Source context for the protocol buffer service represented by this message." +}, +"syntax": { +"description": "The source syntax of the service.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +}, +"version": { +"description": "A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces. ", +"type": "string" +} +}, +"type": "object" +}, +"AuthProvider": { +"description": "Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", +"id": "AuthProvider", +"properties": { +"audiences": { +"description": "The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - \"https://[service.name]/[google.protobuf.Api.name]\" - \"https://[service.name]/\" will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com", +"type": "string" +}, +"authorizationUrl": { +"description": "Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.", +"type": "string" +}, +"id": { +"description": "The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: \"bookstore_auth\".", +"type": "string" +}, +"issuer": { +"description": "Identifies the principal that issued the JWT. See https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 Usually a URL or an email address. Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com", +"type": "string" +}, +"jwksUri": { +"description": "URL of the provider's public key set to validate signature of the JWT. See [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). Optional if the key set document: - can be retrieved from [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) of the issuer. - can be inferred from the email domain of the issuer (e.g. a Google service account). Example: https://www.googleapis.com/oauth2/v1/certs", +"type": "string" +}, +"jwtLocations": { +"description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", +"items": { +"$ref": "JwtLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthRequirement": { +"description": "User-defined authentication requirements, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", +"id": "AuthRequirement", +"properties": { +"audiences": { +"description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is implemented and accepted in all the runtime components. The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, only JWTs with audience \"https://Service_name/API_name\" will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience \"https://library-example.googleapis.com/google.example.library.v1.LibraryService\". Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com", +"type": "string" +}, +"providerId": { +"description": "id from authentication provider. Example: provider_id: bookstore_auth", +"type": "string" +} +}, +"type": "object" +}, +"Authentication": { +"description": "`Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read", +"id": "Authentication", +"properties": { +"providers": { +"description": "Defines a set of authentication providers that a service supports.", +"items": { +"$ref": "AuthProvider" +}, +"type": "array" +}, +"rules": { +"description": "A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "AuthenticationRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthenticationRule": { +"description": "Authentication rules for the service. By default, if a method has any authentication requirements, every request must include a valid credential matching one of the requirements. It's an error to include more than one kind of credential in a single request. If a method doesn't have any auth requirements, request credentials will be ignored.", +"id": "AuthenticationRule", +"properties": { +"allowWithoutCredential": { +"description": "If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.", +"type": "boolean" +}, +"oauth": { +"$ref": "OAuthRequirements", +"description": "The requirements for OAuth credentials." +}, +"requirements": { +"description": "Requirements for additional authentication providers.", +"items": { +"$ref": "AuthRequirement" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Backend": { +"description": "`Backend` defines the backend configuration for a service.", +"id": "Backend", +"properties": { +"rules": { +"description": "A list of API backend rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "BackendRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"BackendRule": { +"description": "A backend rule provides configuration for an individual API element.", +"id": "BackendRule", +"properties": { +"address": { +"description": "The address of the API backend. The scheme is used to determine the backend protocol and security. The following schemes are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to explicitly include a scheme. Leaving out the scheme may cause constrasting behaviors across platforms. If the port is unspecified, the default is: - 80 for schemes without TLS - 443 for schemes with TLS For HTTP backends, use protocol to specify the protocol version.", +"type": "string" +}, +"deadline": { +"description": "The number of seconds to wait for a response from a request. The default varies based on the request protocol and deployment environment.", +"format": "double", +"type": "number" +}, +"disableAuth": { +"description": "When disable_auth is true, a JWT ID token won't be generated and the original \"Authorization\" HTTP header will be preserved. If the header is used to carry the original token and is expected by the backend, this field must be set to true to preserve the header.", +"type": "boolean" +}, +"jwtAudience": { +"description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", +"type": "string" +}, +"minDeadline": { +"deprecated": true, +"description": "Deprecated, do not use.", +"format": "double", +"type": "number" +}, +"operationDeadline": { +"description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", +"format": "double", +"type": "number" +}, +"overridesByRequestProtocol": { +"additionalProperties": { +"$ref": "BackendRule" +}, +"description": "The map between request protocol and the backend address.", +"type": "object" +}, +"pathTranslation": { +"enum": [ +"PATH_TRANSLATION_UNSPECIFIED", +"CONSTANT_ADDRESS", +"APPEND_PATH_TO_ADDRESS" +], +"enumDescriptions": [ +"", +"Use the backend address as-is, with no modification to the path. If the URL pattern contains variables, the variable names and values will be appended to the query string. If a query string parameter and a URL pattern variable have the same name, this may result in duplicate keys in the query string. # Examples Given the following operation config: Method path: /api/company/{cid}/user/{uid} Backend address: https://example.cloudfunctions.net/getUser Requests to the following request paths will call the backend at the translated path: Request path: /api/company/widgetworks/user/johndoe Translated: https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe", +"The request path will be appended to the backend address. # Examples Given the following operation config: Method path: /api/company/{cid}/user/{uid} Backend address: https://example.appspot.com Requests to the following request paths will call the backend at the translated path: Request path: /api/company/widgetworks/user/johndoe Translated: https://example.appspot.com/api/company/widgetworks/user/johndoe Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST" +], +"type": "string" +}, +"protocol": { +"description": "The protocol used for sending a request to the backend. The supported values are \"http/1.1\" and \"h2\". The default value is inferred from the scheme in the address field: SCHEME PROTOCOL http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure HTTP backends (https://) that support HTTP/2, set this field to \"h2\" for improved performance. Configuring this field to non-default values is only supported for secure HTTP backends. This field will be ignored for all other backends. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for more details on the supported values.", +"type": "string" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"BatchCreateAdminOverridesResponse": { +"description": "Response message for BatchCreateAdminOverrides", +"id": "BatchCreateAdminOverridesResponse", +"properties": { +"overrides": { +"description": "The overrides that were created.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateConsumerOverridesResponse": { +"description": "Response message for BatchCreateConsumerOverrides", +"id": "BatchCreateConsumerOverridesResponse", +"properties": { +"overrides": { +"description": "The overrides that were created.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchEnableServicesRequest": { +"description": "Request message for the `BatchEnableServices` method.", +"id": "BatchEnableServicesRequest", +"properties": { +"serviceIds": { +"description": "The identifiers of the services to enable on the project. A valid identifier would be: serviceusage.googleapis.com Enabling services requires that each service is public or is shared with the user enabling the service. Two or more services must be specified. To enable a single service, use the `EnableService` method instead. A single request can enable a maximum of 20 services at a time. If more than 20 services are specified, the request will fail, and no state changes will occur.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchEnableServicesResponse": { +"description": "Response message for the `BatchEnableServices` method. This response message is assigned to the `response` field of the returned Operation when that operation is done.", +"id": "BatchEnableServicesResponse", +"properties": { +"failures": { +"description": "If allow_partial_success is true, and one or more services could not be enabled, this field contains the details about each failure.", +"items": { +"$ref": "EnableFailure" +}, +"type": "array" +}, +"services": { +"description": "The new state of the services after enabling.", +"items": { +"$ref": "GoogleApiServiceusageV1Service" +}, +"type": "array" +} +}, +"type": "object" +}, +"Billing": { +"description": "Billing related configuration of the service. The following example shows how to configure monitored resources and metrics for billing, `consumer_destinations` is the only supported destination and the monitored resources need at least one label key `cloud.googleapis.com/location` to indicate the location of the billing usage, using different monitored resources between monitoring and billing is recommended so they can be evolved independently: monitored_resources: - type: library.googleapis.com/billing_branch labels: - key: cloud.googleapis.com/location description: | Predefined label to support billing location restriction. - key: city description: | Custom label to define the city where the library branch is located in. - key: name description: Custom label to define the name of the library branch. metrics: - name: library.googleapis.com/book/borrowed_count metric_kind: DELTA value_type: INT64 unit: \"1\" billing: consumer_destinations: - monitored_resource: library.googleapis.com/billing_branch metrics: - library.googleapis.com/book/borrowed_count", +"id": "Billing", +"properties": { +"consumerDestinations": { +"description": "Billing configurations for sending metrics to the consumer project. There can be multiple consumer destinations per service, each one must have a different monitored resource type. A metric can be used in at most one consumer destination.", +"items": { +"$ref": "BillingDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"BillingDestination": { +"description": "Configuration of a specific billing destination (Currently only support bill against consumer project).", +"id": "BillingDestination", +"properties": { +"metrics": { +"description": "Names of the metrics to report to this billing destination. Each name must be defined in Service.metrics section.", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"ClientLibrarySettings": { +"description": "Details about how and where to publish client libraries.", +"id": "ClientLibrarySettings", +"properties": { +"cppSettings": { +"$ref": "CppSettings", +"description": "Settings for C++ client libraries." +}, +"dotnetSettings": { +"$ref": "DotnetSettings", +"description": "Settings for .NET client libraries." +}, +"goSettings": { +"$ref": "GoSettings", +"description": "Settings for Go client libraries." +}, +"javaSettings": { +"$ref": "JavaSettings", +"description": "Settings for legacy Java features, supported in the Service YAML." +}, +"launchStage": { +"description": "Launch stage of this version of the API.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"nodeSettings": { +"$ref": "NodeSettings", +"description": "Settings for Node client libraries." +}, +"phpSettings": { +"$ref": "PhpSettings", +"description": "Settings for PHP client libraries." +}, +"pythonSettings": { +"$ref": "PythonSettings", +"description": "Settings for Python client libraries." +}, +"restNumericEnums": { +"description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", +"type": "boolean" +}, +"rubySettings": { +"$ref": "RubySettings", +"description": "Settings for Ruby client libraries." +}, +"version": { +"description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", +"type": "string" +} +}, +"type": "object" +}, +"CommonLanguageSettings": { +"description": "Required information for every language.", +"id": "CommonLanguageSettings", +"properties": { +"destinations": { +"description": "The destination where API teams want this client library to be published.", +"items": { +"enum": [ +"CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", +"GITHUB", +"PACKAGE_MANAGER" +], +"enumDescriptions": [ +"Client libraries will neither be generated nor published to package managers.", +"Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", +"Publish the library to package managers like nuget.org and npmjs.com." +], +"type": "string" +}, +"type": "array" +}, +"referenceDocsUri": { +"deprecated": true, +"description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", +"type": "string" +}, +"selectiveGapicGeneration": { +"$ref": "SelectiveGapicGeneration", +"description": "Configuration for which RPCs should be generated in the GAPIC client." +} +}, +"type": "object" +}, +"ConsumerPolicy": { +"description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", +"id": "ConsumerPolicy", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", +"type": "object" +}, +"enableRules": { +"description": "Enable rules define usable services and service groups.", +"items": { +"$ref": "EnableRule" +}, +"type": "array" +}, +"etag": { +"description": "An opaque tag indicating the current version of the policy, used for concurrency control.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the policy. We only allow consumer policy name as `default` for now: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "The last-modified time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ConsumerQuotaLimit": { +"description": "Consumer quota settings for a quota limit.", +"id": "ConsumerQuotaLimit", +"properties": { +"allowsAdminOverrides": { +"description": "Whether admin overrides are allowed on this limit", +"type": "boolean" +}, +"isPrecise": { +"description": "Whether this limit is precise or imprecise.", +"type": "boolean" +}, +"metric": { +"description": "The name of the parent metric of this limit. An example name would be: `compute.googleapis.com/cpus`", +"type": "string" +}, +"name": { +"description": "The resource name of the quota limit. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion` The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", +"type": "string" +}, +"quotaBuckets": { +"description": "Summary of the enforced quota buckets, organized by quota dimension, ordered from least specific to most specific (for example, the global default bucket, with no quota dimensions, will always appear first).", +"items": { +"$ref": "QuotaBucket" +}, +"type": "array" +}, +"supportedLocations": { +"description": "List of all supported locations. This field is present only if the limit has a {region} or {zone} dimension.", +"items": { +"type": "string" +}, +"type": "array" +}, +"unit": { +"description": "The limit unit. An example unit would be `1/{project}/{region}` Note that `{project}` and `{region}` are not placeholders in this example; the literal characters `{` and `}` occur in the string.", +"type": "string" +} +}, +"type": "object" +}, +"ConsumerQuotaMetric": { +"description": "Consumer quota settings for a quota metric.", +"id": "ConsumerQuotaMetric", +"properties": { +"consumerQuotaLimits": { +"description": "The consumer quota for each quota limit defined on the metric.", +"items": { +"$ref": "ConsumerQuotaLimit" +}, +"type": "array" +}, +"descendantConsumerQuotaLimits": { +"description": "The quota limits targeting the descendant containers of the consumer in request. If the consumer in request is of type `organizations` or `folders`, the field will list per-project limits in the metric; if the consumer in request is of type `project`, the field will be empty. The `quota_buckets` field of each descendant consumer quota limit will not be populated.", +"items": { +"$ref": "ConsumerQuotaLimit" +}, +"type": "array" +}, +"displayName": { +"description": "The display name of the metric. An example name would be: `CPUs`", +"type": "string" +}, +"metric": { +"description": "The name of the metric. An example name would be: `compute.googleapis.com/cpus`", +"type": "string" +}, +"name": { +"description": "The resource name of the quota settings on this metric for this consumer. An example name would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus` The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", +"type": "string" +}, +"unit": { +"description": "The units in which the metric value is reported.", +"type": "string" +} +}, +"type": "object" +}, +"Context": { +"description": "`Context` defines which contexts an API requests. Example: context: rules: - selector: \"*\" requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using \u201cx-goog-ext--bin\u201d and \u201cx-goog-ext--jspb\u201d format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here.", +"id": "Context", +"properties": { +"rules": { +"description": "A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "ContextRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContextRule": { +"description": "A context rule provides information about the context for an individual API element.", +"id": "ContextRule", +"properties": { +"allowedRequestExtensions": { +"description": "A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowedResponseExtensions": { +"description": "A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.", +"items": { +"type": "string" +}, +"type": "array" +}, +"provided": { +"description": "A list of full type names of provided contexts. It is used to support propagating HTTP headers and ETags from the response extension.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requested": { +"description": "A list of full type names of requested contexts, only the requested context will be made available to the backend.", +"items": { +"type": "string" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Control": { +"description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", +"id": "Control", +"properties": { +"environment": { +"description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", +"type": "string" +}, +"methodPolicies": { +"description": "Defines policies applying to the API methods of the service.", +"items": { +"$ref": "MethodPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"CppSettings": { +"description": "Settings for C++ client libraries.", +"id": "CppSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"CreateAdminQuotaPolicyMetadata": { +"description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by CreateAdminQuotaPolicy.", +"id": "CreateAdminQuotaPolicyMetadata", +"properties": {}, +"type": "object" +}, +"CustomError": { +"description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", +"id": "CustomError", +"properties": { +"rules": { +"description": "The list of custom error rules that apply to individual API messages. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "CustomErrorRule" +}, +"type": "array" +}, +"types": { +"description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomErrorRule": { +"description": "A custom error rule.", +"id": "CustomErrorRule", +"properties": { +"isErrorType": { +"description": "Mark this message as possible payload in error response. Otherwise, objects of this type will be filtered when they appear in error payload.", +"type": "boolean" +}, +"selector": { +"description": "Selects messages to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"CustomHttpPattern": { +"description": "A custom pattern is used for defining custom HTTP verb.", +"id": "CustomHttpPattern", +"properties": { +"kind": { +"description": "The name of this custom HTTP verb.", +"type": "string" +}, +"path": { +"description": "The path matched by this custom verb.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteAdminQuotaPolicyMetadata": { +"description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by DeleteAdminQuotaPolicy.", +"id": "DeleteAdminQuotaPolicyMetadata", +"properties": {}, +"type": "object" +}, +"DisableServiceRequest": { +"description": "Request message for the `DisableService` method.", +"id": "DisableServiceRequest", +"properties": {}, +"type": "object" +}, +"DisableServiceResponse": { +"description": "Response message for the `DisableService` method. This response message is assigned to the `response` field of the returned Operation when that operation is done.", +"id": "DisableServiceResponse", +"properties": { +"service": { +"$ref": "GoogleApiServiceusageV1Service", +"description": "The new state of the service after disabling." +} +}, +"type": "object" +}, +"Documentation": { +"description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", +"id": "Documentation", +"properties": { +"additionalIamInfo": { +"description": "Optional information about the IAM configuration. This is typically used to link to documentation about a product's IAM roles and permissions.", +"type": "string" +}, +"documentationRootUrl": { +"description": "The URL to the root of documentation.", +"type": "string" +}, +"overview": { +"description": "Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.", +"type": "string" +}, +"pages": { +"description": "The top level pages for the documentation set.", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"rules": { +"description": "A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "DocumentationRule" +}, +"type": "array" +}, +"sectionOverrides": { +"description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"serviceRootUrl": { +"description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", +"type": "string" +}, +"summary": { +"description": "A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.", +"type": "string" +} +}, +"type": "object" +}, +"DocumentationRule": { +"description": "A documentation rule provides information about individual API elements.", +"id": "DocumentationRule", +"properties": { +"deprecationDescription": { +"description": "Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.", +"type": "string" +}, +"description": { +"description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", +"type": "string" +}, +"disableReplacementWords": { +"description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", +"type": "string" +}, +"selector": { +"description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", +"type": "string" +} +}, +"type": "object" +}, +"DotnetSettings": { +"description": "Settings for Dotnet client libraries.", +"id": "DotnetSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"forcedNamespaceAliases": { +"description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", +"items": { +"type": "string" +}, +"type": "array" +}, +"handwrittenSignatures": { +"description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoredResources": { +"description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"renamedResources": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", +"type": "object" +}, +"renamedServices": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", +"type": "object" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnableFailure": { +"description": "Provides error messages for the failing services.", +"id": "EnableFailure", +"properties": { +"errorMessage": { +"description": "An error message describing why the service could not be enabled.", +"type": "string" +}, +"serviceId": { +"description": "The service id of a service that could not be enabled.", +"type": "string" +} +}, +"type": "object" +}, +"EnableRule": { +"description": "The consumer policy rule that defines usable services and service groups.", +"id": "EnableRule", +"properties": { +"enableType": { +"description": "Client and resource project enable type.", +"enum": [ +"ENABLE_TYPE_UNSPECIFIED", +"CLIENT", +"RESOURCE", +"V1_COMPATIBLE" +], +"enumDescriptions": [ +"Unspecified enable type, which means enabled as both client and resource project.", +"Enable all clients under the CRM node specified by `ConsumerPolicy.name` to use the listed services. A client can be an API key, an OAuth client, or a service account.", +"Enable resources in the list services to be created and used under the CRM node specified by the `ConsumerPolicy.name`.", +"Activation made by Service Usage v1 API. This will be how consumers differentiate between policy changes made by v1 and v2 clients and understand what is actually possible based on those different policies." +], +"type": "string" +}, +"groups": { +"deprecated": true, +"description": "DEPRECATED: Please use field `values`. Service group should have prefix `groups/`. The names of the service groups that are enabled (Not Implemented). Example: `groups/googleServices`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"services": { +"deprecated": true, +"description": "DEPRECATED: Please use field `values`. Service should have prefix `services/`. The names of the services that are enabled. Example: `storage.googleapis.com`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"values": { +"description": "The names of the services or service groups that are enabled. Example: `services/storage.googleapis.com`, `groups/googleServices`, `groups/allServices`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EnableServiceRequest": { +"description": "Request message for the `EnableService` method.", +"id": "EnableServiceRequest", +"properties": {}, +"type": "object" +}, +"EnableServiceResponse": { +"description": "Response message for the `EnableService` method. This response message is assigned to the `response` field of the returned Operation when that operation is done.", +"id": "EnableServiceResponse", +"properties": { +"service": { +"$ref": "GoogleApiServiceusageV1Service", +"description": "The new state of the service after enabling." +} +}, +"type": "object" +}, +"Endpoint": { +"description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", +"id": "Endpoint", +"properties": { +"aliases": { +"description": "Aliases for this endpoint, these will be served by the same UrlMap as the parent endpoint, and will be provisioned in the GCP stack for the Regional Endpoints.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowCors": { +"description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", +"type": "boolean" +}, +"name": { +"description": "The canonical name of this endpoint.", +"type": "string" +}, +"target": { +"description": "The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, \"8.8.8.8\" or \"myservice.appspot.com\".", +"type": "string" +} +}, +"type": "object" +}, +"Enum": { +"description": "Enum type definition.", +"id": "Enum", +"properties": { +"edition": { +"description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", +"type": "string" +}, +"enumvalue": { +"description": "Enum value definitions.", +"items": { +"$ref": "EnumValue" +}, +"type": "array" +}, +"name": { +"description": "Enum type name.", +"type": "string" +}, +"options": { +"description": "Protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "The source context." +}, +"syntax": { +"description": "The source syntax.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"EnumValue": { +"description": "Enum value definition.", +"id": "EnumValue", +"properties": { +"name": { +"description": "Enum value name.", +"type": "string" +}, +"number": { +"description": "Enum value number.", +"format": "int32", +"type": "integer" +}, +"options": { +"description": "Protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExperimentalFeatures": { +"description": "Experimental features to be included during client library generation. These fields will be deprecated once the feature graduates and is enabled by default.", +"id": "ExperimentalFeatures", +"properties": { +"protobufPythonicTypesEnabled": { +"description": "Enables generation of protobuf code using new types that are more Pythonic which are included in `protobuf>=5.29.x`. This feature will be enabled by default 1 month after launching the feature in preview packages.", +"type": "boolean" +}, +"restAsyncIoEnabled": { +"description": "Enables generation of asynchronous REST clients if `rest` transport is enabled. By default, asynchronous REST clients will not be generated. This feature will be enabled by default 1 month after launching the feature in preview packages.", +"type": "boolean" +} +}, +"type": "object" +}, +"Field": { +"description": "A single field of a message type.", +"id": "Field", +"properties": { +"cardinality": { +"description": "The field cardinality.", +"enum": [ +"CARDINALITY_UNKNOWN", +"CARDINALITY_OPTIONAL", +"CARDINALITY_REQUIRED", +"CARDINALITY_REPEATED" +], +"enumDescriptions": [ +"For fields with unknown cardinality.", +"For optional fields.", +"For required fields. Proto2 syntax only.", +"For repeated fields." +], +"type": "string" +}, +"defaultValue": { +"description": "The string value of the default value of this field. Proto2 syntax only.", +"type": "string" +}, +"jsonName": { +"description": "The field JSON name.", +"type": "string" +}, +"kind": { +"description": "The field type.", +"enum": [ +"TYPE_UNKNOWN", +"TYPE_DOUBLE", +"TYPE_FLOAT", +"TYPE_INT64", +"TYPE_UINT64", +"TYPE_INT32", +"TYPE_FIXED64", +"TYPE_FIXED32", +"TYPE_BOOL", +"TYPE_STRING", +"TYPE_GROUP", +"TYPE_MESSAGE", +"TYPE_BYTES", +"TYPE_UINT32", +"TYPE_ENUM", +"TYPE_SFIXED32", +"TYPE_SFIXED64", +"TYPE_SINT32", +"TYPE_SINT64" +], +"enumDescriptions": [ +"Field type unknown.", +"Field type double.", +"Field type float.", +"Field type int64.", +"Field type uint64.", +"Field type int32.", +"Field type fixed64.", +"Field type fixed32.", +"Field type bool.", +"Field type string.", +"Field type group. Proto2 syntax only, and deprecated.", +"Field type message.", +"Field type bytes.", +"Field type uint32.", +"Field type enum.", +"Field type sfixed32.", +"Field type sfixed64.", +"Field type sint32.", +"Field type sint64." +], +"type": "string" +}, +"name": { +"description": "The field name.", +"type": "string" +}, +"number": { +"description": "The field number.", +"format": "int32", +"type": "integer" +}, +"oneofIndex": { +"description": "The index of the field type in `Type.oneofs`, for message or enumeration types. The first type has index 1; zero means the type is not in the list.", +"format": "int32", +"type": "integer" +}, +"options": { +"description": "The protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"packed": { +"description": "Whether to use alternative packed wire representation.", +"type": "boolean" +}, +"typeUrl": { +"description": "The field type URL, without the scheme, for message or enumeration types. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.", +"type": "string" +} +}, +"type": "object" +}, +"FieldPolicy": { +"description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", +"id": "FieldPolicy", +"properties": { +"resourcePermission": { +"description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", +"type": "string" +}, +"resourceType": { +"description": "Specifies the resource type for the resource referred to by the field.", +"type": "string" +}, +"selector": { +"description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", +"type": "string" +} +}, +"type": "object" +}, +"GetServiceIdentityMetadata": { +"description": "Metadata for the `GetServiceIdentity` method.", +"id": "GetServiceIdentityMetadata", +"properties": {}, +"type": "object" +}, +"GetServiceIdentityResponse": { +"description": "Response message for getting service identity.", +"id": "GetServiceIdentityResponse", +"properties": { +"identity": { +"$ref": "ServiceIdentity", +"description": "Service identity that service producer can use to access consumer resources. If exists is true, it contains email and unique_id. If exists is false, it contains pre-constructed email and empty unique_id." +}, +"state": { +"description": "Service identity state.", +"enum": [ +"IDENTITY_STATE_UNSPECIFIED", +"ACTIVE" +], +"enumDescriptions": [ +"Default service identity state. This value is used if the state is omitted.", +"Service identity has been created and can be used." +], +"type": "string" +} +}, +"type": "object" +}, +"GoSettings": { +"description": "Settings for Go client libraries.", +"id": "GoSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"renamedServices": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of service names to renamed services. Keys are the package relative service names and values are the name to be used for the service client and call options. publishing: go_settings: renamed_services: Publisher: TopicAdmin", +"type": "object" +} +}, +"type": "object" +}, +"GoogleApiService": { +"description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", +"id": "GoogleApiService", +"properties": { +"apis": { +"description": "A list of API interfaces exported by this service. Only the `name` field of the google.protobuf.Api needs to be provided by the configuration author, as the remaining fields will be derived from the IDL during the normalization process. It is an error to specify an API interface here which cannot be resolved against the associated IDL files.", +"items": { +"$ref": "Api" +}, +"type": "array" +}, +"authentication": { +"$ref": "Authentication", +"description": "Auth configuration." +}, +"backend": { +"$ref": "Backend", +"description": "API backend configuration." +}, +"billing": { +"$ref": "Billing", +"description": "Billing configuration." +}, +"configVersion": { +"description": "Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.", +"format": "uint32", +"type": "integer" +}, +"context": { +"$ref": "Context", +"description": "Context configuration." +}, +"control": { +"$ref": "Control", +"description": "Configuration for the service control plane." +}, +"customError": { +"$ref": "CustomError", +"description": "Custom error configuration." +}, +"documentation": { +"$ref": "Documentation", +"description": "Additional API documentation." +}, +"endpoints": { +"description": "Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.", +"items": { +"$ref": "Endpoint" +}, +"type": "array" +}, +"enums": { +"description": "A list of all enum types included in this API service. Enums referenced directly or indirectly by the `apis` are automatically included. Enums which are not referenced but shall be included should be listed here by name by the configuration author. Example: enums: - name: google.someapi.v1.SomeEnum", +"items": { +"$ref": "Enum" +}, +"type": "array" +}, +"http": { +"$ref": "Http", +"description": "HTTP configuration." +}, +"id": { +"description": "A unique ID for a specific instance of this message, typically assigned by the client for tracking purpose. Must be no longer than 63 characters and only lower case letters, digits, '.', '_' and '-' are allowed. If empty, the server may choose to generate one instead.", +"type": "string" +}, +"logging": { +"$ref": "Logging", +"description": "Logging configuration." +}, +"logs": { +"description": "Defines the logs used by this service.", +"items": { +"$ref": "LogDescriptor" +}, +"type": "array" +}, +"metrics": { +"description": "Defines the metrics used by this service.", +"items": { +"$ref": "MetricDescriptor" +}, +"type": "array" +}, +"monitoredResources": { +"description": "Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.", +"items": { +"$ref": "MonitoredResourceDescriptor" +}, +"type": "array" +}, +"monitoring": { +"$ref": "Monitoring", +"description": "Monitoring configuration." +}, +"name": { +"description": "The service name, which is a DNS-like logical identifier for the service, such as `calendar.googleapis.com`. The service name typically goes through DNS verification to make sure the owner of the service also owns the DNS name.", +"type": "string" +}, +"producerProjectId": { +"description": "The Google project that owns this service.", +"type": "string" +}, +"publishing": { +"$ref": "Publishing", +"description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." +}, +"quota": { +"$ref": "Quota", +"description": "Quota configuration." +}, +"sourceInfo": { +"$ref": "SourceInfo", +"description": "Output only. The source information for this configuration if available." +}, +"systemParameters": { +"$ref": "SystemParameters", +"description": "System parameter configuration." +}, +"systemTypes": { +"description": "A list of all proto message types included in this API service. It serves similar purpose as [google.api.Service.types], except that these types are not needed by user-defined APIs. Therefore, they will not show up in the generated discovery doc. This field should only be used to define system APIs in ESF.", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"title": { +"description": "The product title for this service, it is the name displayed in Google Cloud Console.", +"type": "string" +}, +"types": { +"description": "A list of all proto message types included in this API service. Types referenced directly or indirectly by the `apis` are automatically included. Messages which are not referenced but shall be included, such as types used by the `google.protobuf.Any` type, should be listed here by name by the configuration author. Example: types: - name: google.protobuf.Int32", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"usage": { +"$ref": "Usage", +"description": "Configuration controlling usage of this service." +} +}, +"type": "object" +}, +"GoogleApiServiceusageV1OperationMetadata": { +"description": "The operation metadata returned for the batchend services operation.", +"id": "GoogleApiServiceusageV1OperationMetadata", +"properties": { +"resourceNames": { +"description": "The full name of the resources that this operation is directly associated with.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV1Service": { +"description": "A service that is available for use by the consumer.", +"id": "GoogleApiServiceusageV1Service", +"properties": { +"config": { +"$ref": "GoogleApiServiceusageV1ServiceConfig", +"description": "The service configuration of the available service. Some fields may be filtered out of the configuration in responses to the `ListServices` method. These fields are present only in responses to the `GetService` method." +}, +"name": { +"description": "The resource name of the consumer and service. A valid name would be: - projects/123/services/serviceusage.googleapis.com", +"type": "string" +}, +"parent": { +"description": "The resource name of the consumer. A valid name would be: - projects/123", +"type": "string" +}, +"state": { +"description": "Whether or not the service has been enabled for use by the consumer.", +"enum": [ +"STATE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"The default value, which indicates that the enabled state of the service is unspecified or not meaningful. Currently, all consumers other than projects (such as folders and organizations) are always in this state.", +"The service cannot be used by this consumer. It has either been explicitly disabled, or has never been enabled.", +"The service has been explicitly enabled for use by this consumer." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV1ServiceConfig": { +"description": "The configuration of the service.", +"id": "GoogleApiServiceusageV1ServiceConfig", +"properties": { +"apis": { +"description": "A list of API interfaces exported by this service. Contains only the names, versions, and method names of the interfaces.", +"items": { +"$ref": "Api" +}, +"type": "array" +}, +"authentication": { +"$ref": "Authentication", +"description": "Auth configuration. Contains only the OAuth rules." +}, +"documentation": { +"$ref": "Documentation", +"description": "Additional API documentation. Contains only the summary and the documentation URL." +}, +"endpoints": { +"description": "Configuration for network endpoints. Contains only the names and aliases of the endpoints.", +"items": { +"$ref": "Endpoint" +}, +"type": "array" +}, +"monitoredResources": { +"description": "Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.", +"items": { +"$ref": "MonitoredResourceDescriptor" +}, +"type": "array" +}, +"monitoring": { +"$ref": "Monitoring", +"description": "Monitoring configuration. This should not include the 'producer_destinations' field." +}, +"name": { +"description": "The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.", +"type": "string" +}, +"quota": { +"$ref": "Quota", +"description": "Quota configuration." +}, +"title": { +"description": "The product title for this service.", +"type": "string" +}, +"usage": { +"$ref": "Usage", +"description": "Configuration controlling usage of this service." +} +}, +"type": "object" +}, +"GoogleApiServiceusageV1beta1GetServiceIdentityResponse": { +"description": "Response message for getting service identity.", +"id": "GoogleApiServiceusageV1beta1GetServiceIdentityResponse", +"properties": { +"identity": { +"$ref": "GoogleApiServiceusageV1beta1ServiceIdentity", +"description": "Service identity that service producer can use to access consumer resources. If exists is true, it contains email and unique_id. If exists is false, it contains pre-constructed email and empty unique_id." +}, +"state": { +"description": "Service identity state.", +"enum": [ +"IDENTITY_STATE_UNSPECIFIED", +"ACTIVE" +], +"enumDescriptions": [ +"Default service identity state. This value is used if the state is omitted.", +"Service identity has been created and can be used." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV1beta1ServiceIdentity": { +"description": "Service identity for a service. This is the identity that service producer should use to access consumer resources.", +"id": "GoogleApiServiceusageV1beta1ServiceIdentity", +"properties": { +"email": { +"description": "The email address of the service account that a service producer would use to access consumer resources.", +"type": "string" +}, +"uniqueId": { +"description": "The unique and stable id of the service account. https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts#ServiceAccount", +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2alphaConsumerPolicy": { +"description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", +"id": "GoogleApiServiceusageV2alphaConsumerPolicy", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", +"type": "object" +}, +"createTime": { +"description": "Output only. The time the policy was created. For singleton policies, this is the first touch of the policy.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"enableRules": { +"description": "Enable rules define usable services, groups, and categories. There can currently be at most one `EnableRule`. This restriction will be lifted in later releases.", +"items": { +"$ref": "GoogleApiServiceusageV2alphaEnableRule" +}, +"type": "array" +}, +"etag": { +"description": "Output only. An opaque tag indicating the current version of the policy, used for concurrency control.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the policy. Only the `default` policy is supported: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the policy was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2alphaEnableRule": { +"description": "The consumer policy rule that defines enabled services, groups, and categories.", +"id": "GoogleApiServiceusageV2alphaEnableRule", +"properties": { +"services": { +"description": "The names of the services that are enabled. Example: `services/storage.googleapis.com`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2alphaUpdateConsumerPolicyMetadata": { +"description": "Metadata for the `UpdateConsumerPolicy` method.", +"id": "GoogleApiServiceusageV2alphaUpdateConsumerPolicyMetadata", +"properties": {}, +"type": "object" +}, +"GoogleApiServiceusageV2betaAnalysis": { +"description": "A message to group the analysis information.", +"id": "GoogleApiServiceusageV2betaAnalysis", +"properties": { +"analysis": { +"$ref": "GoogleApiServiceusageV2betaAnalysisResult", +"description": "Output only. Analysis result of updating a policy.", +"readOnly": true +}, +"analysisType": { +"description": "Output only. The type of analysis.", +"enum": [ +"ANALYSIS_TYPE_UNSPECIFIED", +"ANALYSIS_TYPE_DEPENDENCY", +"ANALYSIS_TYPE_RESOURCE_USAGE" +], +"enumDescriptions": [ +"Unspecified analysis type. Do not use.", +"The analysis of service dependencies.", +"The analysis of service resource usage." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The user friendly display name of the analysis type. E.g. service dependency analysis, service resource usage analysis, etc.", +"readOnly": true, +"type": "string" +}, +"service": { +"description": "The names of the service that has analysis result of warnings or blockers. Example: `services/storage.googleapis.com`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2betaAnalysisResult": { +"description": "An analysis result including blockers and warnings.", +"id": "GoogleApiServiceusageV2betaAnalysisResult", +"properties": { +"blockers": { +"description": "Blocking information that would prevent the policy changes at runtime.", +"items": { +"$ref": "GoogleApiServiceusageV2betaImpact" +}, +"type": "array" +}, +"warnings": { +"description": "Warning information indicating that the policy changes might be unsafe, but will not block the changes at runtime.", +"items": { +"$ref": "GoogleApiServiceusageV2betaImpact" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2betaAnalyzeConsumerPolicyMetadata": { +"description": "Metadata for the `AnalyzeConsumerPolicy` method.", +"id": "GoogleApiServiceusageV2betaAnalyzeConsumerPolicyMetadata", +"properties": {}, +"type": "object" +}, +"GoogleApiServiceusageV2betaAnalyzeConsumerPolicyResponse": { +"description": "The response of analyzing a consumer policy update.", +"id": "GoogleApiServiceusageV2betaAnalyzeConsumerPolicyResponse", +"properties": { +"analysis": { +"description": "The list of analyses returned from performing the intended policy update analysis. The analysis is grouped by service name and different analysis types. The empty analysis list means that the consumer policy can be updated without any warnings or blockers.", +"items": { +"$ref": "GoogleApiServiceusageV2betaAnalysis" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2betaConsumerPolicy": { +"description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", +"id": "GoogleApiServiceusageV2betaConsumerPolicy", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", +"type": "object" +}, +"createTime": { +"description": "Output only. The time the policy was created. For singleton policies, this is the first touch of the policy.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"enableRules": { +"description": "Enable rules define usable services, groups, and categories. There can currently be at most one `EnableRule`. This restriction will be lifted in later releases.", +"items": { +"$ref": "GoogleApiServiceusageV2betaEnableRule" +}, +"type": "array" +}, +"etag": { +"description": "Output only. An opaque tag indicating the current version of the policy, used for concurrency control.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the policy. Only the `default` policy is supported: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the policy was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2betaEnableRule": { +"description": "The consumer policy rule that defines enabled services, groups, and categories.", +"id": "GoogleApiServiceusageV2betaEnableRule", +"properties": { +"services": { +"description": "The names of the services that are enabled. Example: `services/storage.googleapis.com`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2betaImpact": { +"description": "A message to group impacts of updating a policy.", +"id": "GoogleApiServiceusageV2betaImpact", +"properties": { +"detail": { +"description": "Output only. User friendly impact detail in a free form message.", +"readOnly": true, +"type": "string" +}, +"impactType": { +"description": "Output only. The type of impact.", +"enum": [ +"IMPACT_TYPE_UNSPECIFIED", +"DEPENDENCY_MISSING_DEPENDENCIES" +], +"enumDescriptions": [ +"Reserved Blocks (Block n contains codes from 100n to 100(n+1) -1 Block 0 - Special/Admin codes Block 1 - Impact Type of ANALYSIS_TYPE_DEPENDENCY Block 2 - Impact Type of ANALYSIS_TYPE_RESOURCE_USAGE ...", +"Block 1 - Impact Type of ANALYSIS_TYPE_DEPENDENCY" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiServiceusageV2betaUpdateConsumerPolicyMetadata": { +"description": "Metadata for the `UpdateConsumerPolicy` method.", +"id": "GoogleApiServiceusageV2betaUpdateConsumerPolicyMetadata", +"properties": {}, +"type": "object" +}, +"Http": { +"description": "Defines the HTTP configuration for an API service. It contains a list of HttpRule, each specifying the mapping of an RPC method to one or more HTTP REST API methods.", +"id": "Http", +"properties": { +"fullyDecodeReservedExpansion": { +"description": "When set to true, URL path parameters will be fully URI-decoded except in cases of single segment matches in reserved expansion, where \"%2F\" will be left encoded. The default behavior is to not decode RFC 6570 reserved characters in multi segment matches.", +"type": "boolean" +}, +"rules": { +"description": "A list of HTTP configuration rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "HttpRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpRule": { +"description": "gRPC Transcoding gRPC Transcoding is a feature for mapping between a gRPC method and one or more HTTP REST endpoints. It allows developers to build a single API service that supports both gRPC APIs and REST APIs. Many systems, including [Google APIs](https://github.com/googleapis/googleapis), [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC Gateway](https://github.com/grpc-ecosystem/grpc-gateway), and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature and use it for large scale production services. `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies how different portions of the gRPC request message are mapped to the URL path, URL query parameters, and HTTP request body. It also controls how the gRPC response message is mapped to the HTTP response body. `HttpRule` is typically specified as an `google.api.http` annotation on the gRPC method. Each mapping specifies a URL path template and an HTTP method. The path template may refer to one or more fields in the gRPC request message, as long as each field is a non-repeated field with a primitive (non-message) type. The path template controls how fields of the request message are mapped to the URL path. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: \"/v1/{name=messages/*}\" }; } } message GetMessageRequest { string name = 1; // Mapped to URL path. } message Message { string text = 1; // The resource content. } This enables an HTTP REST to gRPC mapping as below: - HTTP: `GET /v1/messages/123456` - gRPC: `GetMessage(name: \"messages/123456\")` Any fields in the request message which are not bound by the path template automatically become HTTP query parameters if there is no HTTP request body. For example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get:\"/v1/messages/{message_id}\" }; } } message GetMessageRequest { message SubMessage { string subfield = 1; } string message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL query parameter `revision`. SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. } This enables a HTTP JSON to RPC mapping as below: - HTTP: `GET /v1/messages/123456?revision=2&sub.subfield=foo` - gRPC: `GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield: \"foo\"))` Note that fields which are mapped to URL query parameters must have a primitive type or a repeated primitive type or a non-repeated message type. In the case of a repeated type, the parameter can be repeated in the URL as `...?param=A¶m=B`. In the case of a message type, each field of the message is mapped to a separate parameter, such as `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request body, the `body` field specifies the mapping. Consider a REST update method on the message resource collection: service Messaging { rpc UpdateMessage(UpdateMessageRequest) returns (Message) { option (google.api.http) = { patch: \"/v1/messages/{message_id}\" body: \"message\" }; } } message UpdateMessageRequest { string message_id = 1; // mapped to the URL Message message = 2; // mapped to the body } The following HTTP JSON to RPC mapping is enabled, where the representation of the JSON in the request body is determined by protos JSON encoding: - HTTP: `PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` - gRPC: `UpdateMessage(message_id: \"123456\" message { text: \"Hi!\" })` The special name `*` can be used in the body mapping to define that every field not bound by the path template should be mapped to the request body. This enables the following alternative definition of the update method: service Messaging { rpc UpdateMessage(Message) returns (Message) { option (google.api.http) = { patch: \"/v1/messages/{message_id}\" body: \"*\" }; } } message Message { string message_id = 1; string text = 2; } The following HTTP JSON to RPC mapping is enabled: - HTTP: `PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` - gRPC: `UpdateMessage(message_id: \"123456\" text: \"Hi!\")` Note that when using `*` in the body mapping, it is not possible to have HTTP parameters, as all fields not bound by the path end in the body. This makes this option more rarely used in practice when defining REST APIs. The common usage of `*` is in custom methods which don't use the URL at all for transferring data. It is possible to define multiple HTTP methods for one RPC by using the `additional_bindings` option. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: \"/v1/messages/{message_id}\" additional_bindings { get: \"/v1/users/{user_id}/messages/{message_id}\" } }; } } message GetMessageRequest { string message_id = 1; string user_id = 2; } This enables the following two alternative HTTP JSON to RPC mappings: - HTTP: `GET /v1/messages/123456` - gRPC: `GetMessage(message_id: \"123456\")` - HTTP: `GET /v1/users/me/messages/123456` - gRPC: `GetMessage(user_id: \"me\" message_id: \"123456\")` Rules for HTTP mapping 1. Leaf request fields (recursive expansion nested messages in the request message) are classified into three categories: - Fields referred by the path template. They are passed via the URL path. - Fields referred by the HttpRule.body. They are passed via the HTTP request body. - All other fields are passed via the URL query parameters, and the parameter name is the field path in the request message. A repeated field can be represented as multiple query parameters under the same name. 2. If HttpRule.body is \"*\", there is no URL query parameter, all fields are passed via URL path and HTTP request body. 3. If HttpRule.body is omitted, there is no HTTP request body, all fields are passed via URL path and URL query parameters. Path template syntax Template = \"/\" Segments [ Verb ] ; Segments = Segment { \"/\" Segment } ; Segment = \"*\" | \"**\" | LITERAL | Variable ; Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ; FieldPath = IDENT { \".\" IDENT } ; Verb = \":\" LITERAL ; The syntax `*` matches a single URL path segment. The syntax `**` matches zero or more URL path segments, which must be the last part of the URL path except the `Verb`. The syntax `Variable` matches part of the URL path as specified by its template. A variable template must not contain other variables. If a variable matches a single path segment, its template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` contains any reserved character, such characters should be percent-encoded before the matching. If a variable contains exactly one path segment, such as `\"{var}\"` or `\"{var=*}\"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{var}`. If a variable contains multiple path segments, such as `\"{var=foo/*}\"` or `\"{var=**}\"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding, except \"%2F\" and \"%2f\" are left unchanged. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{+var}`. Using gRPC API Service Configuration gRPC API Service Configuration (service config) is a configuration language for configuring a gRPC service to become a user-facing product. The service config is simply the YAML representation of the `google.api.Service` proto message. As an alternative to annotating your proto file, you can configure gRPC transcoding in your service config YAML files. You do this by specifying a `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same effect as the proto annotation. This can be particularly useful if you have a proto that is reused in multiple services. Note that any transcoding specified in the service config will override any matching transcoding configuration in the proto. The following example selects a gRPC method and applies an `HttpRule` to it: http: rules: - selector: example.v1.Messaging.GetMessage get: /v1/messages/{message_id}/{sub.subfield} Special notes When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the proto to JSON conversion must follow the [proto3 specification](https://developers.google.com/protocol-buffers/docs/proto3#json). While the single segment variable follows the semantics of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String Expansion, the multi segment variable **does not** follow RFC 6570 Section 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion does not expand special characters like `?` and `#`, which would lead to invalid URLs. As the result, gRPC Transcoding uses a custom encoding for multi segment variables. The path variables **must not** refer to any repeated or mapped field, because client libraries are not capable of handling such variable expansion. The path variables **must not** capture the leading \"/\" character. The reason is that the most common use case \"{var}\" does not capture the leading \"/\" character. For consistency, all path variables must share the same behavior. Repeated message fields must not be mapped to URL query parameters, because no client library can support such complicated mapping. If an API needs to use a JSON array for request or response body, it can map the request or response body to a repeated field. However, some gRPC Transcoding implementations may not support this feature.", +"id": "HttpRule", +"properties": { +"additionalBindings": { +"description": "Additional HTTP bindings for the selector. Nested bindings must not contain an `additional_bindings` field themselves (that is, the nesting may only be one level deep).", +"items": { +"$ref": "HttpRule" +}, +"type": "array" +}, +"body": { +"description": "The name of the request field whose value is mapped to the HTTP request body, or `*` for mapping all request fields not captured by the path pattern to the HTTP body, or omitted for not having any HTTP request body. NOTE: the referred field must be present at the top-level of the request message type.", +"type": "string" +}, +"custom": { +"$ref": "CustomHttpPattern", +"description": "The custom pattern is used for specifying an HTTP method that is not included in the `pattern` field, such as HEAD, or \"*\" to leave the HTTP method unspecified for this rule. The wild-card rule is useful for services that provide content to Web (HTML) clients." +}, +"delete": { +"description": "Maps to HTTP DELETE. Used for deleting a resource.", +"type": "string" +}, +"get": { +"description": "Maps to HTTP GET. Used for listing and getting information about resources.", +"type": "string" +}, +"patch": { +"description": "Maps to HTTP PATCH. Used for updating a resource.", +"type": "string" +}, +"post": { +"description": "Maps to HTTP POST. Used for creating a resource or performing an action.", +"type": "string" +}, +"put": { +"description": "Maps to HTTP PUT. Used for replacing a resource.", +"type": "string" +}, +"responseBody": { +"description": "Optional. The name of the response field whose value is mapped to the HTTP response body. When omitted, the entire response message will be used as the HTTP response body. NOTE: The referred field must be present at the top-level of the response message type.", +"type": "string" +}, +"selector": { +"description": "Selects a method to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Impact": { +"description": "A message to group impacts of updating a policy.", +"id": "Impact", +"properties": { +"detail": { +"description": "Output only. User friendly impact detail in a free form message.", +"readOnly": true, +"type": "string" +}, +"impactType": { +"description": "Output only. The type of impact.", +"enum": [ +"IMPACT_TYPE_UNSPECIFIED", +"DEPENDENCY_MISSING_DEPENDENCIES", +"RESOURCE_EXISTENCE_PROJECT" +], +"enumDescriptions": [ +"Reserved Blocks (Block n contains codes from 100n to 100(n+1) -1 Block 0 - Special/Admin codes Block 1 - Impact Type of ANALYSIS_TYPE_DEPENDENCY Block 2 - Impact Type of ANALYSIS_TYPE_RESOURCE_USAGE Block 3 - Impact Type of ANALYSIS_TYPE_RESOURCE_EXISTENCE ...", +"Block 1 - Impact Type of ANALYSIS_TYPE_DEPENDENCY", +"Block 3 - Impact Type of ANALYSIS_TYPE_RESOURCE_EXISTENCE" +], +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "The parent resource that the analysis is based on and the service name that the analysis is for. Example: `projects/100/services/compute.googleapis.com`, folders/101/services/compute.googleapis.com` and `organizations/102/services/compute.googleapis.com`. Usually, the parent resource here is same as the parent resource of the analyzed policy. However, for some analysis types, the parent can be different. For example, for resource existence analysis, if the parent resource of the analyzed policy is a folder or an organization, the parent resource here can still be the project that contains the resources.", +"type": "string" +} +}, +"type": "object" +}, +"ImportAdminOverridesMetadata": { +"description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by ImportAdminOverrides.", +"id": "ImportAdminOverridesMetadata", +"properties": {}, +"type": "object" +}, +"ImportAdminOverridesRequest": { +"description": "Request message for ImportAdminOverrides", +"id": "ImportAdminOverridesRequest", +"properties": { +"force": { +"description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"items": { +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"type": "string" +}, +"type": "array" +}, +"inlineSource": { +"$ref": "OverrideInlineSource", +"description": "The import data is specified in the request message itself" +} +}, +"type": "object" +}, +"ImportAdminOverridesResponse": { +"description": "Response message for ImportAdminOverrides", +"id": "ImportAdminOverridesResponse", +"properties": { +"overrides": { +"description": "The overrides that were created from the imported data.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImportAdminQuotaPoliciesMetadata": { +"description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by ImportAdminQuotaPolicies.", +"id": "ImportAdminQuotaPoliciesMetadata", +"properties": {}, +"type": "object" +}, +"ImportAdminQuotaPoliciesResponse": { +"description": "Response message for ImportAdminQuotaPolicies", +"id": "ImportAdminQuotaPoliciesResponse", +"properties": { +"policies": { +"description": "The policies that were created from the imported data.", +"items": { +"$ref": "AdminQuotaPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImportConsumerOverridesMetadata": { +"description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by ImportConsumerOverrides.", +"id": "ImportConsumerOverridesMetadata", +"properties": {}, +"type": "object" +}, +"ImportConsumerOverridesRequest": { +"description": "Request message for ImportConsumerOverrides", +"id": "ImportConsumerOverridesRequest", +"properties": { +"force": { +"description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"type": "boolean" +}, +"forceOnly": { +"description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", +"items": { +"enum": [ +"QUOTA_SAFETY_CHECK_UNSPECIFIED", +"LIMIT_DECREASE_BELOW_USAGE", +"LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" +], +"enumDescriptions": [ +"Unspecified quota safety check.", +"Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", +"Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." +], +"type": "string" +}, +"type": "array" +}, +"inlineSource": { +"$ref": "OverrideInlineSource", +"description": "The import data is specified in the request message itself" +} +}, +"type": "object" +}, +"ImportConsumerOverridesResponse": { +"description": "Response message for ImportConsumerOverrides", +"id": "ImportConsumerOverridesResponse", +"properties": { +"overrides": { +"description": "The overrides that were created from the imported data.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"JavaSettings": { +"description": "Settings for Java client libraries.", +"id": "JavaSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"libraryPackage": { +"description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", +"type": "string" +}, +"serviceClassNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", +"type": "object" +} +}, +"type": "object" +}, +"JwtLocation": { +"description": "Specifies a location to extract JWT from an API request.", +"id": "JwtLocation", +"properties": { +"cookie": { +"description": "Specifies cookie name to extract JWT token.", +"type": "string" +}, +"header": { +"description": "Specifies HTTP header name to extract JWT token.", +"type": "string" +}, +"query": { +"description": "Specifies URL query parameter name to extract JWT token.", +"type": "string" +}, +"valuePrefix": { +"description": "The value prefix. The value format is \"value_prefix{token}\" Only applies to \"in\" header type. Must be empty for \"in\" query type. If not empty, the header value has to match (case sensitive) this prefix. If not matched, JWT will not be extracted. If matched, JWT will be extracted after the prefix is removed. For example, for \"Authorization: Bearer {JWT}\", value_prefix=\"Bearer \" with a space at the end.", +"type": "string" +} +}, +"type": "object" +}, +"LabelDescriptor": { +"description": "A description of a label.", +"id": "LabelDescriptor", +"properties": { +"description": { +"description": "A human-readable description for the label.", +"type": "string" +}, +"key": { +"description": "The label key.", +"type": "string" +}, +"valueType": { +"description": "The type of data that can be assigned to the label.", +"enum": [ +"STRING", +"BOOL", +"INT64" +], +"enumDescriptions": [ +"A variable-length string. This is the default.", +"Boolean; true or false.", +"A 64-bit signed integer." +], +"type": "string" +} +}, +"type": "object" +}, +"ListAdminOverridesResponse": { +"description": "Response message for ListAdminOverrides.", +"id": "ListAdminOverridesResponse", +"properties": { +"nextPageToken": { +"description": "Token identifying which result to start with; returned by a previous list call.", +"type": "string" +}, +"overrides": { +"description": "Admin overrides on this limit.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListConsumerOverridesResponse": { +"description": "Response message for ListConsumerOverrides.", +"id": "ListConsumerOverridesResponse", +"properties": { +"nextPageToken": { +"description": "Token identifying which result to start with; returned by a previous list call.", +"type": "string" +}, +"overrides": { +"description": "Consumer overrides on this limit.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListConsumerQuotaMetricsResponse": { +"description": "Response message for ListConsumerQuotaMetrics", +"id": "ListConsumerQuotaMetricsResponse", +"properties": { +"metrics": { +"description": "Quota settings for the consumer, organized by quota metric.", +"items": { +"$ref": "ConsumerQuotaMetric" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token identifying which result to start with; returned by a previous list call.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServicesResponse": { +"description": "Response message for the `ListServices` method.", +"id": "ListServicesResponse", +"properties": { +"nextPageToken": { +"description": "Token that can be passed to `ListServices` to resume a paginated query.", +"type": "string" +}, +"services": { +"description": "The available services for the requested project.", +"items": { +"$ref": "Service" +}, +"type": "array" +} +}, +"type": "object" +}, +"LogDescriptor": { +"description": "A description of a log type. Example in YAML format: - name: library.googleapis.com/activity_history description: The history of borrowing and returning library items. display_name: Activity labels: - key: /customer_id description: Identifier of a library customer", +"id": "LogDescriptor", +"properties": { +"description": { +"description": "A human-readable description of this log. This information appears in the documentation and can contain details.", +"type": "string" +}, +"displayName": { +"description": "The human-readable name for this log. This information appears on the user interface and should be concise.", +"type": "string" +}, +"labels": { +"description": "The set of labels that are available to describe a specific log entry. Runtime requests that contain labels not specified here are considered invalid.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"name": { +"description": "The name of the log. It must be less than 512 characters long and can include the following characters: upper- and lower-case alphanumeric characters [A-Za-z0-9], and punctuation characters including slash, underscore, hyphen, period [/_-.].", +"type": "string" +} +}, +"type": "object" +}, +"Logging": { +"description": "Logging configuration of the service. The following example shows how to configure logs to be sent to the producer and consumer projects. In the example, the `activity_history` log is sent to both the producer and consumer projects, whereas the `purchase_history` log is only sent to the producer project. monitored_resources: - type: library.googleapis.com/branch labels: - key: /city description: The city where the library branch is located in. - key: /name description: The name of the branch. logs: - name: activity_history labels: - key: /customer_id - name: purchase_history logging: producer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history - purchase_history consumer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history", +"id": "Logging", +"properties": { +"consumerDestinations": { +"description": "Logging configurations for sending logs to the consumer project. There can be multiple consumer destinations, each one must have a different monitored resource type. A log can be used in at most one consumer destination.", +"items": { +"$ref": "LoggingDestination" +}, +"type": "array" +}, +"producerDestinations": { +"description": "Logging configurations for sending logs to the producer project. There can be multiple producer destinations, each one must have a different monitored resource type. A log can be used in at most one producer destination.", +"items": { +"$ref": "LoggingDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoggingDestination": { +"description": "Configuration of a specific logging destination (the producer project or the consumer project).", +"id": "LoggingDestination", +"properties": { +"logs": { +"description": "Names of the logs to be sent to this destination. Each name must be defined in the Service.logs section. If the log name is not a domain scoped name, it will be automatically prefixed with the service name followed by \"/\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in the Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"LongRunning": { +"description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", +"id": "LongRunning", +"properties": { +"initialPollDelay": { +"description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", +"format": "google-duration", +"type": "string" +}, +"maxPollDelay": { +"description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", +"format": "google-duration", +"type": "string" +}, +"pollDelayMultiplier": { +"description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", +"format": "float", +"type": "number" +}, +"totalPollTimeout": { +"description": "Total polling timeout. Default value: 5 minutes.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Method": { +"description": "Method represents a method of an API interface.", +"id": "Method", +"properties": { +"name": { +"description": "The simple name of this method.", +"type": "string" +}, +"options": { +"description": "Any metadata attached to the method.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"requestStreaming": { +"description": "If true, the request is streamed.", +"type": "boolean" +}, +"requestTypeUrl": { +"description": "A URL of the input message type.", +"type": "string" +}, +"responseStreaming": { +"description": "If true, the response is streamed.", +"type": "boolean" +}, +"responseTypeUrl": { +"description": "The URL of the output message type.", +"type": "string" +}, +"syntax": { +"description": "The source syntax of this method.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"MethodPolicy": { +"description": "Defines policies applying to an RPC method.", +"id": "MethodPolicy", +"properties": { +"requestPolicies": { +"description": "Policies that are applicable to the request message.", +"items": { +"$ref": "FieldPolicy" +}, +"type": "array" +}, +"selector": { +"description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", +"type": "string" +} +}, +"type": "object" +}, +"MethodSettings": { +"description": "Describes the generator configuration for a method.", +"id": "MethodSettings", +"properties": { +"autoPopulatedFields": { +"description": "List of top-level fields of the request message, that should be automatically populated by the client libraries based on their (google.api.field_info).format. Currently supported format: UUID4. Example of a YAML configuration: publishing: method_settings: - selector: google.example.v1.ExampleService.CreateExample auto_populated_fields: - request_id", +"items": { +"type": "string" +}, +"type": "array" +}, +"longRunning": { +"$ref": "LongRunning", +"description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" +}, +"selector": { +"description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", +"type": "string" +} +}, +"type": "object" +}, +"MetricDescriptor": { +"description": "Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. ", +"id": "MetricDescriptor", +"properties": { +"description": { +"description": "A detailed description of the metric, which can be used in documentation.", +"type": "string" +}, +"displayName": { +"description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.", +"type": "string" +}, +"labels": { +"description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the `appengine.googleapis.com/http/server/response_latencies` metric type has a label for the HTTP response code, `response_code`, so you can look at latencies for successful responses or just for responses that failed.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"launchStage": { +"description": "Optional. The launch stage of the metric definition.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"metadata": { +"$ref": "MetricDescriptorMetadata", +"description": "Optional. Metadata which can be used to guide usage of the metric." +}, +"metricKind": { +"description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of `metric_kind` and `value_type` might not be supported.", +"enum": [ +"METRIC_KIND_UNSPECIFIED", +"GAUGE", +"DELTA", +"CUMULATIVE" +], +"enumDescriptions": [ +"Do not use this default value.", +"An instantaneous measurement of a value.", +"The change in a value during a time interval.", +"A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." +], +"type": "string" +}, +"monitoredResourceTypes": { +"description": "Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the metric descriptor.", +"type": "string" +}, +"type": { +"description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name `custom.googleapis.com` or `external.googleapis.com`. Metric types should use a natural hierarchical grouping. For example: \"custom.googleapis.com/invoice/paid/amount\" \"external.googleapis.com/prometheus/up\" \"appengine.googleapis.com/http/server/response_latencies\"", +"type": "string" +}, +"unit": { +"description": "The units in which the metric value is reported. It is only applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the representation of the stored metric values. Different systems might scale the values to be more easily displayed (so a value of `0.02kBy` _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of the metric is always in thousands of bytes, no matter how it might be displayed. If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if you want a custom metric to record data in a more granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). The supported units are a subset of [The Unified Code for Units of Measure](https://unitsofmeasure.org/ucum.html) standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these connectors: * `/` division or ratio (as an infix operator). For examples, `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in a metric `unit`; rates should always be computed at query time from the underlying cumulative or delta value). * `.` multiplication or composition (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: Expression = Component { \".\" Component } { \"/\" Component } ; Component = ( [ PREFIX ] UNIT | \"%\" ) [ Annotation ] | Annotation | \"1\" ; Annotation = \"{\" NAME \"}\" ; Notes: * `Annotation` is just a comment if it follows a `UNIT`. If the annotation is used alone, then the unit is equivalent to `1`. For examples, `{request}/s == 1/s`, `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable ASCII characters not containing `{` or `}`. * `1` represents a unitary [dimensionless unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as in `1/s`. It is typically used when none of the basic units are appropriate. For example, \"new users per day\" can be represented as `1/d` or `{new-users}/d` (and a metric value `5` would mean \"5 new users). Alternatively, \"thousands of page views per day\" would be represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would mean \"5300 page views per day\"). * `%` represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value `3` means \"3 percent\"). * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value `0.03` means \"3 percent\").", +"type": "string" +}, +"valueType": { +"description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of `metric_kind` and `value_type` might not be supported.", +"enum": [ +"VALUE_TYPE_UNSPECIFIED", +"BOOL", +"INT64", +"DOUBLE", +"STRING", +"DISTRIBUTION", +"MONEY" +], +"enumDescriptions": [ +"Do not use this default value.", +"The value is a boolean. This value type can be used only if the metric kind is `GAUGE`.", +"The value is a signed 64-bit integer.", +"The value is a double precision floating point number.", +"The value is a text string. This value type can be used only if the metric kind is `GAUGE`.", +"The value is a `Distribution`.", +"The value is money." +], +"type": "string" +} +}, +"type": "object" +}, +"MetricDescriptorMetadata": { +"description": "Additional annotations that can be used to guide the usage of a metric.", +"id": "MetricDescriptorMetadata", +"properties": { +"ingestDelay": { +"description": "The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors.", +"format": "google-duration", +"type": "string" +}, +"launchStage": { +"deprecated": true, +"description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"samplePeriod": { +"description": "The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period.", +"format": "google-duration", +"type": "string" +}, +"timeSeriesResourceHierarchyLevel": { +"description": "The scope of the timeseries data of the metric.", +"items": { +"enum": [ +"TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED", +"PROJECT", +"ORGANIZATION", +"FOLDER" +], +"enumDescriptions": [ +"Do not use this default value.", +"Scopes a metric to a project.", +"Scopes a metric to an organization.", +"Scopes a metric to a folder." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"MetricRule": { +"description": "Bind API methods to metrics. Binding a method to a metric causes that metric's configured quota behaviors to apply to the method call.", +"id": "MetricRule", +"properties": { +"metricCosts": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Metrics to update when the selected methods are called, and the associated cost applied to each metric. The key of the map is the metric name, and the values are the amount increased for the metric against which the quota limits are defined. The value must not be negative.", +"type": "object" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Mixin": { +"description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", +"id": "Mixin", +"properties": { +"name": { +"description": "The fully qualified name of the interface which is included.", +"type": "string" +}, +"root": { +"description": "If non-empty specifies a path under which inherited HTTP paths are rooted.", +"type": "string" +} +}, +"type": "object" +}, +"MonitoredResourceDescriptor": { +"description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and `\"zone\"` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API. ", +"id": "MonitoredResourceDescriptor", +"properties": { +"description": { +"description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", +"type": "string" +}, +"displayName": { +"description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `\"Google Cloud SQL Database\"`.", +"type": "string" +}, +"labels": { +"description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `\"database_id\"` and `\"zone\"`.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"launchStage": { +"description": "Optional. The launch stage of the monitored resource definition.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"name": { +"description": "Optional. The resource name of the monitored resource descriptor: `\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `\"monitoredResourceDescriptors/{type}\"`.", +"type": "string" +}, +"type": { +"description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", +"type": "string" +} +}, +"type": "object" +}, +"Monitoring": { +"description": "Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: \"Library Branch\" description: \"A branch of a library.\" launch_stage: GA labels: - key: resource_container description: \"The Cloud container (ie. project id) for the Branch.\" - key: location description: \"The location of the library branch.\" - key: branch_id description: \"The id of the branch.\" metrics: - name: library.googleapis.com/book/returned_count display_name: \"Books Returned\" description: \"The count of books that have been returned.\" launch_stage: GA metric_kind: DELTA value_type: INT64 unit: \"1\" labels: - key: customer_id description: \"The id of the customer.\" - name: library.googleapis.com/book/num_overdue display_name: \"Books Overdue\" description: \"The current number of overdue books.\" launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: \"1\" labels: - key: customer_id description: \"The id of the customer.\" monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue", +"id": "Monitoring", +"properties": { +"consumerDestinations": { +"description": "Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.", +"items": { +"$ref": "MonitoringDestination" +}, +"type": "array" +}, +"producerDestinations": { +"description": "Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.", +"items": { +"$ref": "MonitoringDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"MonitoringDestination": { +"description": "Configuration of a specific monitoring destination (the producer project or the consumer project).", +"id": "MonitoringDestination", +"properties": { +"metrics": { +"description": "Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"NodeSettings": { +"description": "Settings for Node client libraries.", +"id": "NodeSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"OAuthRequirements": { +"description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", +"id": "OAuthRequirements", +"properties": { +"canonicalScopes": { +"description": "The list of publicly documented OAuth scopes that are allowed access. An OAuth token containing any of these scopes will be accepted. Example: canonical_scopes: https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/calendar.read", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "The operation metadata returned for the batchend services operation.", +"id": "OperationMetadata", +"properties": { +"resourceNames": { +"description": "The full name of the resources that this operation is directly associated with.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Option": { +"description": "A protocol buffer option, which can be attached to a message, field, enumeration, etc.", +"id": "Option", +"properties": { +"name": { +"description": "The option's name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `\"map_entry\"`. For custom options, it should be the fully-qualified name. For example, `\"google.api.http\"`.", +"type": "string" +}, +"value": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The option's value packed in an Any message. If the value is a primitive, the corresponding wrapper type defined in google/protobuf/wrappers.proto should be used. If the value is an enum, it should be stored as an int32 value using the google.protobuf.Int32Value type.", +"type": "object" +} +}, +"type": "object" +}, +"OverrideInlineSource": { +"description": "Import data embedded in the request message", +"id": "OverrideInlineSource", +"properties": { +"overrides": { +"description": "The overrides to create. Each override must have a value for 'metric' and 'unit', to specify which metric and which limit the override should be applied to. The 'name' field of the override does not need to be set; it is ignored.", +"items": { +"$ref": "QuotaOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"Page": { +"description": "Represents a documentation page. A page can contain subpages to represent nested documentation set structure.", +"id": "Page", +"properties": { +"content": { +"description": "The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.", +"type": "string" +}, +"name": { +"description": "The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.", +"type": "string" +}, +"subpages": { +"description": "Subpages of this page. The order of subpages specified here will be honored in the generated docset.", +"items": { +"$ref": "Page" +}, +"type": "array" +} +}, +"type": "object" +}, +"PhpSettings": { +"description": "Settings for Php client libraries.", +"id": "PhpSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"ProducerQuotaPolicy": { +"description": "Quota policy created by service producer.", +"id": "ProducerQuotaPolicy", +"properties": { +"container": { +"description": "The cloud resource container at which the quota policy is created. The format is `{container_type}/{container_number}`", +"type": "string" +}, +"dimensions": { +"additionalProperties": { +"type": "string" +}, +"description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in {brackets} in the unit (besides {project} or {user}) is a defined key. * `project` is not a valid key; the project is already specified in the parent resource name. * `user` is not a valid key; the API does not support quota policies that apply only to a specific user. * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * If any valid key other than `region` or `zone` appears in the map, then all valid keys other than `region` or `zone` must also appear in the map.", +"type": "object" +}, +"metric": { +"description": "The name of the metric to which this policy applies. An example name would be: `compute.googleapis.com/cpus`", +"type": "string" +}, +"name": { +"description": "The resource name of the policy. This name is generated by the server when the policy is created. Example names would be: `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerQuotaPolicies/4a3f2c1d`", +"type": "string" +}, +"policyValue": { +"description": "The quota policy value. Can be any nonnegative integer, or -1 (unlimited quota).", +"format": "int64", +"type": "string" +}, +"unit": { +"description": "The limit unit of the limit to which this policy applies. An example unit would be: `1/{project}/{region}` Note that `{project}` and `{region}` are not placeholders in this example; the literal characters `{` and `}` occur in the string.", +"type": "string" +} +}, +"type": "object" +}, +"Publishing": { +"description": "This message configures the settings for publishing [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from the service config.", +"id": "Publishing", +"properties": { +"apiShortName": { +"description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", +"type": "string" +}, +"codeownerGithubTeams": { +"description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", +"items": { +"type": "string" +}, +"type": "array" +}, +"docTagPrefix": { +"description": "A prefix used in sample code when demarking regions to be included in documentation.", +"type": "string" +}, +"documentationUri": { +"description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", +"type": "string" +}, +"githubLabel": { +"description": "GitHub label to apply to issues and pull requests opened for this API.", +"type": "string" +}, +"librarySettings": { +"description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", +"items": { +"$ref": "ClientLibrarySettings" +}, +"type": "array" +}, +"methodSettings": { +"description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", +"items": { +"$ref": "MethodSettings" +}, +"type": "array" +}, +"newIssueUri": { +"description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", +"type": "string" +}, +"organization": { +"description": "For whom the client library is being published.", +"enum": [ +"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", +"CLOUD", +"ADS", +"PHOTOS", +"STREET_VIEW", +"SHOPPING", +"GEO", +"GENERATIVE_AI" +], +"enumDescriptions": [ +"Not useful.", +"Google Cloud Platform Org.", +"Ads (Advertising) Org.", +"Photos Org.", +"Street View Org.", +"Shopping Org.", +"Geo Org.", +"Generative AI - https://developers.generativeai.google" +], +"type": "string" +}, +"protoReferenceDocumentationUri": { +"description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", +"type": "string" +}, +"restReferenceDocumentationUri": { +"description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", +"type": "string" +} +}, +"type": "object" +}, +"PythonSettings": { +"description": "Settings for Python client libraries.", +"id": "PythonSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"experimentalFeatures": { +"$ref": "ExperimentalFeatures", +"description": "Experimental features to be included during client library generation." +} +}, +"type": "object" +}, +"Quota": { +"description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", +"id": "Quota", +"properties": { +"limits": { +"description": "List of QuotaLimit definitions for the service.", +"items": { +"$ref": "QuotaLimit" +}, +"type": "array" +}, +"metricRules": { +"description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", +"items": { +"$ref": "MetricRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"QuotaBucket": { +"description": "A quota bucket is a quota provisioning unit for a specific set of dimensions.", +"id": "QuotaBucket", +"properties": { +"adminOverride": { +"$ref": "QuotaOverride", +"description": "Admin override on this quota bucket." +}, +"consumerOverride": { +"$ref": "QuotaOverride", +"description": "Consumer override on this quota bucket." +}, +"defaultLimit": { +"description": "The default limit of this quota bucket, as specified by the service configuration.", +"format": "int64", +"type": "string" +}, +"dimensions": { +"additionalProperties": { +"type": "string" +}, +"description": "The dimensions of this quota bucket. If this map is empty, this is the global bucket, which is the default quota value applied to all requests that do not have a more specific override. If this map is nonempty, the default limit, effective limit, and quota overrides apply only to requests that have the dimensions given in the map. For example, if the map has key `region` and value `us-east-1`, then the specified effective limit is only effective in that region, and the specified overrides apply only in that region.", +"type": "object" +}, +"effectiveLimit": { +"description": "The effective limit of this quota bucket. Equal to default_limit if there are no overrides.", +"format": "int64", +"type": "string" +}, +"producerOverride": { +"$ref": "QuotaOverride", +"description": "Producer override on this quota bucket." +}, +"producerQuotaPolicy": { +"$ref": "ProducerQuotaPolicy", +"description": "Producer policy inherited from the closet ancestor of the current consumer." +}, +"rolloutInfo": { +"$ref": "RolloutInfo", +"description": "Rollout information of this quota bucket. This field is present only if the effective limit will change due to the ongoing rollout of the service config." +} +}, +"type": "object" +}, +"QuotaLimit": { +"description": "`QuotaLimit` defines a specific limit that applies over a specified duration for a limit type. There can be at most one limit for a duration and limit type combination defined within a `QuotaGroup`.", +"id": "QuotaLimit", +"properties": { +"defaultLimit": { +"description": "Default number of tokens that can be consumed during the specified duration. This is the number of tokens assigned when a client application developer activates the service for his/her project. Specifying a value of 0 will block all requests. This can be used if you are provisioning quota to selected consumers and blocking others. Similarly, a value of -1 will indicate an unlimited quota. No other negative values are allowed. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Optional. User-visible, extended description for this quota limit. Should be used only when more context is needed to understand this limit than provided by the limit's display name (see: `display_name`).", +"type": "string" +}, +"displayName": { +"description": "User-visible display name for this limit. Optional. If not set, the UI will provide a default display name based on the quota configuration. This field can be used to override the default display name generated from the configuration.", +"type": "string" +}, +"duration": { +"description": "Duration of this limit in textual notation. Must be \"100s\" or \"1d\". Used by group-based quotas only.", +"type": "string" +}, +"freeTier": { +"description": "Free tier value displayed in the Developers Console for this limit. The free tier is the number of tokens that will be subtracted from the billed amount when billing is enabled. This field can only be set on a limit with duration \"1d\", in a billable group; it is invalid on any other limit. If this field is not set, it defaults to 0, indicating that there is no free tier for this service. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"maxLimit": { +"description": "Maximum number of tokens that can be consumed during the specified duration. Client application developers can override the default limit up to this maximum. If specified, this value cannot be set to a value less than the default limit. If not specified, it is set to the default limit. To allow clients to apply overrides with no upper bound, set this to -1, indicating unlimited maximum quota. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"metric": { +"description": "The name of the metric this quota limit applies to. The quota limits with the same metric will be checked together during runtime. The metric must be defined within the service config.", +"type": "string" +}, +"name": { +"description": "Name of the quota limit. The name must be provided, and it must be unique within the service. The name can only include alphanumeric characters as well as '-'. The maximum length of the limit name is 64 characters.", +"type": "string" +}, +"unit": { +"description": "Specify the unit of the quota limit. It uses the same syntax as MetricDescriptor.unit. The supported unit kinds are determined by the quota backend system. Here are some examples: * \"1/min/{project}\" for quota per minute per project. Note: the order of unit components is insignificant. The \"1\" at the beginning is required to follow the metric unit syntax.", +"type": "string" +}, +"values": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Tiered limit values. You must specify this as a key:value pair, with an integer value that is the maximum number of requests allowed for the specified unit. Currently only STANDARD is supported.", +"type": "object" +} +}, +"type": "object" +}, +"QuotaOverride": { +"description": "A quota override", +"id": "QuotaOverride", +"properties": { +"adminOverrideAncestor": { +"description": "The resource name of the ancestor that requested the override. For example: `organizations/12345` or `folders/67890`. Used by admin overrides only.", +"type": "string" +}, +"dimensions": { +"additionalProperties": { +"type": "string" +}, +"description": "If this map is nonempty, then this override applies only to specific values for dimensions defined in the limit unit. For example, an override on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the override is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in `{brackets}` in the unit (besides `{project}` or `{user}`) is a defined key. * `project` is not a valid key; the project is already specified in the parent resource name. * `user` is not a valid key; the API does not support quota overrides that apply only to a specific user. * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * If any valid key other than `region` or `zone` appears in the map, then all valid keys other than `region` or `zone` must also appear in the map.", +"type": "object" +}, +"metric": { +"description": "The name of the metric to which this override applies. An example name would be: `compute.googleapis.com/cpus`", +"type": "string" +}, +"name": { +"description": "The resource name of the override. This name is generated by the server when the override is created. Example names would be: `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d` `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d` The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", +"type": "string" +}, +"overrideValue": { +"description": "The overriding quota limit value. Can be any nonnegative integer, or -1 (unlimited quota).", +"format": "int64", +"type": "string" +}, +"unit": { +"description": "The limit unit of the limit to which this override applies. An example unit would be: `1/{project}/{region}` Note that `{project}` and `{region}` are not placeholders in this example; the literal characters `{` and `}` occur in the string.", +"type": "string" +} +}, +"type": "object" +}, +"RemoveEnableRulesMetadata": { +"description": "Metadata for the `RemoveEnableRules` method.", +"id": "RemoveEnableRulesMetadata", +"properties": {}, +"type": "object" +}, +"RemoveEnableRulesResponse": { +"description": "The response message of `RemoveEnableRules` method.", +"id": "RemoveEnableRulesResponse", +"properties": { +"parent": { +"description": "The parent consumer policy. It can be `projects/12345/consumerPolicies/default`, or `folders/12345/consumerPolicies/default`, or `organizations/12345/consumerPolicies/default`.", +"type": "string" +}, +"removedValues": { +"deprecated": true, +"description": "The values removed from the parent consumer policy.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RolloutInfo": { +"description": "[Output only] Rollout information of a quota.", +"id": "RolloutInfo", +"properties": { +"defaultLimitOngoingRollout": { +"description": "Whether there is an ongoing rollout for the default limit or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"RubySettings": { +"description": "Settings for Ruby client libraries.", +"id": "RubySettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"SelectiveGapicGeneration": { +"description": "This message is used to configure the generation of a subset of the RPCs in a service for client libraries.", +"id": "SelectiveGapicGeneration", +"properties": { +"methods": { +"description": "An allowlist of the fully qualified names of RPCs that should be included on public client surfaces.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Service": { +"description": "A service that is available for use by the consumer.", +"id": "Service", +"properties": { +"config": { +"$ref": "ServiceConfig", +"description": "The service configuration of the available service. Some fields may be filtered out of the configuration in responses to the `ListServices` method. These fields are present only in responses to the `GetService` method." +}, +"name": { +"description": "The resource name of the consumer and service. A valid name would be: - `projects/123/services/serviceusage.googleapis.com`", +"type": "string" +}, +"parent": { +"description": "The resource name of the consumer. A valid name would be: - `projects/123`", +"type": "string" +}, +"state": { +"description": "Whether or not the service has been enabled for use by the consumer.", +"enum": [ +"STATE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"The default value, which indicates that the enabled state of the service is unspecified or not meaningful. Currently, all consumers other than projects (such as folders and organizations) are always in this state.", +"The service cannot be used by this consumer. It has either been explicitly disabled, or has never been enabled.", +"The service has been explicitly enabled for use by this consumer." +], +"type": "string" +} +}, +"type": "object" +}, +"ServiceConfig": { +"description": "The configuration of the service.", +"id": "ServiceConfig", +"properties": { +"apis": { +"description": "A list of API interfaces exported by this service. Contains only the names, versions, and method names of the interfaces.", +"items": { +"$ref": "Api" +}, +"type": "array" +}, +"authentication": { +"$ref": "Authentication", +"description": "Auth configuration. Contains only the OAuth rules." +}, +"documentation": { +"$ref": "Documentation", +"description": "Additional API documentation. Contains only the summary and the documentation URL." +}, +"endpoints": { +"description": "Configuration for network endpoints. Contains only the names and aliases of the endpoints.", +"items": { +"$ref": "Endpoint" +}, +"type": "array" +}, +"monitoredResources": { +"description": "Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.", +"items": { +"$ref": "MonitoredResourceDescriptor" +}, +"type": "array" +}, +"monitoring": { +"$ref": "Monitoring", +"description": "Monitoring configuration. This should not include the 'producer_destinations' field." +}, +"name": { +"description": "The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.", +"type": "string" +}, +"quota": { +"$ref": "Quota", +"description": "Quota configuration." +}, +"title": { +"description": "The product title for this service.", +"type": "string" +}, +"usage": { +"$ref": "Usage", +"description": "Configuration controlling usage of this service." +} +}, +"type": "object" +}, +"ServiceIdentity": { +"description": "Service identity for a service. This is the identity that service producer should use to access consumer resources.", +"id": "ServiceIdentity", +"properties": { +"email": { +"description": "The email address of the service account that a service producer would use to access consumer resources.", +"type": "string" +}, +"uniqueId": { +"description": "The unique and stable id of the service account. https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts#ServiceAccount", +"type": "string" +} +}, +"type": "object" +}, +"SourceContext": { +"description": "`SourceContext` represents information about the source of a protobuf element, like the file in which it is defined.", +"id": "SourceContext", +"properties": { +"fileName": { +"description": "The path-qualified name of the .proto file that contained the associated protobuf element. For example: `\"google/protobuf/source_context.proto\"`.", +"type": "string" +} +}, +"type": "object" +}, +"SourceInfo": { +"description": "Source information used to create a Service Config", +"id": "SourceInfo", +"properties": { +"sourceFiles": { +"description": "All files used during config generation.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameter": { +"description": "Define a parameter's name and location. The parameter may be passed as either an HTTP header or a URL query parameter, and if both are passed the behavior is implementation-dependent.", +"id": "SystemParameter", +"properties": { +"httpHeader": { +"description": "Define the HTTP header name to use for the parameter. It is case insensitive.", +"type": "string" +}, +"name": { +"description": "Define the name of the parameter, such as \"api_key\" . It is case sensitive.", +"type": "string" +}, +"urlQueryParameter": { +"description": "Define the URL query parameter name to use for the parameter. It is case sensitive.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameterRule": { +"description": "Define a system parameter rule mapping system parameter definitions to methods.", +"id": "SystemParameterRule", +"properties": { +"parameters": { +"description": "Define parameters. Multiple names may be defined for a parameter. For a given method call, only one of them should be used. If multiple names are used the behavior is implementation-dependent. If none of the specified names are present the behavior is parameter-dependent.", +"items": { +"$ref": "SystemParameter" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameters": { +"description": "### System parameter configuration A system parameter is a special kind of parameter defined by the API system, not by an individual API. It is typically mapped to an HTTP header and/or a URL query parameter. This configuration specifies which methods change the names of the system parameters.", +"id": "SystemParameters", +"properties": { +"rules": { +"description": "Define system parameters. The parameters defined here will override the default parameters implemented by the system. If this field is missing from the service config, default system parameters will be used. Default system parameters and names is implementation-dependent. Example: define api key for all methods system_parameters rules: - selector: \"*\" parameters: - name: api_key url_query_parameter: api_key Example: define 2 api key names for a specific method. system_parameters rules: - selector: \"/ListShelves\" parameters: - name: api_key http_header: Api-Key1 - name: api_key http_header: Api-Key2 **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "SystemParameterRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"Type": { +"description": "A protocol buffer message type.", +"id": "Type", +"properties": { +"edition": { +"description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", +"type": "string" +}, +"fields": { +"description": "The list of fields.", +"items": { +"$ref": "Field" +}, +"type": "array" +}, +"name": { +"description": "The fully qualified message name.", +"type": "string" +}, +"oneofs": { +"description": "The list of types appearing in `oneof` definitions in this type.", +"items": { +"type": "string" +}, +"type": "array" +}, +"options": { +"description": "The protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "The source context." +}, +"syntax": { +"description": "The source syntax.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"UpdateAdminQuotaPolicyMetadata": { +"description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by UpdateAdminQuotaPolicy.", +"id": "UpdateAdminQuotaPolicyMetadata", +"properties": {}, +"type": "object" +}, +"UpdateConsumerPolicyMetadata": { +"description": "Metadata for the `UpdateConsumerPolicy` method.", +"id": "UpdateConsumerPolicyMetadata", +"properties": {}, +"type": "object" +}, +"Usage": { +"description": "Configuration controlling usage of a service.", +"id": "Usage", +"properties": { +"producerNotificationChannel": { +"description": "The full resource name of a channel used for sending notifications to the service producer. Google Service Management currently only supports [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification channel. To use Google Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format documented in https://cloud.google.com/pubsub/docs/overview.", +"type": "string" +}, +"requirements": { +"description": "Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example 'serviceusage.googleapis.com/billing-enabled'. For Google APIs, a Terms of Service requirement must be included here. Google Cloud APIs must include \"serviceusage.googleapis.com/tos/cloud\". Other Google APIs should include \"serviceusage.googleapis.com/tos/universal\". Additional ToS can be included based on the business needs.", +"items": { +"type": "string" +}, +"type": "array" +}, +"rules": { +"description": "A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "UsageRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"UsageRule": { +"description": "Usage configuration rules for the service. NOTE: Under development. Use this rule to configure unregistered calls for the service. Unregistered calls are calls that do not contain consumer project identity. (Example: calls that do not contain an API key). By default, API methods do not allow unregistered calls, and each method call must be identified by a consumer project identity. Use this rule to allow/disallow unregistered calls. Example of an API that wants to allow unregistered calls for entire service. usage: rules: - selector: \"*\" allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allow_unregistered_calls: true", +"id": "UsageRule", +"properties": { +"allowUnregisteredCalls": { +"description": "If true, the selected method allows unregistered calls, e.g. calls that don't identify any user or application.", +"type": "boolean" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details.", +"type": "string" +}, +"skipServiceControl": { +"description": "If true, the selected method should skip service control and the control plane features, such as quota and billing, will not be available. This flag is used by Google Cloud Endpoints to bypass checks for internal methods, such as service health check methods.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Service Usage API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..619a630879d1ede62ffab727b0558d0aff3b0821 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json @@ -0,0 +1,1559 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://speech.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Speech", +"description": "Converts audio to text by applying powerful neural network models.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/speech-to-text/docs/quickstart-protocol", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://speech.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "speech:v1p1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://speech.mtls.googleapis.com/", +"name": "speech", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1p1beta1/operations/{operationsId}", +"httpMethod": "GET", +"id": "speech.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/operations/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1p1beta1/operations", +"httpMethod": "GET", +"id": "speech.operations.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1p1beta1/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"customClasses": { +"methods": { +"create": { +"description": "Create a custom class.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/customClasses", +"httpMethod": "POST", +"id": "speech.projects.locations.customClasses.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this custom class will be created. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+parent}/customClasses", +"request": { +"$ref": "CreateCustomClassRequest" +}, +"response": { +"$ref": "CustomClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a custom class.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/customClasses/{customClassesId}", +"httpMethod": "DELETE", +"id": "speech.projects.locations.customClasses.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the custom class to delete. Format: `projects/{project}/locations/{location}/customClasses/{custom_class}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/customClasses/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a custom class.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/customClasses/{customClassesId}", +"httpMethod": "GET", +"id": "speech.projects.locations.customClasses.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the custom class to retrieve. Format: `projects/{project}/locations/{location}/customClasses/{custom_class}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/customClasses/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+name}", +"response": { +"$ref": "CustomClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List custom classes.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/customClasses", +"httpMethod": "GET", +"id": "speech.projects.locations.customClasses.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of custom classes to return. The service may return fewer than this value. If unspecified, at most 50 custom classes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListCustomClass` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCustomClass` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of custom classes. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+parent}/customClasses", +"response": { +"$ref": "ListCustomClassesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a custom class.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/customClasses/{customClassesId}", +"httpMethod": "PATCH", +"id": "speech.projects.locations.customClasses.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the custom class.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/customClasses/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1p1beta1/{+name}", +"request": { +"$ref": "CustomClass" +}, +"response": { +"$ref": "CustomClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"phraseSets": { +"methods": { +"create": { +"description": "Create a set of phrase hints. Each item in the set can be a single word or a multi-word phrase. The items in the PhraseSet are favored by the recognition model when you send a call that includes the PhraseSet.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/phraseSets", +"httpMethod": "POST", +"id": "speech.projects.locations.phraseSets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this phrase set will be created. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+parent}/phraseSets", +"request": { +"$ref": "CreatePhraseSetRequest" +}, +"response": { +"$ref": "PhraseSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a phrase set.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/phraseSets/{phraseSetsId}", +"httpMethod": "DELETE", +"id": "speech.projects.locations.phraseSets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the phrase set to delete. Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/phraseSets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a phrase set.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/phraseSets/{phraseSetsId}", +"httpMethod": "GET", +"id": "speech.projects.locations.phraseSets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the phrase set to retrieve. Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/phraseSets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+name}", +"response": { +"$ref": "PhraseSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List phrase sets.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/phraseSets", +"httpMethod": "GET", +"id": "speech.projects.locations.phraseSets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of phrase sets to return. The service may return fewer than this value. If unspecified, at most 50 phrase sets will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPhraseSet` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPhraseSet` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of phrase set. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1p1beta1/{+parent}/phraseSets", +"response": { +"$ref": "ListPhraseSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a phrase set.", +"flatPath": "v1p1beta1/projects/{projectsId}/locations/{locationsId}/phraseSets/{phraseSetsId}", +"httpMethod": "PATCH", +"id": "speech.projects.locations.phraseSets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the phrase set.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/phraseSets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1p1beta1/{+name}", +"request": { +"$ref": "PhraseSet" +}, +"response": { +"$ref": "PhraseSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"speech": { +"methods": { +"longrunningrecognize": { +"description": "Performs asynchronous speech recognition: receive results via the google.longrunning.Operations interface. Returns either an `Operation.error` or an `Operation.response` which contains a `LongRunningRecognizeResponse` message. For more information on asynchronous speech recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).", +"flatPath": "v1p1beta1/speech:longrunningrecognize", +"httpMethod": "POST", +"id": "speech.speech.longrunningrecognize", +"parameterOrder": [], +"parameters": {}, +"path": "v1p1beta1/speech:longrunningrecognize", +"request": { +"$ref": "LongRunningRecognizeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"recognize": { +"description": "Performs synchronous speech recognition: receive results after all audio has been sent and processed.", +"flatPath": "v1p1beta1/speech:recognize", +"httpMethod": "POST", +"id": "speech.speech.recognize", +"parameterOrder": [], +"parameters": {}, +"path": "v1p1beta1/speech:recognize", +"request": { +"$ref": "RecognizeRequest" +}, +"response": { +"$ref": "RecognizeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241111", +"rootUrl": "https://speech.googleapis.com/", +"schemas": { +"ABNFGrammar": { +"id": "ABNFGrammar", +"properties": { +"abnfStrings": { +"description": "All declarations and rules of an ABNF grammar broken up into multiple strings that will end up concatenated.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClassItem": { +"description": "An item of the class.", +"id": "ClassItem", +"properties": { +"value": { +"description": "The class item's value.", +"type": "string" +} +}, +"type": "object" +}, +"CreateCustomClassRequest": { +"description": "Message sent by the client for the `CreateCustomClass` method.", +"id": "CreateCustomClassRequest", +"properties": { +"customClass": { +"$ref": "CustomClass", +"description": "Required. The custom class to create." +}, +"customClassId": { +"description": "Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should restrict to letters, numbers, and hyphens, with the first character a letter, the last a letter or a number, and be 4-63 characters.", +"type": "string" +} +}, +"type": "object" +}, +"CreatePhraseSetRequest": { +"description": "Message sent by the client for the `CreatePhraseSet` method.", +"id": "CreatePhraseSetRequest", +"properties": { +"phraseSet": { +"$ref": "PhraseSet", +"description": "Required. The phrase set to create." +}, +"phraseSetId": { +"description": "Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should restrict to letters, numbers, and hyphens, with the first character a letter, the last a letter or a number, and be 4-63 characters.", +"type": "string" +} +}, +"type": "object" +}, +"CustomClass": { +"description": "A set of words or phrases that represents a common concept likely to appear in your audio, for example a list of passenger ship names. CustomClass items can be substituted into placeholders that you set in PhraseSet phrases.", +"id": "CustomClass", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Allows users to store small amounts of arbitrary data. Both the key and the value must be 63 characters or less each. At most 100 annotations. This field is not used.", +"readOnly": true, +"type": "object" +}, +"customClassId": { +"description": "If this custom class is a resource, the custom_class_id is the resource id of the CustomClass. Case sensitive.", +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time at which this resource was requested for deletion. This field is not used.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. User-settable, human-readable name for the CustomClass. Must be 63 characters or less. This field is not used.", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. This checksum is computed by the server based on the value of other fields. This may be sent on update, undelete, and delete requests to ensure the client has an up-to-date value before proceeding. This field is not used.", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time at which this resource will be purged. This field is not used.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"items": { +"description": "A collection of class items.", +"items": { +"$ref": "ClassItem" +}, +"type": "array" +}, +"kmsKeyName": { +"description": "Output only. The [KMS key name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which the content of the ClassItem is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", +"readOnly": true, +"type": "string" +}, +"kmsKeyVersionName": { +"description": "Output only. The [KMS key version name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) with which content of the ClassItem is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The resource name of the custom class.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether or not this CustomClass is in the process of being updated. This field is not used.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The CustomClass lifecycle state. This field is not used.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"Unspecified state. This is only used/useful for distinguishing unset values.", +"The normal and active state.", +"This CustomClass has been deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-assigned unique identifier for the CustomClass. This field is not used.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Entry": { +"description": "A single replacement configuration.", +"id": "Entry", +"properties": { +"caseSensitive": { +"description": "Whether the search is case sensitive.", +"type": "boolean" +}, +"replace": { +"description": "What to replace with. Max length is 100 characters.", +"type": "string" +}, +"search": { +"description": "What to replace. Max length is 100 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomClassesResponse": { +"description": "Message returned to the client by the `ListCustomClasses` method.", +"id": "ListCustomClassesResponse", +"properties": { +"customClasses": { +"description": "The custom classes.", +"items": { +"$ref": "CustomClass" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPhraseSetResponse": { +"description": "Message returned to the client by the `ListPhraseSet` method.", +"id": "ListPhraseSetResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"phraseSets": { +"description": "The phrase set.", +"items": { +"$ref": "PhraseSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"LongRunningRecognizeMetadata": { +"description": "Describes the progress of a long-running `LongRunningRecognize` call. It is included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "LongRunningRecognizeMetadata", +"properties": { +"lastUpdateTime": { +"description": "Time of the most recent processing update.", +"format": "google-datetime", +"type": "string" +}, +"outputConfig": { +"$ref": "TranscriptOutputConfig", +"description": "Output only. A copy of the TranscriptOutputConfig if it was set in the request.", +"readOnly": true +}, +"progressPercent": { +"description": "Approximate percentage of audio processed thus far. Guaranteed to be 100 when the audio is fully processed and the results are available.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"uri": { +"description": "Output only. The URI of the audio file being transcribed. Empty if the audio was sent as byte content.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LongRunningRecognizeRequest": { +"description": "The top-level message sent by the client for the `LongRunningRecognize` method.", +"id": "LongRunningRecognizeRequest", +"properties": { +"audio": { +"$ref": "RecognitionAudio", +"description": "Required. The audio data to be recognized." +}, +"config": { +"$ref": "RecognitionConfig", +"description": "Required. Provides information to the recognizer that specifies how to process the request." +}, +"outputConfig": { +"$ref": "TranscriptOutputConfig", +"description": "Optional. Specifies an optional destination for the recognition results." +} +}, +"type": "object" +}, +"LongRunningRecognizeResponse": { +"description": "The only message returned to the client by the `LongRunningRecognize` method. It contains the result as zero or more sequential `SpeechRecognitionResult` messages. It is included in the `result.response` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "LongRunningRecognizeResponse", +"properties": { +"outputConfig": { +"$ref": "TranscriptOutputConfig", +"description": "Original output config if present in the request." +}, +"outputError": { +"$ref": "Status", +"description": "If the transcript output fails this field contains the relevant error." +}, +"requestId": { +"description": "The ID associated with the request. This is a unique ID specific only to the given request.", +"format": "int64", +"type": "string" +}, +"results": { +"description": "Sequential list of transcription results corresponding to sequential portions of audio.", +"items": { +"$ref": "SpeechRecognitionResult" +}, +"type": "array" +}, +"speechAdaptationInfo": { +"$ref": "SpeechAdaptationInfo", +"description": "Provides information on speech adaptation behavior in response" +}, +"totalBilledTime": { +"description": "When available, billed audio seconds for the corresponding request.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Phrase": { +"description": "A phrases containing words and phrase \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also include pre-built or custom classes containing groups of words that represent common concepts that occur in natural language. For example, rather than providing a phrase hint for every month of the year (e.g. \"i was born in january\", \"i was born in febuary\", ...), use the pre-built `$MONTH` class improves the likelihood of correctly transcribing audio that includes months (e.g. \"i was born in $month\"). To refer to pre-built classes, use the class' symbol prepended with `$` e.g. `$MONTH`. To refer to custom classes that were defined inline in the request, set the class's `custom_class_id` to a string unique to all class resources and inline classes. Then use the class' id wrapped in $`{...}` e.g. \"${my-months}\". To refer to custom classes resources, use the class' id wrapped in `${}` (e.g. `${my-months}`). Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", +"id": "Phrase", +"properties": { +"boost": { +"description": "Hint Boost. Overrides the boost set at the phrase set level. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests.", +"format": "float", +"type": "number" +}, +"value": { +"description": "The phrase itself.", +"type": "string" +} +}, +"type": "object" +}, +"PhraseSet": { +"description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", +"id": "PhraseSet", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Allows users to store small amounts of arbitrary data. Both the key and the value must be 63 characters or less each. At most 100 annotations. This field is not used.", +"readOnly": true, +"type": "object" +}, +"boost": { +"description": "Hint Boost. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost values would correspond to anti-biasing. Anti-biasing is not enabled, so negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 (exclusive) and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests.", +"format": "float", +"type": "number" +}, +"deleteTime": { +"description": "Output only. The time at which this resource was requested for deletion. This field is not used.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. User-settable, human-readable name for the PhraseSet. Must be 63 characters or less. This field is not used.", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. This checksum is computed by the server based on the value of other fields. This may be sent on update, undelete, and delete requests to ensure the client has an up-to-date value before proceeding. This field is not used.", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time at which this resource will be purged. This field is not used.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"kmsKeyName": { +"description": "Output only. The [KMS key name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which the content of the PhraseSet is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", +"readOnly": true, +"type": "string" +}, +"kmsKeyVersionName": { +"description": "Output only. The [KMS key version name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) with which content of the PhraseSet is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The resource name of the phrase set.", +"type": "string" +}, +"phrases": { +"description": "A list of word and phrases.", +"items": { +"$ref": "Phrase" +}, +"type": "array" +}, +"reconciling": { +"description": "Output only. Whether or not this PhraseSet is in the process of being updated. This field is not used.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The CustomClass lifecycle state. This field is not used.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"Unspecified state. This is only used/useful for distinguishing unset values.", +"The normal and active state.", +"This CustomClass has been deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-assigned unique identifier for the PhraseSet. This field is not used.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RecognitionAudio": { +"description": "Contains audio data in the encoding specified in the `RecognitionConfig`. Either `content` or `uri` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. See [content limits](https://cloud.google.com/speech-to-text/quotas#content).", +"id": "RecognitionAudio", +"properties": { +"content": { +"description": "The audio data bytes encoded as specified in `RecognitionConfig`. Note: as with all bytes fields, proto buffers use a pure binary representation, whereas JSON representations use base64.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "URI that points to a file that contains audio data bytes as specified in `RecognitionConfig`. The file must not be compressed (for example, gzip). Currently, only Google Cloud Storage URIs are supported, which must be specified in the following format: `gs://bucket_name/object_name` (other URI formats return google.rpc.Code.INVALID_ARGUMENT). For more information, see [Request URIs](https://cloud.google.com/storage/docs/reference-uris).", +"type": "string" +} +}, +"type": "object" +}, +"RecognitionConfig": { +"description": "Provides information to the recognizer that specifies how to process the request.", +"id": "RecognitionConfig", +"properties": { +"adaptation": { +"$ref": "SpeechAdaptation", +"description": "Speech adaptation configuration improves the accuracy of speech recognition. For more information, see the [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation) documentation. When speech adaptation is set it supersedes the `speech_contexts` field." +}, +"alternativeLanguageCodes": { +"description": "A list of up to 3 additional [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags, listing possible alternative languages of the supplied audio. See [Language Support](https://cloud.google.com/speech-to-text/docs/languages) for a list of the currently supported language codes. If alternative languages are listed, recognition result will contain recognition in the most likely language detected including the main language_code. The recognition result will include the language tag of the language detected in the audio. Note: This feature is only supported for Voice Command and Voice Search use cases and performance may vary for other use cases (e.g., phone call transcription).", +"items": { +"type": "string" +}, +"type": "array" +}, +"audioChannelCount": { +"description": "The number of channels in the input audio data. ONLY set this for MULTI-CHANNEL recognition. Valid values for LINEAR16, OGG_OPUS and FLAC are `1`-`8`. Valid value for MULAW, AMR, AMR_WB and SPEEX_WITH_HEADER_BYTE is only `1`. If `0` or omitted, defaults to one channel (mono). Note: We only recognize the first channel by default. To perform independent recognition on each channel set `enable_separate_recognition_per_channel` to 'true'.", +"format": "int32", +"type": "integer" +}, +"diarizationConfig": { +"$ref": "SpeakerDiarizationConfig", +"description": "Config to enable speaker diarization and set additional parameters to make diarization better suited for your application. Note: When this is enabled, we send all the words from the beginning of the audio for the top alternative in every consecutive STREAMING responses. This is done in order to improve our speaker tags as our models learn to identify the speakers in the conversation over time. For non-streaming requests, the diarization results will be provided only in the top alternative of the FINAL SpeechRecognitionResult." +}, +"diarizationSpeakerCount": { +"deprecated": true, +"description": "If set, specifies the estimated number of speakers in the conversation. Defaults to '2'. Ignored unless enable_speaker_diarization is set to true. Note: Use diarization_config instead.", +"format": "int32", +"type": "integer" +}, +"enableAutomaticPunctuation": { +"description": "If 'true', adds punctuation to recognition result hypotheses. This feature is only available in select languages. Setting this for requests in other languages has no effect at all. The default 'false' value does not add punctuation to result hypotheses.", +"type": "boolean" +}, +"enableSeparateRecognitionPerChannel": { +"description": "This needs to be set to `true` explicitly and `audio_channel_count` > 1 to get each channel recognized separately. The recognition result will contain a `channel_tag` field to state which channel that result belongs to. If this is not true, we will only recognize the first channel. The request is billed cumulatively for all channels recognized: `audio_channel_count` multiplied by the length of the audio.", +"type": "boolean" +}, +"enableSpeakerDiarization": { +"deprecated": true, +"description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_label provided in the WordInfo. Note: Use diarization_config instead.", +"type": "boolean" +}, +"enableSpokenEmojis": { +"description": "The spoken emoji behavior for the call If not set, uses default behavior based on model of choice If 'true', adds spoken emoji formatting for the request. This will replace spoken emojis with the corresponding Unicode symbols in the final transcript. If 'false', spoken emojis are not replaced.", +"type": "boolean" +}, +"enableSpokenPunctuation": { +"description": "The spoken punctuation behavior for the call If not set, uses default behavior based on model of choice e.g. command_and_search will enable spoken punctuation by default If 'true', replaces spoken punctuation with the corresponding symbols in the request. For example, \"how are you question mark\" becomes \"how are you?\". See https://cloud.google.com/speech-to-text/docs/spoken-punctuation for support. If 'false', spoken punctuation is not replaced.", +"type": "boolean" +}, +"enableWordConfidence": { +"description": "If `true`, the top result includes a list of words and the confidence for those words. If `false`, no word-level confidence information is returned. The default is `false`.", +"type": "boolean" +}, +"enableWordTimeOffsets": { +"description": "If `true`, the top result includes a list of words and the start and end time offsets (timestamps) for those words. If `false`, no word-level time offset information is returned. The default is `false`.", +"type": "boolean" +}, +"encoding": { +"description": "Encoding of audio data sent in all `RecognitionAudio` messages. This field is optional for `FLAC` and `WAV` audio files and required for all other audio formats. For details, see AudioEncoding.", +"enum": [ +"ENCODING_UNSPECIFIED", +"LINEAR16", +"FLAC", +"MULAW", +"AMR", +"AMR_WB", +"OGG_OPUS", +"SPEEX_WITH_HEADER_BYTE", +"MP3", +"WEBM_OPUS", +"ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"`FLAC` (Free Lossless Audio Codec) is the recommended encoding because it is lossless--therefore recognition is not compromised--and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Cloud Speech API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"MP3 audio. MP3 encoding is a Beta feature and only available in v1p1beta1. Support all standard MP3 bitrates (which range from 32-320 kbps). When using this encoding, `sample_rate_hertz` has to match the sample rate of the file being used.", +"Opus encoded audio frames in WebM container ([WebM](https://www.webmproject.org/docs/container/)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"languageCode": { +"description": "Required. The language of the supplied audio as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\". See [Language Support](https://cloud.google.com/speech-to-text/docs/languages) for a list of the currently supported language codes.", +"type": "string" +}, +"maxAlternatives": { +"description": "Maximum number of recognition hypotheses to be returned. Specifically, the maximum number of `SpeechRecognitionAlternative` messages within each `SpeechRecognitionResult`. The server may return fewer than `max_alternatives`. Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of one. If omitted, will return a maximum of one.", +"format": "int32", +"type": "integer" +}, +"metadata": { +"$ref": "RecognitionMetadata", +"description": "Metadata regarding this request." +}, +"model": { +"description": "Which model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the RecognitionConfig. *Model* *Description* latest_long Best for long form content like media or conversation. latest_short Best for short form content like commands or single shot directed speech. command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate. medical_conversation Best for audio that originated from a conversation between a medical provider and patient. medical_dictation Best for audio that originated from dictation notes by a medical provider. ", +"type": "string" +}, +"profanityFilter": { +"description": "If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. \"f***\". If set to `false` or omitted, profanities won't be filtered out.", +"type": "boolean" +}, +"sampleRateHertz": { +"description": "Sample rate in Hertz of the audio data sent in all `RecognitionAudio` messages. Valid values are: 8000-48000. 16000 is optimal. For best results, set the sampling rate of the audio source to 16000 Hz. If that's not possible, use the native sample rate of the audio source (instead of re-sampling). This field is optional for FLAC and WAV audio files, but is required for all other audio formats. For details, see AudioEncoding.", +"format": "int32", +"type": "integer" +}, +"speechContexts": { +"description": "Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation).", +"items": { +"$ref": "SpeechContext" +}, +"type": "array" +}, +"transcriptNormalization": { +"$ref": "TranscriptNormalization", +"description": "Optional. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts." +}, +"useEnhanced": { +"description": "Set to true to use an enhanced model for speech recognition. If `use_enhanced` is set to true and the `model` field is not set, then an appropriate enhanced model is chosen if an enhanced model exists for the audio. If `use_enhanced` is true and an enhanced version of the specified model does not exist, then the speech is recognized using the standard version of the specified model.", +"type": "boolean" +} +}, +"type": "object" +}, +"RecognitionMetadata": { +"deprecated": true, +"description": "Description of audio data to be recognized.", +"id": "RecognitionMetadata", +"properties": { +"audioTopic": { +"description": "Description of the content. Eg. \"Recordings of federal supreme court hearings from 2012\".", +"type": "string" +}, +"industryNaicsCodeOfAudio": { +"description": "The industry vertical to which this speech recognition request most closely applies. This is most indicative of the topics contained in the audio. Use the 6-digit NAICS code to identify the industry vertical - see https://www.naics.com/search/.", +"format": "uint32", +"type": "integer" +}, +"interactionType": { +"description": "The use case most closely describing the audio content to be recognized.", +"enum": [ +"INTERACTION_TYPE_UNSPECIFIED", +"DISCUSSION", +"PRESENTATION", +"PHONE_CALL", +"VOICEMAIL", +"PROFESSIONALLY_PRODUCED", +"VOICE_SEARCH", +"VOICE_COMMAND", +"DICTATION" +], +"enumDescriptions": [ +"Use case is either unknown or is something other than one of the other values below.", +"Multiple people in a conversation or discussion. For example in a meeting with two or more people actively participating. Typically all the primary people speaking would be in the same room (if not, see PHONE_CALL)", +"One or more persons lecturing or presenting to others, mostly uninterrupted.", +"A phone-call or video-conference in which two or more people, who are not in the same room, are actively participating.", +"A recorded message intended for another person to listen to.", +"Professionally produced audio (eg. TV Show, Podcast).", +"Transcribe spoken questions and queries into text.", +"Transcribe voice commands, such as for controlling a device.", +"Transcribe speech to text to create a written document, such as a text-message, email or report." +], +"type": "string" +}, +"microphoneDistance": { +"description": "The audio type that most closely describes the audio being recognized.", +"enum": [ +"MICROPHONE_DISTANCE_UNSPECIFIED", +"NEARFIELD", +"MIDFIELD", +"FARFIELD" +], +"enumDescriptions": [ +"Audio type is not known.", +"The audio was captured from a closely placed microphone. Eg. phone, dictaphone, or handheld microphone. Generally if there speaker is within 1 meter of the microphone.", +"The speaker if within 3 meters of the microphone.", +"The speaker is more than 3 meters away from the microphone." +], +"type": "string" +}, +"obfuscatedId": { +"deprecated": true, +"description": "Obfuscated (privacy-protected) ID of the user, to identify number of unique users using the service.", +"format": "int64", +"type": "string" +}, +"originalMediaType": { +"description": "The original media the speech was recorded on.", +"enum": [ +"ORIGINAL_MEDIA_TYPE_UNSPECIFIED", +"AUDIO", +"VIDEO" +], +"enumDescriptions": [ +"Unknown original media type.", +"The speech data is an audio recording.", +"The speech data originally recorded on a video." +], +"type": "string" +}, +"originalMimeType": { +"description": "Mime type of the original audio file. For example `audio/m4a`, `audio/x-alaw-basic`, `audio/mp3`, `audio/3gpp`. A list of possible audio mime types is maintained at http://www.iana.org/assignments/media-types/media-types.xhtml#audio", +"type": "string" +}, +"recordingDeviceName": { +"description": "The device used to make the recording. Examples 'Nexus 5X' or 'Polycom SoundStation IP 6000' or 'POTS' or 'VoIP' or 'Cardioid Microphone'.", +"type": "string" +}, +"recordingDeviceType": { +"description": "The type of device the speech was recorded with.", +"enum": [ +"RECORDING_DEVICE_TYPE_UNSPECIFIED", +"SMARTPHONE", +"PC", +"PHONE_LINE", +"VEHICLE", +"OTHER_OUTDOOR_DEVICE", +"OTHER_INDOOR_DEVICE" +], +"enumDescriptions": [ +"The recording device is unknown.", +"Speech was recorded on a smartphone.", +"Speech was recorded using a personal computer or tablet.", +"Speech was recorded over a phone line.", +"Speech was recorded in a vehicle.", +"Speech was recorded outdoors.", +"Speech was recorded indoors." +], +"type": "string" +} +}, +"type": "object" +}, +"RecognizeRequest": { +"description": "The top-level message sent by the client for the `Recognize` method.", +"id": "RecognizeRequest", +"properties": { +"audio": { +"$ref": "RecognitionAudio", +"description": "Required. The audio data to be recognized." +}, +"config": { +"$ref": "RecognitionConfig", +"description": "Required. Provides information to the recognizer that specifies how to process the request." +} +}, +"type": "object" +}, +"RecognizeResponse": { +"description": "The only message returned to the client by the `Recognize` method. It contains the result as zero or more sequential `SpeechRecognitionResult` messages.", +"id": "RecognizeResponse", +"properties": { +"requestId": { +"description": "The ID associated with the request. This is a unique ID specific only to the given request.", +"format": "int64", +"type": "string" +}, +"results": { +"description": "Sequential list of transcription results corresponding to sequential portions of audio.", +"items": { +"$ref": "SpeechRecognitionResult" +}, +"type": "array" +}, +"speechAdaptationInfo": { +"$ref": "SpeechAdaptationInfo", +"description": "Provides information on adaptation behavior in response" +}, +"totalBilledTime": { +"description": "When available, billed audio seconds for the corresponding request.", +"format": "google-duration", +"type": "string" +}, +"usingLegacyModels": { +"description": "Whether request used legacy asr models (was not automatically migrated to use conformer models).", +"type": "boolean" +} +}, +"type": "object" +}, +"SpeakerDiarizationConfig": { +"description": "Config to enable speaker diarization.", +"id": "SpeakerDiarizationConfig", +"properties": { +"enableSpeakerDiarization": { +"description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_label provided in the WordInfo.", +"type": "boolean" +}, +"maxSpeakerCount": { +"description": "Maximum number of speakers in the conversation. This range gives you more flexibility by allowing the system to automatically determine the correct number of speakers. If not set, the default value is 6.", +"format": "int32", +"type": "integer" +}, +"minSpeakerCount": { +"description": "Minimum number of speakers in the conversation. This range gives you more flexibility by allowing the system to automatically determine the correct number of speakers. If not set, the default value is 2.", +"format": "int32", +"type": "integer" +}, +"speakerTag": { +"deprecated": true, +"description": "Output only. Unused.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"SpeechAdaptation": { +"description": "Speech adaptation configuration.", +"id": "SpeechAdaptation", +"properties": { +"abnfGrammar": { +"$ref": "ABNFGrammar", +"description": "Augmented Backus-Naur form (ABNF) is a standardized grammar notation comprised by a set of derivation rules. See specifications: https://www.w3.org/TR/speech-grammar" +}, +"customClasses": { +"description": "A collection of custom classes. To specify the classes inline, leave the class' `name` blank and fill in the rest of its fields, giving it a unique `custom_class_id`. Refer to the inline defined class in phrase hints by its `custom_class_id`.", +"items": { +"$ref": "CustomClass" +}, +"type": "array" +}, +"phraseSetReferences": { +"description": "A collection of phrase set resource names to use.", +"items": { +"type": "string" +}, +"type": "array" +}, +"phraseSets": { +"description": "A collection of phrase sets. To specify the hints inline, leave the phrase set's `name` blank and fill in the rest of its fields. Any phrase set can use any custom class.", +"items": { +"$ref": "PhraseSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"SpeechAdaptationInfo": { +"description": "Information on speech adaptation use in results", +"id": "SpeechAdaptationInfo", +"properties": { +"adaptationTimeout": { +"description": "Whether there was a timeout when applying speech adaptation. If true, adaptation had no effect in the response transcript.", +"type": "boolean" +}, +"timeoutMessage": { +"description": "If set, returns a message specifying which part of the speech adaptation request timed out.", +"type": "string" +} +}, +"type": "object" +}, +"SpeechContext": { +"description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", +"id": "SpeechContext", +"properties": { +"boost": { +"description": "Hint Boost. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost values would correspond to anti-biasing. Anti-biasing is not enabled, so negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case.", +"format": "float", +"type": "number" +}, +"phrases": { +"description": "A list of strings containing words and phrases \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also be set to classes for groups of words that represent common concepts that occur in natural language. For example, rather than providing phrase hints for every month of the year, using the $MONTH class improves the likelihood of correctly transcribing audio that includes months.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SpeechRecognitionAlternative": { +"description": "Alternative hypotheses (a.k.a. n-best list).", +"id": "SpeechRecognitionAlternative", +"properties": { +"confidence": { +"description": "The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative of a non-streaming result or, of a streaming result where `is_final=true`. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke. In languages that use spaces to separate words, the transcript might have a leading space if it isn't the first result. You can concatenate each result to obtain the full transcript without using a separator.", +"type": "string" +}, +"words": { +"description": "A list of word-specific information for each recognized word. Note: When `enable_speaker_diarization` is true, you will see all the words from the beginning of the audio.", +"items": { +"$ref": "WordInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"SpeechRecognitionResult": { +"description": "A speech recognition result corresponding to a portion of the audio.", +"id": "SpeechRecognitionResult", +"properties": { +"alternatives": { +"description": "May contain one or more recognition hypotheses (up to the maximum specified in `max_alternatives`). These alternatives are ordered in terms of accuracy, with the top (first) alternative being the most probable, as ranked by the recognizer.", +"items": { +"$ref": "SpeechRecognitionAlternative" +}, +"type": "array" +}, +"channelTag": { +"description": "For multi-channel audio, this is the channel number corresponding to the recognized result for the audio from that channel. For audio_channel_count = N, its output values can range from '1' to 'N'.", +"format": "int32", +"type": "integer" +}, +"languageCode": { +"description": "Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the language in this result. This language code was detected to have the most likelihood of being spoken in the audio.", +"readOnly": true, +"type": "string" +}, +"resultEndTime": { +"description": "Time offset of the end of this result relative to the beginning of the audio.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TranscriptNormalization": { +"description": "Transcription normalization configuration. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts.", +"id": "TranscriptNormalization", +"properties": { +"entries": { +"description": "A list of replacement entries. We will perform replacement with one entry at a time. For example, the second entry in [\"cat\" => \"dog\", \"mountain cat\" => \"mountain dog\"] will never be applied because we will always process the first entry before it. At most 100 entries.", +"items": { +"$ref": "Entry" +}, +"type": "array" +} +}, +"type": "object" +}, +"TranscriptOutputConfig": { +"description": "Specifies an optional destination for the recognition results.", +"id": "TranscriptOutputConfig", +"properties": { +"gcsUri": { +"description": "Specifies a Cloud Storage URI for the recognition results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", +"type": "string" +} +}, +"type": "object" +}, +"WordInfo": { +"description": "Word-specific information for recognized words.", +"id": "WordInfo", +"properties": { +"confidence": { +"description": "The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative of a non-streaming result or, of a streaming result where `is_final=true`. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"type": "number" +}, +"endTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the end of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"speakerLabel": { +"description": "Output only. A label value assigned for every unique speaker within the audio. This field specifies which speaker was detected to have spoken this word. For some models, like medical_conversation this can be actual speaker role, for example \"patient\" or \"provider\", but generally this would be a number identifying a speaker. This field is only set if enable_speaker_diarization = 'true' and only for the top alternative.", +"readOnly": true, +"type": "string" +}, +"speakerTag": { +"deprecated": true, +"description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from '1' to diarization_speaker_count. speaker_tag is set if enable_speaker_diarization = 'true' and only for the top alternative. Note: Use speaker_label instead.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the start of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word corresponding to this set of information.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Speech-to-Text API", +"version": "v1p1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/texttospeech.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/texttospeech.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..572d364f9bff78d6ca8bb52ef69a63bbbece187c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/texttospeech.v1.json @@ -0,0 +1,816 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://texttospeech.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Texttospeech", +"description": "Synthesizes natural-sounding speech by applying powerful neural network models.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/text-to-speech/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "texttospeech:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://texttospeech.mtls.googleapis.com/", +"name": "texttospeech", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "texttospeech.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "texttospeech.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"synthesizeLongAudio": { +"description": "Synthesizes long form text asynchronously.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:synthesizeLongAudio", +"httpMethod": "POST", +"id": "texttospeech.projects.locations.synthesizeLongAudio", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource states of the request in the form of `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:synthesizeLongAudio", +"request": { +"$ref": "SynthesizeLongAudioRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "texttospeech.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "texttospeech.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"text": { +"methods": { +"synthesize": { +"description": "Synthesizes speech synchronously: receive results after all text input has been processed.", +"flatPath": "v1/text:synthesize", +"httpMethod": "POST", +"id": "texttospeech.text.synthesize", +"parameterOrder": [], +"parameters": {}, +"path": "v1/text:synthesize", +"request": { +"$ref": "SynthesizeSpeechRequest" +}, +"response": { +"$ref": "SynthesizeSpeechResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"voices": { +"methods": { +"list": { +"description": "Returns a list of Voice supported for synthesis.", +"flatPath": "v1/voices", +"httpMethod": "GET", +"id": "texttospeech.voices.list", +"parameterOrder": [], +"parameters": { +"languageCode": { +"description": "Optional. Recommended. [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If not specified, the API will return all supported voices. If specified, the ListVoices call will only return voices that can be used to synthesize this language_code. For example, if you specify `\"en-NZ\"`, all `\"en-NZ\"` voices will be returned. If you specify `\"no\"`, both `\"no-\\*\"` (Norwegian) and `\"nb-\\*\"` (Norwegian Bokmal) voices will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/voices", +"response": { +"$ref": "ListVoicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241216", +"rootUrl": "https://texttospeech.googleapis.com/", +"schemas": { +"AdvancedVoiceOptions": { +"description": "Used for advanced voice options.", +"id": "AdvancedVoiceOptions", +"properties": { +"lowLatencyJourneySynthesis": { +"description": "Only for Journey voices. If false, the synthesis will be context aware and have higher latency.", +"type": "boolean" +} +}, +"type": "object" +}, +"AudioConfig": { +"description": "Description of audio data to be synthesized.", +"id": "AudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. The format of the audio byte stream.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"LINEAR16", +"MP3", +"OGG_OPUS", +"MULAW", +"ALAW", +"PCM" +], +"enumDescriptions": [ +"Not specified. Will return result google.rpc.Code.INVALID_ARGUMENT.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Audio content returned as LINEAR16 also contains a WAV header.", +"MP3 audio at 32kbps.", +"Opus encoded audio wrapped in an ogg container. The result will be a file which can be played natively on Android, and in browsers (at least Chrome and Firefox). The quality of the encoding is considerably higher than MP3 while using approximately the same bitrate.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law. Audio content returned as MULAW also contains a WAV header.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/A-law. Audio content returned as ALAW also contains a WAV header.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Note that as opposed to LINEAR16, audio will not be wrapped in a WAV (or any other) header." +], +"type": "string" +}, +"effectsProfileId": { +"description": "Optional. Input only. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given. See [audio profiles](https://cloud.google.com/text-to-speech/docs/audio-profiles) for current supported profile ids.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pitch": { +"description": "Optional. Input only. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.", +"format": "double", +"type": "number" +}, +"sampleRateHertz": { +"description": "Optional. The synthesis sample rate (in hertz) for this audio. When this is specified in SynthesizeSpeechRequest, if this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality), unless the specified sample rate is not supported for the encoding chosen, in which case it will fail the request and return google.rpc.Code.INVALID_ARGUMENT.", +"format": "int32", +"type": "integer" +}, +"speakingRate": { +"description": "Optional. Input only. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error.", +"format": "double", +"type": "number" +}, +"volumeGainDb": { +"description": "Optional. Input only. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. Strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CustomPronunciationParams": { +"description": "Pronunciation customization for a phrase.", +"id": "CustomPronunciationParams", +"properties": { +"phoneticEncoding": { +"description": "The phonetic encoding of the phrase.", +"enum": [ +"PHONETIC_ENCODING_UNSPECIFIED", +"PHONETIC_ENCODING_IPA", +"PHONETIC_ENCODING_X_SAMPA" +], +"enumDescriptions": [ +"Not specified.", +"IPA. (e.g. apple -> \u02c8\u00e6p\u0259l ) https://en.wikipedia.org/wiki/International_Phonetic_Alphabet", +"X-SAMPA (e.g. apple -> \"{p@l\" ) https://en.wikipedia.org/wiki/X-SAMPA" +], +"type": "string" +}, +"phrase": { +"description": "The phrase to which the customization will be applied. The phrase can be multiple words (in the case of proper nouns etc), but should not span to a whole sentence.", +"type": "string" +}, +"pronunciation": { +"description": "The pronunciation of the phrase. This must be in the phonetic encoding specified above.", +"type": "string" +} +}, +"type": "object" +}, +"CustomPronunciations": { +"description": "A collection of pronunciation customizations.", +"id": "CustomPronunciations", +"properties": { +"pronunciations": { +"description": "The pronunciation customizations to be applied.", +"items": { +"$ref": "CustomPronunciationParams" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomVoiceParams": { +"description": "Description of the custom voice to be synthesized.", +"id": "CustomVoiceParams", +"properties": { +"model": { +"description": "Required. The name of the AutoML model that synthesizes the custom voice.", +"type": "string" +}, +"reportedUsage": { +"deprecated": true, +"description": "Optional. Deprecated. The usage of the synthesized audio to be reported.", +"enum": [ +"REPORTED_USAGE_UNSPECIFIED", +"REALTIME", +"OFFLINE" +], +"enumDescriptions": [ +"Request with reported usage unspecified will be rejected.", +"For scenarios where the synthesized audio is not downloadable and can only be used once. For example, real-time request in IVR system.", +"For scenarios where the synthesized audio is downloadable and can be reused. For example, the synthesized audio is downloaded, stored in customer service system and played repeatedly." +], +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GoogleCloudTexttospeechV1SynthesizeLongAudioMetadata": { +"description": "Metadata for response returned by the `SynthesizeLongAudio` method.", +"id": "GoogleCloudTexttospeechV1SynthesizeLongAudioMetadata", +"properties": { +"lastUpdateTime": { +"deprecated": true, +"description": "Deprecated. Do not use.", +"format": "google-datetime", +"type": "string" +}, +"progressPercentage": { +"description": "The progress of the most recent processing update in percentage, ie. 70.0%.", +"format": "double", +"type": "number" +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVoicesResponse": { +"description": "The message returned to the client by the `ListVoices` method.", +"id": "ListVoicesResponse", +"properties": { +"voices": { +"description": "The list of voices.", +"items": { +"$ref": "Voice" +}, +"type": "array" +} +}, +"type": "object" +}, +"MultiSpeakerMarkup": { +"description": "A collection of turns for multi-speaker synthesis.", +"id": "MultiSpeakerMarkup", +"properties": { +"turns": { +"description": "Required. Speaker turns.", +"items": { +"$ref": "Turn" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SynthesisInput": { +"description": "Contains text input to be synthesized. Either `text` or `ssml` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000 bytes.", +"id": "SynthesisInput", +"properties": { +"customPronunciations": { +"$ref": "CustomPronunciations", +"description": "Optional. The pronunciation customizations to be applied to the input. If this is set, the input will be synthesized using the given pronunciation customizations. The initial support will be for EFIGS (English, French, Italian, German, Spanish) languages, as provided in VoiceSelectionParams. Journey and Instant Clone voices are not supported yet. In order to customize the pronunciation of a phrase, there must be an exact match of the phrase in the input types. If using SSML, the phrase must not be inside a phoneme tag (entirely or partially)." +}, +"multiSpeakerMarkup": { +"$ref": "MultiSpeakerMarkup", +"description": "The multi-speaker input to be synthesized. Only applicable for multi-speaker synthesis." +}, +"ssml": { +"description": "The SSML document to be synthesized. The SSML document must be valid and well-formed. Otherwise the RPC will fail and return google.rpc.Code.INVALID_ARGUMENT. For more information, see [SSML](https://cloud.google.com/text-to-speech/docs/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"SynthesizeLongAudioMetadata": { +"description": "Metadata for response returned by the `SynthesizeLongAudio` method.", +"id": "SynthesizeLongAudioMetadata", +"properties": { +"lastUpdateTime": { +"deprecated": true, +"description": "Deprecated. Do not use.", +"format": "google-datetime", +"type": "string" +}, +"progressPercentage": { +"description": "The progress of the most recent processing update in percentage, ie. 70.0%.", +"format": "double", +"type": "number" +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"SynthesizeLongAudioRequest": { +"description": "The top-level message sent by the client for the `SynthesizeLongAudio` method.", +"id": "SynthesizeLongAudioRequest", +"properties": { +"audioConfig": { +"$ref": "AudioConfig", +"description": "Required. The configuration of the synthesized audio." +}, +"input": { +"$ref": "SynthesisInput", +"description": "Required. The Synthesizer requires either plain text or SSML as input." +}, +"outputGcsUri": { +"description": "Required. Specifies a Cloud Storage URI for the synthesis results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", +"type": "string" +}, +"voice": { +"$ref": "VoiceSelectionParams", +"description": "Required. The desired voice of the synthesized audio." +} +}, +"type": "object" +}, +"SynthesizeSpeechRequest": { +"description": "The top-level message sent by the client for the `SynthesizeSpeech` method.", +"id": "SynthesizeSpeechRequest", +"properties": { +"advancedVoiceOptions": { +"$ref": "AdvancedVoiceOptions", +"description": "Advanced voice options." +}, +"audioConfig": { +"$ref": "AudioConfig", +"description": "Required. The configuration of the synthesized audio." +}, +"input": { +"$ref": "SynthesisInput", +"description": "Required. The Synthesizer requires either plain text or SSML as input." +}, +"voice": { +"$ref": "VoiceSelectionParams", +"description": "Required. The desired voice of the synthesized audio." +} +}, +"type": "object" +}, +"SynthesizeSpeechResponse": { +"description": "The message returned to the client by the `SynthesizeSpeech` method.", +"id": "SynthesizeSpeechResponse", +"properties": { +"audioContent": { +"description": "The audio data bytes encoded as specified in the request, including the header for encodings that are wrapped in containers (e.g. MP3, OGG_OPUS). For LINEAR16 audio, we include the WAV header. Note: as with all bytes fields, protobuffers use a pure binary representation, whereas JSON representations use base64.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Turn": { +"description": "A Multi-speaker turn.", +"id": "Turn", +"properties": { +"speaker": { +"description": "Required. The speaker of the turn, for example, 'O' or 'Q'. Please refer to documentation for available speakers.", +"type": "string" +}, +"text": { +"description": "Required. The text to speak.", +"type": "string" +} +}, +"type": "object" +}, +"Voice": { +"description": "Description of a voice supported by the TTS service.", +"id": "Voice", +"properties": { +"languageCodes": { +"description": "The languages that this voice supports, expressed as [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags (e.g. \"en-US\", \"es-419\", \"cmn-tw\").", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of this voice. Each distinct voice has a unique name.", +"type": "string" +}, +"naturalSampleRateHertz": { +"description": "The natural sample rate (in hertz) for this voice.", +"format": "int32", +"type": "integer" +}, +"ssmlGender": { +"description": "The gender of this voice.", +"enum": [ +"SSML_VOICE_GENDER_UNSPECIFIED", +"MALE", +"FEMALE", +"NEUTRAL" +], +"enumDescriptions": [ +"An unspecified gender. In VoiceSelectionParams, this means that the client doesn't care which gender the selected voice will have. In the Voice field of ListVoicesResponse, this may mean that the voice doesn't fit any of the other categories in this enum, or that the gender of the voice isn't known.", +"A male voice.", +"A female voice.", +"A gender-neutral voice. This voice is not yet supported." +], +"type": "string" +} +}, +"type": "object" +}, +"VoiceCloneParams": { +"description": "The configuration of Voice Clone feature.", +"id": "VoiceCloneParams", +"properties": { +"voiceCloningKey": { +"description": "Required. Created by GenerateVoiceCloningKey.", +"type": "string" +} +}, +"type": "object" +}, +"VoiceSelectionParams": { +"description": "Description of which voice to use for a synthesis request.", +"id": "VoiceSelectionParams", +"properties": { +"customVoice": { +"$ref": "CustomVoiceParams", +"description": "The configuration for a custom voice. If [CustomVoiceParams.model] is set, the service will choose the custom voice matching the specified configuration." +}, +"languageCode": { +"description": "Required. The language (and potentially also the region) of the voice expressed as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g. \"en-US\". This should not include a script tag (e.g. use \"cmn-cn\" rather than \"cmn-Hant-cn\"), because the script will be inferred from the input provided in the SynthesisInput. The TTS service will use this parameter to help choose an appropriate voice. Note that the TTS service may choose a voice with a slightly different language code than the one selected; it may substitute a different region (e.g. using en-US rather than en-CA if there isn't a Canadian voice available), or even a different language, e.g. using \"nb\" (Norwegian Bokmal) instead of \"no\" (Norwegian)\".", +"type": "string" +}, +"name": { +"description": "The name of the voice. If both the name and the gender are not set, the service will choose a voice based on the other parameters such as language_code.", +"type": "string" +}, +"ssmlGender": { +"description": "The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement; if a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request.", +"enum": [ +"SSML_VOICE_GENDER_UNSPECIFIED", +"MALE", +"FEMALE", +"NEUTRAL" +], +"enumDescriptions": [ +"An unspecified gender. In VoiceSelectionParams, this means that the client doesn't care which gender the selected voice will have. In the Voice field of ListVoicesResponse, this may mean that the voice doesn't fit any of the other categories in this enum, or that the gender of the voice isn't known.", +"A male voice.", +"A female voice.", +"A gender-neutral voice. This voice is not yet supported." +], +"type": "string" +}, +"voiceClone": { +"$ref": "VoiceCloneParams", +"description": "Optional. The configuration for a voice clone. If [VoiceCloneParams.voice_clone_key] is set, the service will choose the voice clone matching the specified configuration." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Text-to-Speech API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/travelimpactmodel.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/travelimpactmodel.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..474501f17b799da113f0571dc89838be0b32f049 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/travelimpactmodel.v1.json @@ -0,0 +1,277 @@ +{ +"basePath": "", +"baseUrl": "https://travelimpactmodel.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Travel Impact Model", +"description": "Travel Impact Model API lets you query travel carbon emission estimates.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/travel/impact-model", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "travelimpactmodel:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://travelimpactmodel.mtls.googleapis.com/", +"name": "travelimpactmodel", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"flights": { +"methods": { +"computeFlightEmissions": { +"description": "Stateless method to retrieve emission estimates. Details on how emission estimates are computed: https://github.com/google/travel-impact-model The response will contain all entries that match the input flight legs, in the same order. If there are no estimates available for a certain flight leg, the response will return the flight leg object with empty emission fields. The request will still be considered successful. Reasons for missing emission estimates include: - The flight is unknown to the server. - The input flight leg is missing one or more identifiers. - The flight date is in the past. - The aircraft type is not supported by the model. - Missing seat configuration. The request can contain up to 1000 flight legs. If the request has more than 1000 direct flights, if will fail with an INVALID_ARGUMENT error.", +"flatPath": "v1/flights:computeFlightEmissions", +"httpMethod": "POST", +"id": "travelimpactmodel.flights.computeFlightEmissions", +"parameterOrder": [], +"parameters": {}, +"path": "v1/flights:computeFlightEmissions", +"request": { +"$ref": "ComputeFlightEmissionsRequest" +}, +"response": { +"$ref": "ComputeFlightEmissionsResponse" +} +} +} +} +}, +"revision": "20241027", +"rootUrl": "https://travelimpactmodel.googleapis.com/", +"schemas": { +"ComputeFlightEmissionsRequest": { +"description": "Input definition for the ComputeFlightEmissions request.", +"id": "ComputeFlightEmissionsRequest", +"properties": { +"flights": { +"description": "Required. Direct flights to return emission estimates for.", +"items": { +"$ref": "Flight" +}, +"type": "array" +} +}, +"type": "object" +}, +"ComputeFlightEmissionsResponse": { +"description": "Output definition for the ComputeFlightEmissions response.", +"id": "ComputeFlightEmissionsResponse", +"properties": { +"flightEmissions": { +"description": "List of flight legs with emission estimates.", +"items": { +"$ref": "FlightWithEmissions" +}, +"type": "array" +}, +"modelVersion": { +"$ref": "ModelVersion", +"description": "The model version under which emission estimates for all flights in this response were computed." +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"EmissionsGramsPerPax": { +"description": "Grouped emissions per seating class results.", +"id": "EmissionsGramsPerPax", +"properties": { +"business": { +"description": "Emissions for one passenger in business class in grams. This field is always computed and populated, regardless of whether the aircraft has business class seats or not.", +"format": "int32", +"type": "integer" +}, +"economy": { +"description": "Emissions for one passenger in economy class in grams. This field is always computed and populated, regardless of whether the aircraft has economy class seats or not.", +"format": "int32", +"type": "integer" +}, +"first": { +"description": "Emissions for one passenger in first class in grams. This field is always computed and populated, regardless of whether the aircraft has first class seats or not.", +"format": "int32", +"type": "integer" +}, +"premiumEconomy": { +"description": "Emissions for one passenger in premium economy class in grams. This field is always computed and populated, regardless of whether the aircraft has premium economy class seats or not.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Flight": { +"description": "All details related to a single request item for a direct flight emission estimates.", +"id": "Flight", +"properties": { +"departureDate": { +"$ref": "Date", +"description": "Required. Date of the flight in the time zone of the origin airport. Must be a date in the present or future." +}, +"destination": { +"description": "Required. IATA airport code for flight destination, e.g. \"JFK\".", +"type": "string" +}, +"flightNumber": { +"description": "Required. Flight number, e.g. 324.", +"format": "int32", +"type": "integer" +}, +"operatingCarrierCode": { +"description": "Required. IATA carrier code, e.g. \"AA\".", +"type": "string" +}, +"origin": { +"description": "Required. IATA airport code for flight origin, e.g. \"LHR\".", +"type": "string" +} +}, +"type": "object" +}, +"FlightWithEmissions": { +"description": "Direct flight with emission estimates.", +"id": "FlightWithEmissions", +"properties": { +"emissionsGramsPerPax": { +"$ref": "EmissionsGramsPerPax", +"description": "Optional. Per-passenger emission estimate numbers. Will not be present if emissions could not be computed. For the list of reasons why emissions could not be computed, see ComputeFlightEmissions. This field uses wtw emissions aka ttw_emissions_grams_per_pax + wtt_emissions_grams_per_pax." +}, +"flight": { +"$ref": "Flight", +"description": "Required. Matches the flight identifiers in the request. Note: all IATA codes are capitalized." +} +}, +"type": "object" +}, +"ModelVersion": { +"description": "Travel Impact Model version. For more information about the model versioning see https://github.com/google/travel-impact-model/#versioning.", +"id": "ModelVersion", +"properties": { +"dated": { +"description": "Dated versions: Model datasets are recreated with refreshed input data but no change to the algorithms regularly.", +"type": "string" +}, +"major": { +"description": "Major versions: Major changes to methodology (e.g. adding new data sources to the model that lead to major output changes). Such changes will be infrequent and announced well in advance. Might involve API version changes, which will respect guidelines in https://cloud.google.com/endpoints/docs/openapi/versioning-an-api#backwards-incompatible", +"format": "int32", +"type": "integer" +}, +"minor": { +"description": "Minor versions: Changes to the model that, while being consistent across schema versions, change the model parameters or implementation.", +"format": "int32", +"type": "integer" +}, +"patch": { +"description": "Patch versions: Implementation changes meant to address bugs or inaccuracies in the model implementation.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Travel Impact Model API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vault.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vault.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..17fefc16fab88f13aa21b060c538c37ea2f6e08e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vault.v1.json @@ -0,0 +1,2817 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/ediscovery": { +"description": "Manage your eDiscovery data" +}, +"https://www.googleapis.com/auth/ediscovery.readonly": { +"description": "View your eDiscovery data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://vault.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Vault", +"description": "Retention and eDiscovery for Google Workspace. To work with Vault resources, the account must have the [required Vault privileges](https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege. For example, to download an export, an account needs the **Manage Exports** privilege and the matter shared with them. ", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/vault", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "vault:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://vault.mtls.googleapis.com/", +"name": "vault", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"matters": { +"methods": { +"addPermissions": { +"description": "Adds an account as a matter collaborator.", +"flatPath": "v1/matters/{matterId}:addPermissions", +"httpMethod": "POST", +"id": "vault.matters.addPermissions", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}:addPermissions", +"request": { +"$ref": "AddMatterPermissionsRequest" +}, +"response": { +"$ref": "MatterPermission" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"close": { +"description": "Closes the specified matter. Returns the matter with updated state.", +"flatPath": "v1/matters/{matterId}:close", +"httpMethod": "POST", +"id": "vault.matters.close", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}:close", +"request": { +"$ref": "CloseMatterRequest" +}, +"response": { +"$ref": "CloseMatterResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"count": { +"description": "Counts the accounts processed by the specified query.", +"flatPath": "v1/matters/{matterId}:count", +"httpMethod": "POST", +"id": "vault.matters.count", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}:count", +"request": { +"$ref": "CountArtifactsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"create": { +"description": "Creates a matter with the given name and description. The initial state is open, and the owner is the method caller. Returns the created matter with default view.", +"flatPath": "v1/matters", +"httpMethod": "POST", +"id": "vault.matters.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/matters", +"request": { +"$ref": "Matter" +}, +"response": { +"$ref": "Matter" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"delete": { +"description": "Deletes the specified matter. Returns the matter with updated state.", +"flatPath": "v1/matters/{matterId}", +"httpMethod": "DELETE", +"id": "vault.matters.delete", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}", +"response": { +"$ref": "Matter" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"get": { +"description": "Gets the specified matter.", +"flatPath": "v1/matters/{matterId}", +"httpMethod": "GET", +"id": "vault.matters.get", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies how much information about the matter to return in the response.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The amount of detail is unspecified. Same as **BASIC**.", +"Returns the matter ID, name, description, and state. Default choice.", +"Returns the basic details and a list of matter owners and collaborators (see [MatterPermissions](https://developers.google.com/vault/reference/rest/v1/matters#matterpermission))." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/matters/{matterId}", +"response": { +"$ref": "Matter" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"list": { +"description": "Lists matters the requestor has access to.", +"flatPath": "v1/matters", +"httpMethod": "GET", +"id": "vault.matters.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The number of matters to return in the response. Default and maximum are 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The pagination token as returned in the response.", +"location": "query", +"type": "string" +}, +"state": { +"description": "If set, lists only matters with the specified state. The default lists matters of all states.", +"enum": [ +"STATE_UNSPECIFIED", +"OPEN", +"CLOSED", +"DELETED" +], +"enumDescriptions": [ +"The matter has no specified state.", +"The matter is open.", +"The matter is closed.", +"The matter is deleted." +], +"location": "query", +"type": "string" +}, +"view": { +"description": "Specifies how much information about the matter to return in response.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The amount of detail is unspecified. Same as **BASIC**.", +"Returns the matter ID, name, description, and state. Default choice.", +"Returns the basic details and a list of matter owners and collaborators (see [MatterPermissions](https://developers.google.com/vault/reference/rest/v1/matters#matterpermission))." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/matters", +"response": { +"$ref": "ListMattersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"removePermissions": { +"description": "Removes an account as a matter collaborator.", +"flatPath": "v1/matters/{matterId}:removePermissions", +"httpMethod": "POST", +"id": "vault.matters.removePermissions", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}:removePermissions", +"request": { +"$ref": "RemoveMatterPermissionsRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"reopen": { +"description": "Reopens the specified matter. Returns the matter with updated state.", +"flatPath": "v1/matters/{matterId}:reopen", +"httpMethod": "POST", +"id": "vault.matters.reopen", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}:reopen", +"request": { +"$ref": "ReopenMatterRequest" +}, +"response": { +"$ref": "ReopenMatterResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"undelete": { +"description": "Undeletes the specified matter. Returns the matter with updated state.", +"flatPath": "v1/matters/{matterId}:undelete", +"httpMethod": "POST", +"id": "vault.matters.undelete", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}:undelete", +"request": { +"$ref": "UndeleteMatterRequest" +}, +"response": { +"$ref": "Matter" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"update": { +"description": "Updates the specified matter. This updates only the name and description of the matter, identified by matter ID. Changes to any other fields are ignored. Returns the default view of the matter.", +"flatPath": "v1/matters/{matterId}", +"httpMethod": "PUT", +"id": "vault.matters.update", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}", +"request": { +"$ref": "Matter" +}, +"response": { +"$ref": "Matter" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +} +}, +"resources": { +"exports": { +"methods": { +"create": { +"description": "Creates an export.", +"flatPath": "v1/matters/{matterId}/exports", +"httpMethod": "POST", +"id": "vault.matters.exports.create", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/exports", +"request": { +"$ref": "Export" +}, +"response": { +"$ref": "Export" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"delete": { +"description": "Deletes an export.", +"flatPath": "v1/matters/{matterId}/exports/{exportId}", +"httpMethod": "DELETE", +"id": "vault.matters.exports.delete", +"parameterOrder": [ +"matterId", +"exportId" +], +"parameters": { +"exportId": { +"description": "The export ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/exports/{exportId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"get": { +"description": "Gets an export.", +"flatPath": "v1/matters/{matterId}/exports/{exportId}", +"httpMethod": "GET", +"id": "vault.matters.exports.get", +"parameterOrder": [ +"matterId", +"exportId" +], +"parameters": { +"exportId": { +"description": "The export ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/exports/{exportId}", +"response": { +"$ref": "Export" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"list": { +"description": "Lists details about the exports in the specified matter.", +"flatPath": "v1/matters/{matterId}/exports", +"httpMethod": "GET", +"id": "vault.matters.exports.list", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The number of exports to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The pagination token as returned in the response.", +"location": "query", +"type": "string" +} +}, +"path": "v1/matters/{matterId}/exports", +"response": { +"$ref": "ListExportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +} +} +}, +"holds": { +"methods": { +"addHeldAccounts": { +"description": "Adds accounts to a hold. Returns a list of accounts that have been successfully added. Accounts can be added only to an existing account-based hold.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}:addHeldAccounts", +"httpMethod": "POST", +"id": "vault.matters.holds.addHeldAccounts", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}:addHeldAccounts", +"request": { +"$ref": "AddHeldAccountsRequest" +}, +"response": { +"$ref": "AddHeldAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"create": { +"description": "Creates a hold in the specified matter.", +"flatPath": "v1/matters/{matterId}/holds", +"httpMethod": "POST", +"id": "vault.matters.holds.create", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds", +"request": { +"$ref": "Hold" +}, +"response": { +"$ref": "Hold" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"delete": { +"description": "Removes the specified hold and releases the accounts or organizational unit covered by the hold. If the data is not preserved by another hold or retention rule, it might be purged.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}", +"httpMethod": "DELETE", +"id": "vault.matters.holds.delete", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"get": { +"description": "Gets the specified hold.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}", +"httpMethod": "GET", +"id": "vault.matters.holds.get", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "The amount of detail to return for a hold.", +"enum": [ +"HOLD_VIEW_UNSPECIFIED", +"BASIC_HOLD", +"FULL_HOLD" +], +"enumDescriptions": [ +"Not specified. Defaults to **FULL_HOLD**.", +"Returns the hold ID, name, update time, service, and query.", +"Returns all details of **BASIC_HOLD** and the entities the hold applies to, such as accounts or organizational unit." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}", +"response": { +"$ref": "Hold" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"list": { +"description": "Lists the holds in a matter.", +"flatPath": "v1/matters/{matterId}/holds", +"httpMethod": "GET", +"id": "vault.matters.holds.list", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The number of holds to return in the response, between 0 and 100 inclusive. Leaving this empty, or as 0, is the same as **page_size** = 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The pagination token as returned in the response. An empty token means start from the beginning.", +"location": "query", +"type": "string" +}, +"view": { +"description": "The amount of detail to return for a hold.", +"enum": [ +"HOLD_VIEW_UNSPECIFIED", +"BASIC_HOLD", +"FULL_HOLD" +], +"enumDescriptions": [ +"Not specified. Defaults to **FULL_HOLD**.", +"Returns the hold ID, name, update time, service, and query.", +"Returns all details of **BASIC_HOLD** and the entities the hold applies to, such as accounts or organizational unit." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds", +"response": { +"$ref": "ListHoldsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"removeHeldAccounts": { +"description": "Removes the specified accounts from a hold. Returns a list of statuses in the same order as the request.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}:removeHeldAccounts", +"httpMethod": "POST", +"id": "vault.matters.holds.removeHeldAccounts", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}:removeHeldAccounts", +"request": { +"$ref": "RemoveHeldAccountsRequest" +}, +"response": { +"$ref": "RemoveHeldAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"update": { +"description": "Updates the scope (organizational unit or accounts) and query parameters of a hold. You cannot add accounts to a hold that covers an organizational unit, nor can you add organizational units to a hold that covers individual accounts. If you try, the unsupported values are ignored.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}", +"httpMethod": "PUT", +"id": "vault.matters.holds.update", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The ID of the hold.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}", +"request": { +"$ref": "Hold" +}, +"response": { +"$ref": "Hold" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +} +}, +"resources": { +"accounts": { +"methods": { +"create": { +"description": "Adds an account to a hold. Accounts can be added only to a hold that does not have an organizational unit set. If you try to add an account to an organizational unit-based hold, an error is returned.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts", +"httpMethod": "POST", +"id": "vault.matters.holds.accounts.create", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}/accounts", +"request": { +"$ref": "HeldAccount" +}, +"response": { +"$ref": "HeldAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"delete": { +"description": "Removes an account from a hold.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}", +"httpMethod": "DELETE", +"id": "vault.matters.holds.accounts.delete", +"parameterOrder": [ +"matterId", +"holdId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account to remove from the hold.", +"location": "path", +"required": true, +"type": "string" +}, +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"list": { +"description": "Lists the accounts covered by a hold. This can list only individually-specified accounts covered by the hold. If the hold covers an organizational unit, use the [Admin SDK](https://developers.google.com/admin-sdk/). to list the members of the organizational unit on hold.", +"flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts", +"httpMethod": "GET", +"id": "vault.matters.holds.accounts.list", +"parameterOrder": [ +"matterId", +"holdId" +], +"parameters": { +"holdId": { +"description": "The hold ID.", +"location": "path", +"required": true, +"type": "string" +}, +"matterId": { +"description": "The matter ID.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/holds/{holdId}/accounts", +"response": { +"$ref": "ListHeldAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +} +} +} +} +}, +"savedQueries": { +"methods": { +"create": { +"description": "Creates a saved query.", +"flatPath": "v1/matters/{matterId}/savedQueries", +"httpMethod": "POST", +"id": "vault.matters.savedQueries.create", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The ID of the matter to create the saved query in.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/savedQueries", +"request": { +"$ref": "SavedQuery" +}, +"response": { +"$ref": "SavedQuery" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"delete": { +"description": "Deletes the specified saved query.", +"flatPath": "v1/matters/{matterId}/savedQueries/{savedQueryId}", +"httpMethod": "DELETE", +"id": "vault.matters.savedQueries.delete", +"parameterOrder": [ +"matterId", +"savedQueryId" +], +"parameters": { +"matterId": { +"description": "The ID of the matter to delete the saved query from.", +"location": "path", +"required": true, +"type": "string" +}, +"savedQueryId": { +"description": "ID of the saved query to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/savedQueries/{savedQueryId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"get": { +"description": "Retrieves the specified saved query.", +"flatPath": "v1/matters/{matterId}/savedQueries/{savedQueryId}", +"httpMethod": "GET", +"id": "vault.matters.savedQueries.get", +"parameterOrder": [ +"matterId", +"savedQueryId" +], +"parameters": { +"matterId": { +"description": "The ID of the matter to get the saved query from.", +"location": "path", +"required": true, +"type": "string" +}, +"savedQueryId": { +"description": "ID of the saved query to retrieve.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/matters/{matterId}/savedQueries/{savedQueryId}", +"response": { +"$ref": "SavedQuery" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"list": { +"description": "Lists the saved queries in a matter.", +"flatPath": "v1/matters/{matterId}/savedQueries", +"httpMethod": "GET", +"id": "vault.matters.savedQueries.list", +"parameterOrder": [ +"matterId" +], +"parameters": { +"matterId": { +"description": "The ID of the matter to get the saved queries for.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of saved queries to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The pagination token as returned in the previous response. An empty token means start from the beginning.", +"location": "query", +"type": "string" +} +}, +"path": "v1/matters/{matterId}/savedQueries", +"response": { +"$ref": "ListSavedQueriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "vault.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "vault.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "vault.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/operations", +"httpMethod": "GET", +"id": "vault.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/ediscovery", +"https://www.googleapis.com/auth/ediscovery.readonly" +] +} +} +} +}, +"revision": "20241121", +"rootUrl": "https://vault.googleapis.com/", +"schemas": { +"AccountCount": { +"description": "The results count for each account.", +"id": "AccountCount", +"properties": { +"account": { +"$ref": "UserInfo", +"description": "Account owner." +}, +"count": { +"description": "The number of results (messages or files) found for this account.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AccountCountError": { +"description": "An error that occurred when querying a specific account", +"id": "AccountCountError", +"properties": { +"account": { +"$ref": "UserInfo", +"description": "Account owner." +}, +"errorType": { +"description": "Account query error.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"WILDCARD_TOO_BROAD", +"TOO_MANY_TERMS", +"LOCATION_UNAVAILABLE", +"UNKNOWN", +"DEADLINE_EXCEEDED" +], +"enumDescriptions": [ +"Default.", +"Permanent - prefix terms expanded to too many query terms.", +"Permanent - query contains too many terms.", +"Transient - data in transit between storage replicas, temporarily unavailable.", +"Unrecognized error.", +"Deadline exceeded when querying the account." +], +"type": "string" +} +}, +"type": "object" +}, +"AccountInfo": { +"description": "The accounts to search", +"id": "AccountInfo", +"properties": { +"emails": { +"description": "A set of accounts to search.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddHeldAccountResult": { +"description": "The status of each account creation, and the **HeldAccount**, if successful.", +"id": "AddHeldAccountResult", +"properties": { +"account": { +"$ref": "HeldAccount", +"description": "Returned when the account was successfully created." +}, +"status": { +"$ref": "Status", +"description": "Reports the request status. If it failed, returns an error message." +} +}, +"type": "object" +}, +"AddHeldAccountsRequest": { +"description": "Add a list of accounts to a hold.", +"id": "AddHeldAccountsRequest", +"properties": { +"accountIds": { +"description": "A comma-separated list of the account IDs of the accounts to add to the hold. Specify either **emails** or **account_ids**, but not both.", +"items": { +"type": "string" +}, +"type": "array" +}, +"emails": { +"description": "A comma-separated list of the emails of the accounts to add to the hold. Specify either **emails** or **account_ids**, but not both.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddHeldAccountsResponse": { +"description": "Response for batch create held accounts.", +"id": "AddHeldAccountsResponse", +"properties": { +"responses": { +"description": "The list of responses, in the same order as the batch request.", +"items": { +"$ref": "AddHeldAccountResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddMatterPermissionsRequest": { +"description": "Add an account with the permission specified. The role cannot be owner. If an account already has a role in the matter, the existing role is overwritten.", +"id": "AddMatterPermissionsRequest", +"properties": { +"ccMe": { +"description": "Only relevant if **sendEmails** is **true**. To CC the requestor in the email message, set to **true**. To not CC requestor, set to **false**.", +"type": "boolean" +}, +"matterPermission": { +"$ref": "MatterPermission", +"description": "The account and its role to add." +}, +"sendEmails": { +"description": "To send a notification email to the added account, set to **true**. To not send a notification email, set to **false**.", +"type": "boolean" +} +}, +"type": "object" +}, +"CalendarExportOptions": { +"description": "The options for Calendar exports.", +"id": "CalendarExportOptions", +"properties": { +"exportFormat": { +"description": "The file format for exported text messages.", +"enum": [ +"EXPORT_FORMAT_UNSPECIFIED", +"MBOX", +"PST", +"ICS" +], +"enumDescriptions": [ +"No export format specified.", +"Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", +"Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", +"Export as ICS. Only available for Calendar." +], +"type": "string" +} +}, +"type": "object" +}, +"CalendarOptions": { +"description": "Additional options for Calendar search", +"id": "CalendarOptions", +"properties": { +"locationQuery": { +"description": "Matches only those events whose location contains all of the words in the given set. If the string contains quoted phrases, this method only matches those events whose location contain the exact phrase. Entries in the set are considered in \"and\". Word splitting example: [\"New Zealand\"] vs [\"New\",\"Zealand\"] \"New Zealand\": matched by both \"New and better Zealand\": only matched by the later", +"items": { +"type": "string" +}, +"type": "array" +}, +"minusWords": { +"description": "Matches only those events that do not contain any of the words in the given set in title, description, location, or attendees. Entries in the set are considered in \"or\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"peopleQuery": { +"description": "Matches only those events whose attendees contain all of the words in the given set. Entries in the set are considered in \"and\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"responseStatuses": { +"description": "Matches only events for which the custodian gave one of these responses. If the set is empty or contains ATTENDEE_RESPONSE_UNSPECIFIED there will be no filtering on responses.", +"items": { +"enum": [ +"ATTENDEE_RESPONSE_UNSPECIFIED", +"ATTENDEE_RESPONSE_NEEDS_ACTION", +"ATTENDEE_RESPONSE_ACCEPTED", +"ATTENDEE_RESPONSE_DECLINED", +"ATTENDEE_RESPONSE_TENTATIVE" +], +"enumDescriptions": [ +"Attendee response unspecified. If this is set no filtering on responses will be done, all other attendee responses that are part of the query options are ignored.", +"The participant has been invited but has not responded yet.", +"The participant plans to attend.", +"The participant does not plan to attend.", +"The participant expects to possibly attend." +], +"type": "string" +}, +"type": "array" +}, +"versionDate": { +"description": "Search the current version of the Calendar event, but export the contents of the last version saved before 12:00 AM UTC on the specified date. Enter the date in UTC.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloseMatterRequest": { +"description": "Close a matter by ID.", +"id": "CloseMatterRequest", +"properties": {}, +"type": "object" +}, +"CloseMatterResponse": { +"description": "Response to a CloseMatterRequest.", +"id": "CloseMatterResponse", +"properties": { +"matter": { +"$ref": "Matter", +"description": "The updated matter, with state **CLOSED**." +} +}, +"type": "object" +}, +"CloudStorageFile": { +"description": "The export file in Cloud Storage", +"id": "CloudStorageFile", +"properties": { +"bucketName": { +"description": "The name of the Cloud Storage bucket for the export file. You can use this value in the Cloud Storage [JSON API](https://cloud.google.com/storage/docs/json_api) or [XML API](https://cloud.google.com/storage/docs/xml-api), but not to list the bucket contents. Instead, you can [get individual export files](https://cloud.google.com/storage/docs/json_api/v1/objects/get) by object name.", +"type": "string" +}, +"md5Hash": { +"description": "The md5 hash of the file.", +"type": "string" +}, +"objectName": { +"description": "The name of the Cloud Storage object for the export file. You can use this value in the Cloud Storage [JSON API](https://cloud.google.com/storage/docs/json_api) or [XML API](https://cloud.google.com/storage/docs/xml-api).", +"type": "string" +}, +"size": { +"description": "The export file size.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CloudStorageSink": { +"description": "Export sink for Cloud Storage files.", +"id": "CloudStorageSink", +"properties": { +"files": { +"description": "Output only. The exported files in Cloud Storage.", +"items": { +"$ref": "CloudStorageFile" +}, +"type": "array" +} +}, +"type": "object" +}, +"CorpusQuery": { +"description": "Service-specific options for holds.", +"id": "CorpusQuery", +"properties": { +"calendarQuery": { +"$ref": "HeldCalendarQuery", +"description": "Service-specific options for Calendar holds. If set, **CorpusType** must be **CALENDAR**." +}, +"driveQuery": { +"$ref": "HeldDriveQuery", +"description": "Service-specific options for Drive holds. If set, **CorpusType** must be **DRIVE**." +}, +"groupsQuery": { +"$ref": "HeldGroupsQuery", +"description": "Service-specific options for Groups holds. If set, **CorpusType** must be **GROUPS**." +}, +"hangoutsChatQuery": { +"$ref": "HeldHangoutsChatQuery", +"description": "Service-specific options for Chat holds. If set, **CorpusType** must be **HANGOUTS_CHAT**." +}, +"mailQuery": { +"$ref": "HeldMailQuery", +"description": "Service-specific options for Gmail holds. If set, **CorpusType** must be **MAIL**." +}, +"voiceQuery": { +"$ref": "HeldVoiceQuery", +"description": "Service-specific options for Voice holds. If set, **CorpusType** must be **VOICE**." +} +}, +"type": "object" +}, +"CountArtifactsMetadata": { +"description": "Long running operation metadata for CountArtifacts.", +"id": "CountArtifactsMetadata", +"properties": { +"endTime": { +"description": "End time of count operation. Available when operation is done.", +"format": "google-datetime", +"type": "string" +}, +"matterId": { +"description": "The matter ID of the associated matter.", +"type": "string" +}, +"query": { +"$ref": "Query", +"description": "The search query from the request." +}, +"startTime": { +"description": "Creation time of count operation.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CountArtifactsRequest": { +"description": "Count artifacts request.", +"id": "CountArtifactsRequest", +"properties": { +"query": { +"$ref": "Query", +"description": "The search query." +}, +"view": { +"description": "Sets the granularity of the count results.", +"enum": [ +"COUNT_RESULT_VIEW_UNSPECIFIED", +"TOTAL_COUNT", +"ALL" +], +"enumDescriptions": [ +"Default. Same as **TOTAL_COUNT**.", +"Response includes counts of the total accounts, queried accounts, matching accounts, non-queryable accounts, and queried account errors.", +"Response includes the same details as **TOTAL_COUNT**, plus additional account breakdown." +], +"type": "string" +} +}, +"type": "object" +}, +"CountArtifactsResponse": { +"description": "Definition of the response for method CountArtifacts.", +"id": "CountArtifactsResponse", +"properties": { +"groupsCountResult": { +"$ref": "GroupsCountResult", +"description": "Count metrics for Groups." +}, +"mailCountResult": { +"$ref": "MailCountResult", +"description": "Count metrics for Gmail and classic Hangouts." +}, +"totalCount": { +"description": "Total count of messages.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DriveExportOptions": { +"description": "Options for Drive exports.", +"id": "DriveExportOptions", +"properties": { +"includeAccessInfo": { +"description": "To include access level information for users with [indirect access](https://support.google.com/vault/answer/6099459#metadata) to files, set to **true**.", +"type": "boolean" +} +}, +"type": "object" +}, +"DriveOptions": { +"description": "Additional options for Drive search", +"id": "DriveOptions", +"properties": { +"clientSideEncryptedOption": { +"description": "Set whether the results include only content encrypted with [Google Workspace Client-side encryption](https://support.google.com/a?p=cse_ov) content, only unencrypted content, or both. Defaults to both. Currently supported for Drive.", +"enum": [ +"CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", +"CLIENT_SIDE_ENCRYPTED_OPTION_ANY", +"CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", +"CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" +], +"enumDescriptions": [ +"Encryption status unspecified. Results include both client-side encrypted and non-encrypted content.", +"Include both client-side encrypted and unencrypted content in results.", +"Include client-side encrypted content only.", +"Include unencrypted content only." +], +"type": "string" +}, +"includeSharedDrives": { +"description": "Set to **true** to include shared drives.", +"type": "boolean" +}, +"includeTeamDrives": { +"deprecated": true, +"description": "Set to true to include Team Drive.", +"type": "boolean" +}, +"versionDate": { +"description": "Search the current version of the Drive file, but export the contents of the last version saved before 12:00 AM UTC on the specified date. Enter the date in UTC.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Export": { +"description": "An export. To work with Vault resources, the account must have the [required Vault privileges](https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.", +"id": "Export", +"properties": { +"cloudStorageSink": { +"$ref": "CloudStorageSink", +"description": "Output only. The sink for export files in Cloud Storage." +}, +"createTime": { +"description": "Output only. The time when the export was created.", +"format": "google-datetime", +"type": "string" +}, +"exportOptions": { +"$ref": "ExportOptions", +"description": "Additional export options." +}, +"id": { +"description": "Output only. The generated export ID.", +"type": "string" +}, +"matterId": { +"description": "Output only. The matter ID.", +"type": "string" +}, +"name": { +"description": "The export name. Don't use special characters (~!$'(),;@:/?) in the name, they can prevent you from downloading exports.", +"type": "string" +}, +"parentExportId": { +"description": "Output only. Identifies the parent export that spawned this child export. This is only set on child exports.", +"readOnly": true, +"type": "string" +}, +"query": { +"$ref": "Query", +"description": "The query parameters used to create the export." +}, +"requester": { +"$ref": "UserInfo", +"description": "Output only. The requester of the export." +}, +"stats": { +"$ref": "ExportStats", +"description": "Output only. Details about the export progress and size." +}, +"status": { +"description": "Output only. The status of the export.", +"enum": [ +"EXPORT_STATUS_UNSPECIFIED", +"COMPLETED", +"FAILED", +"IN_PROGRESS" +], +"enumDescriptions": [ +"The status is unspecified.", +"The export completed.", +"The export failed.", +"The export is in progress." +], +"type": "string" +} +}, +"type": "object" +}, +"ExportOptions": { +"description": "Additional options for exports", +"id": "ExportOptions", +"properties": { +"calendarOptions": { +"$ref": "CalendarExportOptions", +"description": "Option available for Calendar export." +}, +"driveOptions": { +"$ref": "DriveExportOptions", +"description": "Options for Drive exports." +}, +"groupsOptions": { +"$ref": "GroupsExportOptions", +"description": "Options for Groups exports." +}, +"hangoutsChatOptions": { +"$ref": "HangoutsChatExportOptions", +"description": "Options for Chat exports." +}, +"mailOptions": { +"$ref": "MailExportOptions", +"description": "Options for Gmail exports." +}, +"region": { +"description": "The requested data region for the export.", +"enum": [ +"EXPORT_REGION_UNSPECIFIED", +"ANY", +"US", +"EUROPE" +], +"enumDescriptions": [ +"The region is unspecified. Defaults to ANY.", +"Any region.", +"United States region.", +"Europe region." +], +"type": "string" +}, +"voiceOptions": { +"$ref": "VoiceExportOptions", +"description": "Options for Voice exports." +} +}, +"type": "object" +}, +"ExportStats": { +"description": "Progress information for an export.", +"id": "ExportStats", +"properties": { +"exportedArtifactCount": { +"description": "The number of messages or files already processed for export.", +"format": "int64", +"type": "string" +}, +"sizeInBytes": { +"description": "The size of export in bytes.", +"format": "int64", +"type": "string" +}, +"totalArtifactCount": { +"description": "The number of messages or files to be exported.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GroupsCountResult": { +"description": "Groups specific count metrics.", +"id": "GroupsCountResult", +"properties": { +"accountCountErrors": { +"description": "Error occurred when querying these accounts.", +"items": { +"$ref": "AccountCountError" +}, +"type": "array" +}, +"accountCounts": { +"description": "Subtotal count per matching account that have more than zero messages.", +"items": { +"$ref": "AccountCount" +}, +"type": "array" +}, +"matchingAccountsCount": { +"description": "Total number of accounts that can be queried and have more than zero messages.", +"format": "int64", +"type": "string" +}, +"nonQueryableAccounts": { +"description": "When **DataScope** is **HELD_DATA**, these accounts in the request are not queried because they are not on hold. For other data scope, this field is not set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"queriedAccountsCount": { +"description": "Total number of accounts involved in this count operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GroupsExportOptions": { +"description": "Options for Groups exports.", +"id": "GroupsExportOptions", +"properties": { +"exportFormat": { +"description": "The file format for exported messages.", +"enum": [ +"EXPORT_FORMAT_UNSPECIFIED", +"MBOX", +"PST", +"ICS" +], +"enumDescriptions": [ +"No export format specified.", +"Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", +"Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", +"Export as ICS. Only available for Calendar." +], +"type": "string" +} +}, +"type": "object" +}, +"HangoutsChatExportOptions": { +"description": "Options for Chat exports.", +"id": "HangoutsChatExportOptions", +"properties": { +"exportFormat": { +"description": "The file format for exported messages.", +"enum": [ +"EXPORT_FORMAT_UNSPECIFIED", +"MBOX", +"PST", +"ICS" +], +"enumDescriptions": [ +"No export format specified.", +"Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", +"Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", +"Export as ICS. Only available for Calendar." +], +"type": "string" +} +}, +"type": "object" +}, +"HangoutsChatInfo": { +"description": "The Chat spaces to search", +"id": "HangoutsChatInfo", +"properties": { +"roomId": { +"description": "A list of Chat spaces IDs, as provided by the [Chat API](https://developers.google.com/chat). There is a limit of exporting from 500 Chat spaces per request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"HangoutsChatOptions": { +"description": "Additional options for Google Chat search", +"id": "HangoutsChatOptions", +"properties": { +"includeRooms": { +"description": "For searches by account or organizational unit, set to **true** to include rooms.", +"type": "boolean" +} +}, +"type": "object" +}, +"HeldAccount": { +"description": "An account covered by a hold. This structure is immutable. It can be an individual account or a Google Group, depending on the service. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.", +"id": "HeldAccount", +"properties": { +"accountId": { +"description": "The account ID, as provided by the [Admin SDK](https://developers.google.com/admin-sdk/).", +"type": "string" +}, +"email": { +"description": "The primary email address of the account. If used as an input, this takes precedence over **accountId**.", +"type": "string" +}, +"firstName": { +"description": "Output only. The first name of the account holder.", +"type": "string" +}, +"holdTime": { +"description": "Output only. When the account was put on hold.", +"format": "google-datetime", +"type": "string" +}, +"lastName": { +"description": "Output only. The last name of the account holder.", +"type": "string" +} +}, +"type": "object" +}, +"HeldCalendarQuery": { +"description": "Options for Calendar holds.", +"id": "HeldCalendarQuery", +"properties": {}, +"type": "object" +}, +"HeldDriveQuery": { +"description": "Options for Drive holds.", +"id": "HeldDriveQuery", +"properties": { +"includeSharedDriveFiles": { +"description": "To include files in shared drives in the hold, set to **true**.", +"type": "boolean" +}, +"includeTeamDriveFiles": { +"deprecated": true, +"description": "To include files in Team Drives in the hold, set to **true**.", +"type": "boolean" +} +}, +"type": "object" +}, +"HeldGroupsQuery": { +"description": "Query options for group holds.", +"id": "HeldGroupsQuery", +"properties": { +"endTime": { +"description": "The end time for the query. Specify in GMT. The value is rounded to 12 AM on the specified date.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The start time for the query. Specify in GMT. The value is rounded to 12 AM on the specified date.", +"format": "google-datetime", +"type": "string" +}, +"terms": { +"description": "The [search operators](https://support.google.com/vault/answer/2474474) used to refine the messages covered by the hold.", +"type": "string" +} +}, +"type": "object" +}, +"HeldHangoutsChatQuery": { +"description": "Options for Chat holds.", +"id": "HeldHangoutsChatQuery", +"properties": { +"includeRooms": { +"description": "To include messages in Chat spaces the user was a member of, set to **true**.", +"type": "boolean" +} +}, +"type": "object" +}, +"HeldMailQuery": { +"description": "Query options for Gmail holds.", +"id": "HeldMailQuery", +"properties": { +"endTime": { +"description": "The end time for the query. Specify in GMT. The value is rounded to 12 AM on the specified date.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The start time for the query. Specify in GMT. The value is rounded to 12 AM on the specified date.", +"format": "google-datetime", +"type": "string" +}, +"terms": { +"description": "The [search operators](https://support.google.com/vault/answer/2474474) used to refine the messages covered by the hold.", +"type": "string" +} +}, +"type": "object" +}, +"HeldOrgUnit": { +"description": "The organizational unit covered by a hold. This structure is immutable.", +"id": "HeldOrgUnit", +"properties": { +"holdTime": { +"description": "When the organizational unit was put on hold. This property is immutable.", +"format": "google-datetime", +"type": "string" +}, +"orgUnitId": { +"description": "The organizational unit's immutable ID as provided by the [Admin SDK](https://developers.google.com/admin-sdk/).", +"type": "string" +} +}, +"type": "object" +}, +"HeldVoiceQuery": { +"description": "Options for Voice holds.", +"id": "HeldVoiceQuery", +"properties": { +"coveredData": { +"description": "A list of data types covered by the hold. Should be non-empty. Order does not matter and duplicates are ignored.", +"items": { +"enum": [ +"COVERED_DATA_UNSPECIFIED", +"TEXT_MESSAGES", +"VOICEMAILS", +"CALL_LOGS" +], +"enumDescriptions": [ +"Covered data unspecified.", +"Voice text messages.", +"Voicemails and their transcripts.", +"Call logs." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Hold": { +"description": "A hold. A hold prevents the specified Google Workspace service from purging data for specific accounts or all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.", +"id": "Hold", +"properties": { +"accounts": { +"description": "If set, the hold applies to the specified accounts and **orgUnit** must be empty.", +"items": { +"$ref": "HeldAccount" +}, +"type": "array" +}, +"corpus": { +"description": "The service to be searched.", +"enum": [ +"CORPUS_TYPE_UNSPECIFIED", +"DRIVE", +"MAIL", +"GROUPS", +"HANGOUTS_CHAT", +"VOICE", +"CALENDAR" +], +"enumDescriptions": [ +"No service specified.", +"Drive, including Meet and Sites.", +"For search, Gmail and classic Hangouts. For holds, Gmail only.", +"Groups.", +"For export, Google Chat only. For holds, Google Chat and classic Hangouts.", +"Google Voice.", +"Calendar." +], +"type": "string" +}, +"holdId": { +"description": "The unique immutable ID of the hold. Assigned during creation.", +"type": "string" +}, +"name": { +"description": "The name of the hold.", +"type": "string" +}, +"orgUnit": { +"$ref": "HeldOrgUnit", +"description": "If set, the hold applies to all members of the organizational unit and **accounts** must be empty. This property is mutable. For Groups holds, set **accounts**." +}, +"query": { +"$ref": "CorpusQuery", +"description": "Service-specific options. If set, **CorpusQuery** must match **CorpusType**." +}, +"updateTime": { +"description": "The last time this hold was modified.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ListExportsResponse": { +"description": "The exports for a matter.", +"id": "ListExportsResponse", +"properties": { +"exports": { +"description": "The list of exports.", +"items": { +"$ref": "Export" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListHeldAccountsResponse": { +"description": "Returns a list of the accounts covered by a hold.", +"id": "ListHeldAccountsResponse", +"properties": { +"accounts": { +"description": "The held accounts on a hold.", +"items": { +"$ref": "HeldAccount" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListHoldsResponse": { +"description": "The holds for a matter.", +"id": "ListHoldsResponse", +"properties": { +"holds": { +"description": "The list of holds.", +"items": { +"$ref": "Hold" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list. If this is empty, then there are no more holds to list.", +"type": "string" +} +}, +"type": "object" +}, +"ListMattersResponse": { +"description": "Provides the list of matters.", +"id": "ListMattersResponse", +"properties": { +"matters": { +"description": "List of matters.", +"items": { +"$ref": "Matter" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSavedQueriesResponse": { +"description": "Definition of the response for method ListSaveQuery.", +"id": "ListSavedQueriesResponse", +"properties": { +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list. If this is empty, then there are no more saved queries to list.", +"type": "string" +}, +"savedQueries": { +"description": "List of saved queries.", +"items": { +"$ref": "SavedQuery" +}, +"type": "array" +} +}, +"type": "object" +}, +"MailCountResult": { +"description": "Gmail and classic Hangouts-specific count metrics.", +"id": "MailCountResult", +"properties": { +"accountCountErrors": { +"description": "Errors occurred when querying these accounts.", +"items": { +"$ref": "AccountCountError" +}, +"type": "array" +}, +"accountCounts": { +"description": "Subtotal count per matching account that have more than zero messages.", +"items": { +"$ref": "AccountCount" +}, +"type": "array" +}, +"matchingAccountsCount": { +"description": "Total number of accounts that can be queried and have more than zero messages.", +"format": "int64", +"type": "string" +}, +"nonQueryableAccounts": { +"description": "When **DataScope** is **HELD_DATA** and when account emails are passed in explicitly, the list of accounts in the request that are not queried because they are not on hold in the matter. For other data scopes, this field is not set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"queriedAccountsCount": { +"description": "Total number of accounts involved in this count operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MailExportOptions": { +"description": "Options for Gmail exports.", +"id": "MailExportOptions", +"properties": { +"exportFormat": { +"description": "The file format for exported messages.", +"enum": [ +"EXPORT_FORMAT_UNSPECIFIED", +"MBOX", +"PST", +"ICS" +], +"enumDescriptions": [ +"No export format specified.", +"Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", +"Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", +"Export as ICS. Only available for Calendar." +], +"type": "string" +}, +"exportLinkedDriveFiles": { +"description": "Optional. To enable exporting linked Drive files, set to **true**.", +"type": "boolean" +}, +"showConfidentialModeContent": { +"description": "To export confidential mode content, set to **true**.", +"type": "boolean" +}, +"useNewExport": { +"description": "To use the new export system, set to **true**.", +"type": "boolean" +} +}, +"type": "object" +}, +"MailOptions": { +"description": "Additional options for Gmail search", +"id": "MailOptions", +"properties": { +"clientSideEncryptedOption": { +"description": "Specifies whether the results should include encrypted content, unencrypted content, or both. Defaults to including both.", +"enum": [ +"CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", +"CLIENT_SIDE_ENCRYPTED_OPTION_ANY", +"CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", +"CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" +], +"enumDescriptions": [ +"Encryption status unspecified. Results include both client-side encrypted and non-encrypted content.", +"Include both client-side encrypted and unencrypted content in results.", +"Include client-side encrypted content only.", +"Include unencrypted content only." +], +"type": "string" +}, +"excludeDrafts": { +"description": "Set to **true** to exclude drafts.", +"type": "boolean" +} +}, +"type": "object" +}, +"Matter": { +"description": "Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.", +"id": "Matter", +"properties": { +"description": { +"description": "An optional description for the matter.", +"type": "string" +}, +"matterId": { +"description": "The matter ID, which is generated by the server. Leave blank when creating a matter.", +"type": "string" +}, +"matterPermissions": { +"description": "Lists the users and their permission for the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.", +"items": { +"$ref": "MatterPermission" +}, +"type": "array" +}, +"matterRegion": { +"description": "Optional. The requested data region for the matter.", +"enum": [ +"MATTER_REGION_UNSPECIFIED", +"ANY", +"US", +"EUROPE" +], +"enumDescriptions": [ +"The region is unspecified. Defaults to ANY.", +"Any region.", +"United States region.", +"Europe region." +], +"type": "string" +}, +"name": { +"description": "The name of the matter.", +"type": "string" +}, +"state": { +"description": "The state of the matter.", +"enum": [ +"STATE_UNSPECIFIED", +"OPEN", +"CLOSED", +"DELETED" +], +"enumDescriptions": [ +"The matter has no specified state.", +"The matter is open.", +"The matter is closed.", +"The matter is deleted." +], +"type": "string" +} +}, +"type": "object" +}, +"MatterPermission": { +"description": "Users can be matter owners or collaborators. Each matter has only one owner. All others users who can access the matter are collaborators. When an account is purged, its corresponding MatterPermission resources cease to exist.", +"id": "MatterPermission", +"properties": { +"accountId": { +"description": "The account ID, as provided by the [Admin SDK](https://developers.google.com/admin-sdk/).", +"type": "string" +}, +"role": { +"description": "The user's role for the matter.", +"enum": [ +"ROLE_UNSPECIFIED", +"COLLABORATOR", +"OWNER" +], +"enumDescriptions": [ +"No role assigned.", +"A collaborator on the matter.", +"The owner of the matter." +], +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OrgUnitInfo": { +"description": "The organizational unit to search", +"id": "OrgUnitInfo", +"properties": { +"orgUnitId": { +"description": "The name of the organizational unit to search, as provided by the [Admin SDK Directory API](https://developers.google.com/admin-sdk/directory/).", +"type": "string" +} +}, +"type": "object" +}, +"Query": { +"description": "The query definition used for search and export.", +"id": "Query", +"properties": { +"accountInfo": { +"$ref": "AccountInfo", +"description": "Required when **SearchMethod** is **ACCOUNT**." +}, +"calendarOptions": { +"$ref": "CalendarOptions", +"description": "Set Calendar search-specific options." +}, +"corpus": { +"description": "The Google Workspace service to search.", +"enum": [ +"CORPUS_TYPE_UNSPECIFIED", +"DRIVE", +"MAIL", +"GROUPS", +"HANGOUTS_CHAT", +"VOICE", +"CALENDAR" +], +"enumDescriptions": [ +"No service specified.", +"Drive, including Meet and Sites.", +"For search, Gmail and classic Hangouts. For holds, Gmail only.", +"Groups.", +"For export, Google Chat only. For holds, Google Chat and classic Hangouts.", +"Google Voice.", +"Calendar." +], +"type": "string" +}, +"dataScope": { +"description": "The data source to search.", +"enum": [ +"DATA_SCOPE_UNSPECIFIED", +"ALL_DATA", +"HELD_DATA", +"UNPROCESSED_DATA" +], +"enumDescriptions": [ +"No data source specified.", +"All available data.", +"Only data on hold.", +"Only data not yet processed by Vault. (Gmail and Groups only)" +], +"type": "string" +}, +"driveOptions": { +"$ref": "DriveOptions", +"description": "Set Drive search-specific options." +}, +"endTime": { +"description": "The end time for the search query. Specify in GMT. The value is rounded to 12 AM on the specified date.", +"format": "google-datetime", +"type": "string" +}, +"hangoutsChatInfo": { +"$ref": "HangoutsChatInfo", +"description": "Required when **SearchMethod** is **ROOM**. (read-only)" +}, +"hangoutsChatOptions": { +"$ref": "HangoutsChatOptions", +"description": "Set Chat search-specific options. (read-only)" +}, +"mailOptions": { +"$ref": "MailOptions", +"description": "Set Gmail search-specific options." +}, +"method": { +"description": "The entity to search. This field replaces **searchMethod** to support shared drives. When **searchMethod** is **TEAM_DRIVE**, the response of this field is **SHARED_DRIVE**.", +"enum": [ +"SEARCH_METHOD_UNSPECIFIED", +"ACCOUNT", +"ORG_UNIT", +"TEAM_DRIVE", +"ENTIRE_ORG", +"ROOM", +"SITES_URL", +"SHARED_DRIVE" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"A search method must be specified or else it is rejected.", +"Search the data of the accounts specified in [AccountInfo](https://developers.google.com/vault/reference/rest/v1/Query#accountinfo).", +"Search the data of all accounts in the organizational unit specified in [OrgUnitInfo](https://developers.google.com/vault/reference/rest/v1/Query#orgunitinfo).", +"Search the data in the Team Drive specified in **team_drive_info**.", +"Search the data of all accounts in the organization. Supported only for Gmail. When specified, you don't need to specify **AccountInfo** or **OrgUnitInfo**.", +"Search messages in the Chat spaces specified in [HangoutsChatInfo](https://developers.google.com/vault/reference/rest/v1/Query#hangoutschatinfo).", +"Search for sites by the published site URLs specified in [SitesUrlInfo](https://developers.google.com/vault/reference/rest/v1/Query#sitesurlinfo).", +"Search the files in the shared drives specified in [SharedDriveInfo](https://developers.google.com/vault/reference/rest/v1/Query#shareddriveinfo)." +], +"type": "string" +}, +"orgUnitInfo": { +"$ref": "OrgUnitInfo", +"description": "Required when **SearchMethod** is **ORG_UNIT**." +}, +"searchMethod": { +"deprecated": true, +"description": "The search method to use.", +"enum": [ +"SEARCH_METHOD_UNSPECIFIED", +"ACCOUNT", +"ORG_UNIT", +"TEAM_DRIVE", +"ENTIRE_ORG", +"ROOM", +"SITES_URL", +"SHARED_DRIVE" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"A search method must be specified or else it is rejected.", +"Search the data of the accounts specified in [AccountInfo](https://developers.google.com/vault/reference/rest/v1/Query#accountinfo).", +"Search the data of all accounts in the organizational unit specified in [OrgUnitInfo](https://developers.google.com/vault/reference/rest/v1/Query#orgunitinfo).", +"Search the data in the Team Drive specified in **team_drive_info**.", +"Search the data of all accounts in the organization. Supported only for Gmail. When specified, you don't need to specify **AccountInfo** or **OrgUnitInfo**.", +"Search messages in the Chat spaces specified in [HangoutsChatInfo](https://developers.google.com/vault/reference/rest/v1/Query#hangoutschatinfo).", +"Search for sites by the published site URLs specified in [SitesUrlInfo](https://developers.google.com/vault/reference/rest/v1/Query#sitesurlinfo).", +"Search the files in the shared drives specified in [SharedDriveInfo](https://developers.google.com/vault/reference/rest/v1/Query#shareddriveinfo)." +], +"type": "string" +}, +"sharedDriveInfo": { +"$ref": "SharedDriveInfo", +"description": "Required when **SearchMethod** is **SHARED_DRIVE**." +}, +"sitesUrlInfo": { +"$ref": "SitesUrlInfo", +"description": "Required when **SearchMethod** is **SITES_URL**." +}, +"startTime": { +"description": "The start time for the search query. Specify in GMT. The value is rounded to 12 AM on the specified date.", +"format": "google-datetime", +"type": "string" +}, +"teamDriveInfo": { +"$ref": "TeamDriveInfo", +"deprecated": true, +"description": "Required when **SearchMethod** is **TEAM_DRIVE**." +}, +"terms": { +"description": "Service-specific [search operators](https://support.google.com/vault/answer/2474474) to filter search results.", +"type": "string" +}, +"timeZone": { +"description": "The time zone name. It should be an IANA TZ name, such as \"America/Los_Angeles\". For a list of time zone names, see [Time Zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For more information about how Vault uses time zones, see [the Vault help center](https://support.google.com/vault/answer/6092995#time).", +"type": "string" +}, +"voiceOptions": { +"$ref": "VoiceOptions", +"description": "Set Voice search-specific options." +} +}, +"type": "object" +}, +"RemoveHeldAccountsRequest": { +"description": "Remove a list of accounts from a hold.", +"id": "RemoveHeldAccountsRequest", +"properties": { +"accountIds": { +"description": "The account IDs of the accounts to remove from the hold.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RemoveHeldAccountsResponse": { +"description": "Response for batch delete held accounts.", +"id": "RemoveHeldAccountsResponse", +"properties": { +"statuses": { +"description": "A list of statuses for the deleted accounts. Results have the same order as the request.", +"items": { +"$ref": "Status" +}, +"type": "array" +} +}, +"type": "object" +}, +"RemoveMatterPermissionsRequest": { +"description": "Remove an account as a matter collaborator.", +"id": "RemoveMatterPermissionsRequest", +"properties": { +"accountId": { +"description": "The account ID.", +"type": "string" +} +}, +"type": "object" +}, +"ReopenMatterRequest": { +"description": "Reopen a matter by ID.", +"id": "ReopenMatterRequest", +"properties": {}, +"type": "object" +}, +"ReopenMatterResponse": { +"description": "Response to a ReopenMatterRequest.", +"id": "ReopenMatterResponse", +"properties": { +"matter": { +"$ref": "Matter", +"description": "The updated matter, with state **OPEN**." +} +}, +"type": "object" +}, +"SavedQuery": { +"description": "The definition of a saved query. To work with Vault resources, the account must have the [required Vault privileges](https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.", +"id": "SavedQuery", +"properties": { +"createTime": { +"description": "Output only. The server-generated timestamp when the saved query was created.", +"format": "google-datetime", +"type": "string" +}, +"displayName": { +"description": "The name of the saved query.", +"type": "string" +}, +"matterId": { +"description": "Output only. The matter ID of the matter the saved query is saved in. The server does not use this field during create and always uses matter ID in the URL.", +"type": "string" +}, +"query": { +"$ref": "Query", +"description": "The search parameters of the saved query." +}, +"savedQueryId": { +"description": "A unique identifier for the saved query.", +"type": "string" +} +}, +"type": "object" +}, +"SharedDriveInfo": { +"description": "The shared drives to search", +"id": "SharedDriveInfo", +"properties": { +"sharedDriveIds": { +"description": "A list of shared drive IDs, as provided by the [Drive API](https://developers.google.com/drive).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SitesUrlInfo": { +"description": "The published site URLs of new Google Sites to search", +"id": "SitesUrlInfo", +"properties": { +"urls": { +"description": "A list of published site URLs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TeamDriveInfo": { +"deprecated": true, +"description": "Team Drives to search", +"id": "TeamDriveInfo", +"properties": { +"teamDriveIds": { +"deprecated": true, +"description": "List of Team Drive IDs, as provided by the [Drive API](https://developers.google.com/drive).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UndeleteMatterRequest": { +"description": "Undelete a matter by ID.", +"id": "UndeleteMatterRequest", +"properties": {}, +"type": "object" +}, +"UserInfo": { +"description": "User's information.", +"id": "UserInfo", +"properties": { +"displayName": { +"description": "The displayed name of the user.", +"type": "string" +}, +"email": { +"description": "The email address of the user.", +"type": "string" +} +}, +"type": "object" +}, +"VoiceExportOptions": { +"description": "The options for Voice exports.", +"id": "VoiceExportOptions", +"properties": { +"exportFormat": { +"description": "The file format for exported text messages.", +"enum": [ +"EXPORT_FORMAT_UNSPECIFIED", +"MBOX", +"PST", +"ICS" +], +"enumDescriptions": [ +"No export format specified.", +"Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", +"Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", +"Export as ICS. Only available for Calendar." +], +"type": "string" +} +}, +"type": "object" +}, +"VoiceOptions": { +"description": "Additional options for Voice search", +"id": "VoiceOptions", +"properties": { +"coveredData": { +"description": "Datatypes to search", +"items": { +"enum": [ +"COVERED_DATA_UNSPECIFIED", +"TEXT_MESSAGES", +"VOICEMAILS", +"CALL_LOGS" +], +"enumDescriptions": [ +"Covered data unspecified.", +"Voice text messages.", +"Voicemails and their transcripts.", +"Call logs." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Vault API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vmwareengine.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vmwareengine.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..324ec69647016ee0a1563582e87177ace32dda98 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vmwareengine.v1.json @@ -0,0 +1,5624 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://vmwareengine.googleapis.com/", +"batchPath": "batch", +"canonicalName": "VMware Engine", +"description": "The Google VMware Engine API lets you programmatically manage VMware environments.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/solutions/vmware-as-a-service", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "vmwareengine:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://vmwareengine.mtls.googleapis.com/", +"name": "vmwareengine", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDnsBindPermission": { +"description": "Gets all the principals having bind permission on the intranet VPC associated with the consumer project granted by the Grant API. DnsBindPermission is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsBindPermission", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.getDnsBindPermission", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dnsBindPermission$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DnsBindPermission" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dnsBindPermission": { +"methods": { +"grant": { +"description": "Grants the bind permission to the customer provided principal(user / service account) to bind their DNS zone with the intranet VPC associated with the project. DnsBindPermission is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsBindPermission:grant", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.dnsBindPermission.grant", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dnsBindPermission$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:grant", +"request": { +"$ref": "GrantDnsBindPermissionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"revoke": { +"description": "Revokes the bind permission from the customer provided principal(user / service account) on the intranet VPC associated with the consumer project. DnsBindPermission is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsBindPermission:revoke", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.dnsBindPermission.revoke", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dnsBindPermission$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:revoke", +"request": { +"$ref": "RevokeDnsBindPermissionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"networkPeerings": { +"methods": { +"create": { +"description": "Creates a new network peering between the peer network and VMware Engine network provided in a `NetworkPeering` resource. NetworkPeering is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.networkPeerings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"networkPeeringId": { +"description": "Required. The user-provided identifier of the new `NetworkPeering`. This identifier must be unique among `NetworkPeering` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location to create the new network peering in. This value is always `global`, because `NetworkPeering` is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/networkPeerings", +"request": { +"$ref": "NetworkPeering" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `NetworkPeering` resource. When a network peering is deleted for a VMware Engine network, the peer network becomes inaccessible to that VMware Engine network. NetworkPeering is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.networkPeerings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the network peering to be deleted. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `NetworkPeering` resource by its resource name. The resource contains details of the network peering, such as peered networks, import and export custom route configurations, and peering state. NetworkPeering is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPeerings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the network peering to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NetworkPeering" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `NetworkPeering` resources in a given project. NetworkPeering is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPeerings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of network peerings, you can exclude the ones named `example-peering` by specifying `name != \"example-peering\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-peering\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-peering-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-peering-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of network peerings to return in one page. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListNetworkPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListNetworkPeerings` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location (global) to query for network peerings. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/networkPeerings", +"response": { +"$ref": "ListNetworkPeeringsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Modifies a `NetworkPeering` resource. Only the `description` field can be updated. Only fields specified in `updateMask` are applied. NetworkPeering is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.networkPeerings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of the network peering. NetworkPeering is a global resource and location can only be global. Resource names are scheme-less URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `NetworkPeering` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "NetworkPeering" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"peeringRoutes": { +"methods": { +"list": { +"description": "Lists the network peering routes exchanged over a peering connection. NetworkPeering is a global resource and location can only be global.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}/peeringRoutes", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPeerings.peeringRoutes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. Currently, only filtering on the `direction` field is supported. To return routes imported from the peer network, provide \"direction=INCOMING\". To return routes exported from the VMware Engine network, provide \"direction=OUTGOING\". Other filter expressions return an error.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of peering routes to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPeeringRoutes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPeeringRoutes` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the network peering to retrieve peering routes from. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/peeringRoutes", +"response": { +"$ref": "ListPeeringRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"networkPolicies": { +"methods": { +"create": { +"description": "Creates a new network policy in a given VMware Engine network of a project and location (region). A new network policy cannot be created if another network policy already exists in the same scope.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.networkPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"networkPolicyId": { +"description": "Required. The user-provided identifier of the network policy to be created. This identifier must be unique within parent `projects/{my-project}/locations/{us-central1}/networkPolicies` and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location (region) to create the new network policy in. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/networkPolicies", +"request": { +"$ref": "NetworkPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `NetworkPolicy` resource. A network policy cannot be deleted when `NetworkService.state` is set to `RECONCILING` for either its external IP or internet access service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.networkPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the network policy to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchExternalAddresses": { +"description": "Lists external IP addresses assigned to VMware workload VMs within the scope of the given network policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}:fetchExternalAddresses", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPolicies.fetchExternalAddresses", +"parameterOrder": [ +"networkPolicy" +], +"parameters": { +"networkPolicy": { +"description": "Required. The resource name of the network policy to query for assigned external IP addresses. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of external IP addresses to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `FetchNetworkPolicyExternalAddresses` call. Provide this to retrieve the subsequent page. When paginating, all parameters provided to `FetchNetworkPolicyExternalAddresses`, except for `page_size` and `page_token`, must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+networkPolicy}:fetchExternalAddresses", +"response": { +"$ref": "FetchNetworkPolicyExternalAddressesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `NetworkPolicy` resource by its resource name.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the network policy to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NetworkPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `NetworkPolicy` resources in a specified project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of network policies, you can exclude the ones named `example-policy` by specifying `name != \"example-policy\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-policy\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-policy-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-policy-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of network policies to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListNetworkPolicies` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListNetworkPolicies` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location (region) to query for network policies. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/networkPolicies", +"response": { +"$ref": "ListNetworkPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Modifies a `NetworkPolicy` resource. Only the following fields can be updated: `internet_access`, `external_ip`, `edge_services_cidr`. Only fields specified in `updateMask` are applied. When updating a network policy, the external IP network service can only be disabled if there are no external IP addresses present in the scope of the policy. Also, a `NetworkService` cannot be updated when `NetworkService.state` is set to `RECONCILING`. During operation processing, the resource is temporarily in the `ACTIVE` state before the operation fully completes. For that period of time, you can't update the resource. Use the operation status to determine when the processing fully completes.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.networkPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of this network policy. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `NetworkPolicy` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "NetworkPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"externalAccessRules": { +"methods": { +"create": { +"description": "Creates a new external access rule in a given network policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}/externalAccessRules", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.networkPolicies.externalAccessRules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"externalAccessRuleId": { +"description": "Required. The user-provided identifier of the `ExternalAccessRule` to be created. This identifier must be unique among `ExternalAccessRule` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the network policy to create a new external access firewall rule in. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/externalAccessRules", +"request": { +"$ref": "ExternalAccessRule" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single external access rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}/externalAccessRules/{externalAccessRulesId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.networkPolicies.externalAccessRules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the external access firewall rule to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+/externalAccessRules/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single external access rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}/externalAccessRules/{externalAccessRulesId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPolicies.externalAccessRules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the external access firewall rule to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+/externalAccessRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ExternalAccessRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `ExternalAccessRule` resources in the specified network policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}/externalAccessRules", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.networkPolicies.externalAccessRules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of external access rules, you can exclude the ones named `example-rule` by specifying `name != \"example-rule\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-rule\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-rule-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-rule-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of external access rules to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListExternalAccessRulesRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListExternalAccessRulesRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the network policy to query for external access firewall rules. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/externalAccessRules", +"response": { +"$ref": "ListExternalAccessRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single external access rule. Only fields specified in `update_mask` are applied.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPolicies/{networkPoliciesId}/externalAccessRules/{externalAccessRulesId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.networkPolicies.externalAccessRules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of this external access rule. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/networkPolicies/[^/]+/externalAccessRules/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `ExternalAccessRule` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ExternalAccessRule" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"nodeTypes": { +"methods": { +"get": { +"description": "Gets details of a single `NodeType`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/nodeTypes/{nodeTypesId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.nodeTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the node type to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-proj/locations/us-central1-a/nodeTypes/standard-72`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/nodeTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NodeType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists node types", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/nodeTypes", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.nodeTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of node types, you can exclude the ones named `standard-72` by specifying `name != \"standard-72\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"standard-72\") (virtual_cpu_count > 2) ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"standard-96\") AND (virtual_cpu_count > 2) OR (name = \"standard-72\") ```", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of node types to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListNodeTypes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListNodeTypes` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location to be queried for node types. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/nodeTypes", +"response": { +"$ref": "ListNodeTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"privateClouds": { +"methods": { +"create": { +"description": "Creates a new `PrivateCloud` resource in a given project and location. Private clouds of type `STANDARD` and `TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are regional. Creating a private cloud also creates a [management cluster](https://cloud.google.com/vmware-engine/docs/concepts-vmware-components) for that private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the location to create the new private cloud in. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"privateCloudId": { +"description": "Required. The user-provided identifier of the private cloud to be created. This identifier must be unique among each `PrivateCloud` within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. True if you want the request to be validated and not executed; false otherwise.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/privateClouds", +"request": { +"$ref": "PrivateCloud" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Schedules a `PrivateCloud` resource for deletion. A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state` set to `DELETED` and `expireTime` set to the time when deletion is final and can no longer be reversed. The delete operation is marked as done as soon as the `PrivateCloud` is successfully scheduled for deletion (this also applies when `delayHours` is set to zero), and the operation is not kept in pending state until `PrivateCloud` is purged. `PrivateCloud` can be restored using `UndeletePrivateCloud` method before the `expireTime` elapses. When `expireTime` is reached, deletion is final and all private cloud resources are irreversibly removed and billing stops. During the final removal process, `PrivateCloud.state` is set to `PURGING`. `PrivateCloud` can be polled using standard `GET` method for the whole period of deletion and purging. It will not be returned only when it is completely purged.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.privateClouds.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"delayHours": { +"description": "Optional. Time delay of the deletion specified in hours. The default value is `3`. Specifying a non-zero value for this field changes the value of `PrivateCloud.state` to `DELETED` and sets `expire_time` to the planned deletion time. Deletion can be cancelled before `expire_time` elapses using VmwareEngine.UndeletePrivateCloud. Specifying a value of `0` for this field instead begins the deletion process and ceases billing immediately. During the final deletion process, the value of `PrivateCloud.state` becomes `PURGING`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"force": { +"description": "Optional. If set to true, cascade delete is enabled and all children of this private cloud resource are also deleted. When this flag is set to false, the private cloud will not be deleted if there are any children other than the management cluster. The management cluster is always deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The resource name of the private cloud to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `PrivateCloud` resource by its resource name.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the private cloud to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PrivateCloud" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDnsForwarding": { +"description": "Gets details of the `DnsForwarding` config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/dnsForwarding", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.getDnsForwarding", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of a `DnsForwarding` to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/dnsForwarding`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/dnsForwarding$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DnsForwarding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:getIamPolicy", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `PrivateCloud` resources in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of private clouds, you can exclude the ones named `example-pc` by specifying `name != \"example-pc\"`. You can also filter nested fields. For example, you could specify `networkConfig.managementCidr = \"192.168.0.0/24\"` to include private clouds only if they have a matching address in their network configuration. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-pc\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"private-cloud-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"private-cloud-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of private clouds to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPrivateClouds` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateClouds` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to be queried for clusters. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/privateClouds", +"response": { +"$ref": "ListPrivateCloudsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Modifies a `PrivateCloud` resource. Only the following fields can be updated: `description`. Only fields specified in `updateMask` are applied. During operation processing, the resource is temporarily in the `ACTIVE` state before the operation fully completes. For that period of time, you can't update the resource. Use the operation status to determine when the processing fully completes.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of this private cloud. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `PrivateCloud` resource by the update. The fields specified in `updateMask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "PrivateCloud" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetNsxCredentials": { +"description": "Resets credentials of the NSX appliance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:resetNsxCredentials", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.resetNsxCredentials", +"parameterOrder": [ +"privateCloud" +], +"parameters": { +"privateCloud": { +"description": "Required. The resource name of the private cloud to reset credentials for. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+privateCloud}:resetNsxCredentials", +"request": { +"$ref": "ResetNsxCredentialsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetVcenterCredentials": { +"description": "Resets credentials of the Vcenter appliance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:resetVcenterCredentials", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.resetVcenterCredentials", +"parameterOrder": [ +"privateCloud" +], +"parameters": { +"privateCloud": { +"description": "Required. The resource name of the private cloud to reset credentials for. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+privateCloud}:resetVcenterCredentials", +"request": { +"$ref": "ResetVcenterCredentialsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:setIamPolicy", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"showNsxCredentials": { +"description": "Gets details of credentials for NSX appliance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:showNsxCredentials", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.showNsxCredentials", +"parameterOrder": [ +"privateCloud" +], +"parameters": { +"privateCloud": { +"description": "Required. The resource name of the private cloud to be queried for credentials. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+privateCloud}:showNsxCredentials", +"response": { +"$ref": "Credentials" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"showVcenterCredentials": { +"description": "Gets details of credentials for Vcenter appliance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:showVcenterCredentials", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.showVcenterCredentials", +"parameterOrder": [ +"privateCloud" +], +"parameters": { +"privateCloud": { +"description": "Required. The resource name of the private cloud to be queried for credentials. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"username": { +"description": "Optional. The username of the user to be queried for credentials. The default value of this field is CloudOwner@gve.local. The provided value must be one of the following: CloudOwner@gve.local, solution-user-01@gve.local, solution-user-02@gve.local, solution-user-03@gve.local, solution-user-04@gve.local, solution-user-05@gve.local, zertoadmin@gve.local.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+privateCloud}:showVcenterCredentials", +"response": { +"$ref": "Credentials" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:testIamPermissions", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Restores a private cloud that was previously scheduled for deletion by `DeletePrivateCloud`. A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state` set to `DELETED` and `PrivateCloud.expireTime` set to the time when deletion can no longer be reversed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}:undelete", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the private cloud scheduled for deletion. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeletePrivateCloudRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDnsForwarding": { +"description": "Updates the parameters of the `DnsForwarding` config, like associated domains. Only fields specified in `update_mask` are applied.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/dnsForwarding", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.updateDnsForwarding", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of this DNS profile. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/dnsForwarding`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/dnsForwarding$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `DnsForwarding` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "DnsForwarding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"clusters": { +"methods": { +"create": { +"description": "Creates a new cluster in a given private cloud. Creating a new cluster provides additional nodes for use in the parent private cloud and requires sufficient [node quota](https://cloud.google.com/vmware-engine/quotas).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.clusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. The user-provided identifier of the new `Cluster`. This identifier must be unique among clusters within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to create a new cluster in. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. True if you want the request to be validated and not executed; false otherwise.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/clusters", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `Cluster` resource. To avoid unintended data loss, migrate or gracefully shut down any workloads running on the cluster before deletion. You cannot delete the management cluster of a private cloud using this method.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.privateClouds.clusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the cluster to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `Cluster` resource by its resource name.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.clusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The cluster resource name to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}:getIamPolicy", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.clusters.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `Cluster` resources in a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.clusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": " To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-cluster\") (nodeCount = \"3\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-cluster-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-cluster-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of clusters to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListClusters` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListClusters` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to query for clusters. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Modifies a `Cluster` resource. Only fields specified in `updateMask` are applied. During operation processing, the resource is temporarily in the `ACTIVE` state before the operation fully completes. For that period of time, you can't update the resource. Use the operation status to determine when the processing fully completes.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.clusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of this cluster. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `Cluster` resource by the update. The fields specified in the `updateMask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. True if you want the request to be validated and not executed; false otherwise.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}:setIamPolicy", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.clusters.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}:testIamPermissions", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.clusters.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"nodes": { +"methods": { +"get": { +"description": "Gets details of a single node.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}/nodes/{nodesId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.clusters.nodes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the node to retrieve. For example: `projects/{project}/locations/{location}/privateClouds/{private_cloud}/clusters/{cluster}/nodes/{node}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Node" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists nodes in a given cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/clusters/{clustersId}/nodes", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.clusters.nodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of nodes to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListNodes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListNodes` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the cluster to be queried for nodes. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/nodes", +"response": { +"$ref": "ListNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"externalAddresses": { +"methods": { +"create": { +"description": "Creates a new `ExternalAddress` resource in a given private cloud. The network policy that corresponds to the private cloud must have the external IP address network service enabled (`NetworkPolicy.external_ip`).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/externalAddresses", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.externalAddresses.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"externalAddressId": { +"description": "Required. The user-provided identifier of the `ExternalAddress` to be created. This identifier must be unique among `ExternalAddress` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to create a new external IP address in. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/externalAddresses", +"request": { +"$ref": "ExternalAddress" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single external IP address. When you delete an external IP address, connectivity between the external IP address and the corresponding internal IP address is lost.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/externalAddresses/{externalAddressesId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.privateClouds.externalAddresses.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the external IP address to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-ip`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/externalAddresses/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single external IP address.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/externalAddresses/{externalAddressesId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.externalAddresses.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the external IP address to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-ip`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/externalAddresses/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ExternalAddress" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists external IP addresses assigned to VMware workload VMs in a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/externalAddresses", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.externalAddresses.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of IP addresses, you can exclude the ones named `example-ip` by specifying `name != \"example-ip\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-ip\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-ip-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-ip-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of external IP addresses to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListExternalAddresses` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListExternalAddresses` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to be queried for external IP addresses. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/externalAddresses", +"response": { +"$ref": "ListExternalAddressesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single external IP address. Only fields specified in `update_mask` are applied. During operation processing, the resource is temporarily in the `ACTIVE` state before the operation fully completes. For that period of time, you can't update the resource. Use the operation status to determine when the processing fully completes.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/externalAddresses/{externalAddressesId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.externalAddresses.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of this external IP address. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-address`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/externalAddresses/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `ExternalAddress` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ExternalAddress" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"hcxActivationKeys": { +"methods": { +"create": { +"description": "Creates a new HCX activation key in a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/hcxActivationKeys", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.hcxActivationKeys.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"hcxActivationKeyId": { +"description": "Required. The user-provided identifier of the `HcxActivationKey` to be created. This identifier must be unique among `HcxActivationKey` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to create the key for. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/hcxActivationKeys", +"request": { +"$ref": "HcxActivationKey" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `HcxActivationKey` resource by its resource name.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/hcxActivationKeys/{hcxActivationKeysId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.hcxActivationKeys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the HCX activation key to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateClouds/my-cloud/hcxActivationKeys/my-key`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/hcxActivationKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "HcxActivationKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/hcxActivationKeys/{hcxActivationKeysId}:getIamPolicy", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.hcxActivationKeys.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/hcxActivationKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `HcxActivationKey` resources in a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/hcxActivationKeys", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.hcxActivationKeys.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of HCX activation keys to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListHcxActivationKeys` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListHcxActivationKeys` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to be queried for HCX activation keys. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/hcxActivationKeys", +"response": { +"$ref": "ListHcxActivationKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/hcxActivationKeys/{hcxActivationKeysId}:setIamPolicy", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.hcxActivationKeys.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/hcxActivationKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/hcxActivationKeys/{hcxActivationKeysId}:testIamPermissions", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.hcxActivationKeys.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/hcxActivationKeys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"loggingServers": { +"methods": { +"create": { +"description": "Create a new logging server for a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/loggingServers", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.loggingServers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"loggingServerId": { +"description": "Required. The user-provided identifier of the `LoggingServer` to be created. This identifier must be unique among `LoggingServer` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to create a new Logging Server in. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/loggingServers", +"request": { +"$ref": "LoggingServer" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single logging server.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/loggingServers/{loggingServersId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.privateClouds.loggingServers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the logging server to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/loggingServers/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a logging server.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/loggingServers/{loggingServersId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.loggingServers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Logging Server to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/loggingServers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "LoggingServer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists logging servers configured for a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/loggingServers", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.loggingServers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of logging servers, you can exclude the ones named `example-server` by specifying `name != \"example-server\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-server\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-server-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-server-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of logging servers to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListLoggingServersRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListLoggingServersRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to be queried for logging servers. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/loggingServers", +"response": { +"$ref": "ListLoggingServersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single logging server. Only fields specified in `update_mask` are applied.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/loggingServers/{loggingServersId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.loggingServers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of this logging server. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/loggingServers/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `LoggingServer` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "LoggingServer" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"managementDnsZoneBindings": { +"methods": { +"create": { +"description": "Creates a new `ManagementDnsZoneBinding` resource in a private cloud. This RPC creates the DNS binding and the resource that represents the DNS binding of the consumer VPC network to the management DNS zone. A management DNS zone is the Cloud DNS cross-project binding zone that VMware Engine creates for each private cloud. It contains FQDNs and corresponding IP addresses for the private cloud's ESXi hosts and management VM appliances like vCenter and NSX Manager.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/managementDnsZoneBindings", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.managementDnsZoneBindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"managementDnsZoneBindingId": { +"description": "Required. The user-provided identifier of the `ManagementDnsZoneBinding` resource to be created. This identifier must be unique among `ManagementDnsZoneBinding` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to create a new management DNS zone binding for. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/managementDnsZoneBindings", +"request": { +"$ref": "ManagementDnsZoneBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `ManagementDnsZoneBinding` resource. When a management DNS zone binding is deleted, the corresponding consumer VPC network is no longer bound to the management DNS zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/managementDnsZoneBindings/{managementDnsZoneBindingsId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.privateClouds.managementDnsZoneBindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the management DNS zone binding to delete. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/managementDnsZoneBindings/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a 'ManagementDnsZoneBinding' resource by its resource name.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/managementDnsZoneBindings/{managementDnsZoneBindingsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.managementDnsZoneBindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the management DNS zone binding to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/managementDnsZoneBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ManagementDnsZoneBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Consumer VPCs bound to Management DNS Zone of a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/managementDnsZoneBindings", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.managementDnsZoneBindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of Management DNS Zone Bindings, you can exclude the ones named `example-management-dns-zone-binding` by specifying `name != \"example-management-dns-zone-binding\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-management-dns-zone-binding\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-management-dns-zone-binding-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-management-dns-zone-binding-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of management DNS zone bindings to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListManagementDnsZoneBindings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListManagementDnsZoneBindings` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to be queried for management DNS zone bindings. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/managementDnsZoneBindings", +"response": { +"$ref": "ListManagementDnsZoneBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a `ManagementDnsZoneBinding` resource. Only fields specified in `update_mask` are applied.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/managementDnsZoneBindings/{managementDnsZoneBindingsId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.managementDnsZoneBindings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of this binding. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/managementDnsZoneBindings/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `ManagementDnsZoneBinding` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ManagementDnsZoneBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"repair": { +"description": "Retries to create a `ManagementDnsZoneBinding` resource that is in failed state.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/managementDnsZoneBindings/{managementDnsZoneBindingsId}:repair", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateClouds.managementDnsZoneBindings.repair", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the management DNS zone binding to repair. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/managementDnsZoneBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:repair", +"request": { +"$ref": "RepairManagementDnsZoneBindingRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"subnets": { +"methods": { +"get": { +"description": "Gets details of a single subnet.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/subnets/{subnetsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.subnets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the subnet to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/subnets/my-subnet`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/subnets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Subnet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists subnets in a given private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/subnets", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateClouds.subnets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of subnets to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSubnetsRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubnetsRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private cloud to be queried for subnets. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/subnets", +"response": { +"$ref": "ListSubnetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single subnet. Only fields specified in `update_mask` are applied. *Note*: This API is synchronous and always returns a successful `google.longrunning.Operation` (LRO). The returned LRO will only have `done` and `response` fields.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateClouds/{privateCloudsId}/subnets/{subnetsId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateClouds.subnets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of this subnet. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/subnets/my-subnet`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateClouds/[^/]+/subnets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `Subnet` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Subnet" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"privateConnections": { +"methods": { +"create": { +"description": "Creates a new private connection that can be used for accessing private Clouds.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.privateConnections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the location to create the new private connection in. Private connection is a regional resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"privateConnectionId": { +"description": "Required. The user-provided identifier of the new private connection. This identifier must be unique among private connection resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/privateConnections", +"request": { +"$ref": "PrivateConnection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `PrivateConnection` resource. When a private connection is deleted for a VMware Engine network, the connected network becomes inaccessible to that VMware Engine network.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.privateConnections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the private connection to be deleted. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateConnections/my-connection`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `PrivateConnection` resource by its resource name. The resource contains details of the private connection, such as connected network, routing mode and state.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateConnections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the private connection to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateConnections/my-connection`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PrivateConnection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `PrivateConnection` resources in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateConnections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of private connections, you can exclude the ones named `example-connection` by specifying `name != \"example-connection\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-connection\") (createTime > \"2022-09-22T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-connection-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-connection-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of private connections to return in one page. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPrivateConnections` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateConnections` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location to query for private connections. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/privateConnections", +"response": { +"$ref": "ListPrivateConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Modifies a `PrivateConnection` resource. Only `description` and `routing_mode` fields can be updated. Only fields specified in `updateMask` are applied.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.privateConnections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the private connection. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateConnections/my-connection`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the `PrivateConnection` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "PrivateConnection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"peeringRoutes": { +"methods": { +"list": { +"description": "Lists the private connection routes exchanged over a peering connection.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/peeringRoutes", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.privateConnections.peeringRoutes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of peering routes to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPrivateConnectionPeeringRoutes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateConnectionPeeringRoutes` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the private connection to retrieve peering routes from. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-west1/privateConnections/my-connection`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/peeringRoutes", +"response": { +"$ref": "ListPrivateConnectionPeeringRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"vmwareEngineNetworks": { +"methods": { +"create": { +"description": "Creates a new VMware Engine network that can be used by a private cloud.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareEngineNetworks", +"httpMethod": "POST", +"id": "vmwareengine.projects.locations.vmwareEngineNetworks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the location to create the new VMware Engine network in. A VMware Engine network of type `LEGACY` is a regional resource, and a VMware Engine network of type `STANDARD` is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"vmwareEngineNetworkId": { +"description": "Required. The user-provided identifier of the new VMware Engine network. This identifier must be unique among VMware Engine network resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * For networks of type LEGACY, adheres to the format: `{region-id}-default`. Replace `{region-id}` with the region where you want to create the VMware Engine network. For example, \"us-central1-default\". * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareEngineNetworks", +"request": { +"$ref": "VmwareEngineNetwork" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware Engine network after all resources that refer to it are deleted. For example, a private cloud, a network peering, and a network policy can all refer to the same VMware Engine network.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareEngineNetworks/{vmwareEngineNetworksId}", +"httpMethod": "DELETE", +"id": "vmwareengine.projects.locations.vmwareEngineNetworks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. Checksum used to ensure that the user-provided value is up to date before the server processes the request. The server compares provided checksum with the current checksum of the resource. If the user-provided value is out of date, this request returns an `ABORTED` error.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the VMware Engine network to be deleted. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/vmwareEngineNetworks/my-network`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareEngineNetworks/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `VmwareEngineNetwork` resource by its resource name. The resource contains details of the VMware Engine network, such as its VMware Engine network type, peered networks in a service project, and state (for example, `CREATING`, `ACTIVE`, `DELETING`).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareEngineNetworks/{vmwareEngineNetworksId}", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.vmwareEngineNetworks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the VMware Engine network to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/vmwareEngineNetworks/my-network`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareEngineNetworks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VmwareEngineNetwork" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `VmwareEngineNetwork` resources in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareEngineNetworks", +"httpMethod": "GET", +"id": "vmwareengine.projects.locations.vmwareEngineNetworks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of network peerings, you can exclude the ones named `example-network` by specifying `name != \"example-network\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-network\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-network-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-network-2\") ```", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in one page. The maximum value is coerced to 1000. The default value of this field is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListVmwareEngineNetworks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListVmwareEngineNetworks` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the location to query for VMware Engine networks. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareEngineNetworks", +"response": { +"$ref": "ListVmwareEngineNetworksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Modifies a VMware Engine network resource. Only the following fields can be updated: `description`. Only fields specified in `updateMask` are applied.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareEngineNetworks/{vmwareEngineNetworksId}", +"httpMethod": "PATCH", +"id": "vmwareengine.projects.locations.vmwareEngineNetworks.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The resource name of the VMware Engine network. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/vmwareEngineNetworks/my-network`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareEngineNetworks/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the VMware Engine network resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten. Only the following fields can be updated: `description`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "VmwareEngineNetwork" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241009", +"rootUrl": "https://vmwareengine.googleapis.com/", +"schemas": { +"AuditConfig": { +"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:jose@example.com\" ] }, { \"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:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AutoscalingPolicy": { +"description": "Autoscaling policy describes the behavior of the autoscaling with respect to the resource utilization. The scale-out operation is initiated if the utilization exceeds ANY of the respective thresholds. The scale-in operation is initiated if the utilization is below ALL of the respective thresholds.", +"id": "AutoscalingPolicy", +"properties": { +"consumedMemoryThresholds": { +"$ref": "Thresholds", +"description": "Optional. Utilization thresholds pertaining to amount of consumed memory." +}, +"cpuThresholds": { +"$ref": "Thresholds", +"description": "Optional. Utilization thresholds pertaining to CPU utilization." +}, +"grantedMemoryThresholds": { +"$ref": "Thresholds", +"description": "Optional. Utilization thresholds pertaining to amount of granted memory." +}, +"nodeTypeId": { +"description": "Required. The canonical identifier of the node type to add or remove. Corresponds to the `NodeType`.", +"type": "string" +}, +"scaleOutSize": { +"description": "Required. Number of nodes to add to a cluster during a scale-out operation. Must be divisible by 2 for stretched clusters. During a scale-in operation only one node (or 2 for stretched clusters) are removed in a single iteration.", +"format": "int32", +"type": "integer" +}, +"storageThresholds": { +"$ref": "Thresholds", +"description": "Optional. Utilization thresholds pertaining to amount of consumed storage." +} +}, +"type": "object" +}, +"AutoscalingSettings": { +"description": "Autoscaling settings define the rules used by VMware Engine to automatically scale-out and scale-in the clusters in a private cloud.", +"id": "AutoscalingSettings", +"properties": { +"autoscalingPolicies": { +"additionalProperties": { +"$ref": "AutoscalingPolicy" +}, +"description": "Required. The map with autoscaling policies applied to the cluster. The key is the identifier of the policy. It must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5) Currently there map must contain only one element that describes the autoscaling policy for compute nodes.", +"type": "object" +}, +"coolDownPeriod": { +"description": "Optional. The minimum duration between consecutive autoscale operations. It starts once addition or removal of nodes is fully completed. Defaults to 30 minutes if not specified. Cool down period must be in whole minutes (for example, 30, 31, 50, 180 minutes).", +"format": "google-duration", +"type": "string" +}, +"maxClusterNodeCount": { +"description": "Optional. Maximum number of nodes of any type in a cluster. If not specified the default limits apply.", +"format": "int32", +"type": "integer" +}, +"minClusterNodeCount": { +"description": "Optional. Minimum number of nodes of any type in a cluster. If not specified the default limits apply.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"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 principals 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": { +"description": "Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?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, `my-other-app@appspot.gserviceaccount.com?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, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "A cluster in a private cloud.", +"id": "Cluster", +"properties": { +"autoscalingSettings": { +"$ref": "AutoscalingSettings", +"description": "Optional. Configuration of the autoscaling applied to this cluster." +}, +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"management": { +"description": "Output only. True if the cluster is a management cluster; false otherwise. There can only be one management cluster in a private cloud and it has to be the first one.", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Output only. Identifier. The resource name of this cluster. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster`", +"readOnly": true, +"type": "string" +}, +"nodeTypeConfigs": { +"additionalProperties": { +"$ref": "NodeTypeConfig" +}, +"description": "Required. The map of cluster node types in this cluster, where the key is canonical identifier of the node type (corresponds to the `NodeType`).", +"type": "object" +}, +"state": { +"description": "Output only. State of the resource.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"UPDATING", +"DELETING", +"REPAIRING" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"The Cluster is operational and can be used by the user.", +"The Cluster is being deployed.", +"Adding or removing of a node to the cluster, any other cluster specific updates.", +"The Cluster is being deleted.", +"The Cluster is undergoing maintenance, for example: a failed node is getting replaced." +], +"readOnly": true, +"type": "string" +}, +"stretchedClusterConfig": { +"$ref": "StretchedClusterConfig", +"description": "Optional. Configuration of a stretched cluster. Required for clusters that belong to a STRETCHED private cloud." +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Credentials": { +"description": "Credentials for a private cloud.", +"id": "Credentials", +"properties": { +"password": { +"description": "Initial password.", +"type": "string" +}, +"username": { +"description": "Initial username.", +"type": "string" +} +}, +"type": "object" +}, +"DnsBindPermission": { +"description": "DnsBindPermission resource that contains the accounts having the consumer DNS bind permission on the corresponding intranet VPC of the consumer project.", +"id": "DnsBindPermission", +"properties": { +"name": { +"description": "Required. Output only. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource and location can only be global. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", +"readOnly": true, +"type": "string" +}, +"principals": { +"description": "Output only. Users/Service accounts which have access for binding on the intranet VPC project corresponding to the consumer project.", +"items": { +"$ref": "Principal" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"DnsForwarding": { +"description": "DNS forwarding config. This config defines a list of domain to name server mappings, and is attached to the private cloud for custom domain resolution.", +"id": "DnsForwarding", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"forwardingRules": { +"description": "Required. List of domain mappings to configure", +"items": { +"$ref": "ForwardingRule" +}, +"type": "array" +}, +"name": { +"description": "Output only. Identifier. The resource name of this DNS profile. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/dnsForwarding`", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"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() < 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", +"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": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"ExternalAccessRule": { +"description": "External access firewall rules for filtering incoming traffic destined to `ExternalAddress` resources.", +"id": "ExternalAccessRule", +"properties": { +"action": { +"description": "The action that the external access rule performs.", +"enum": [ +"ACTION_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Defaults to allow.", +"Allows connections that match the other specified components.", +"Blocks connections that match the other specified components." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description for this external access rule.", +"type": "string" +}, +"destinationIpRanges": { +"description": "If destination ranges are specified, the external access rule applies only to the traffic that has a destination IP address in these ranges. The specified IP addresses must have reserved external IP addresses in the scope of the parent network policy. To match all external IP addresses in the scope of the parent network policy, specify `0.0.0.0/0`. To match a specific external IP address, specify it using the `IpRange.external_address` property.", +"items": { +"$ref": "IpRange" +}, +"type": "array" +}, +"destinationPorts": { +"description": "A list of destination ports to which the external access rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. For example: `[\"22\"]`, `[\"80\",\"443\"]`, or `[\"12345-12349\"]`. To match all destination ports, specify `[\"0-65535\"]`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipProtocol": { +"description": "The IP protocol to which the external access rule applies. This value can be one of the following three protocol strings (not case-sensitive): `tcp`, `udp`, or `icmp`.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of this external access rule. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-policy/externalAccessRules/my-rule`", +"readOnly": true, +"type": "string" +}, +"priority": { +"description": "External access rule priority, which determines the external access rule to use when multiple rules apply. If multiple rules have the same priority, their ordering is non-deterministic. If specific ordering is required, assign unique priorities to enforce such ordering. The external access rule priority is an integer from 100 to 4096, both inclusive. Lower integers indicate higher precedence. For example, a rule with priority `100` has higher precedence than a rule with priority `101`.", +"format": "int32", +"type": "integer" +}, +"sourceIpRanges": { +"description": "If source ranges are specified, the external access rule applies only to traffic that has a source IP address in these ranges. These ranges can either be expressed in the CIDR format or as an IP address. As only inbound rules are supported, `ExternalAddress` resources cannot be the source IP addresses of an external access rule. To match all source addresses, specify `0.0.0.0/0`.", +"items": { +"$ref": "IpRange" +}, +"type": "array" +}, +"sourcePorts": { +"description": "A list of source ports to which the external access rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. For example: `[\"22\"]`, `[\"80\",\"443\"]`, or `[\"12345-12349\"]`. To match all source ports, specify `[\"0-65535\"]`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"state": { +"description": "Output only. The state of the resource.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"UPDATING", +"DELETING" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The rule is ready.", +"The rule is being created.", +"The rule is being updated.", +"The rule is being deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExternalAddress": { +"description": "Represents an allocated external IP address and its corresponding internal IP address in a private cloud.", +"id": "ExternalAddress", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description for this resource.", +"type": "string" +}, +"externalIp": { +"description": "Output only. The external IP address of a workload VM.", +"readOnly": true, +"type": "string" +}, +"internalIp": { +"description": "The internal IP address of a workload VM.", +"type": "string" +}, +"name": { +"description": "Output only. Identifier. The resource name of this external IP address. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-address`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the resource.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"UPDATING", +"DELETING" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"The address is ready.", +"The address is being created.", +"The address is being updated.", +"The address is being deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FetchNetworkPolicyExternalAddressesResponse": { +"description": "Response message for VmwareEngine.FetchNetworkPolicyExternalAddresses", +"id": "FetchNetworkPolicyExternalAddressesResponse", +"properties": { +"externalAddresses": { +"description": "A list of external IP addresses assigned to VMware workload VMs within the scope of the given network policy.", +"items": { +"$ref": "ExternalAddress" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ForwardingRule": { +"description": "A forwarding rule is a mapping of a `domain` to `name_servers`. This mapping allows VMware Engine to resolve domains for attached private clouds by forwarding DNS requests for a given domain to the specified nameservers.", +"id": "ForwardingRule", +"properties": { +"domain": { +"description": "Required. Domain used to resolve a `name_servers` list.", +"type": "string" +}, +"nameServers": { +"description": "Required. List of DNS servers to use for domain resolution", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GrantDnsBindPermissionRequest": { +"description": "Request message for VmwareEngine.GrantDnsBindPermission", +"id": "GrantDnsBindPermissionRequest", +"properties": { +"principal": { +"$ref": "Principal", +"description": "Required. The consumer provided user/service account which needs to be granted permission to bind with the intranet VPC corresponding to the consumer project." +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"Hcx": { +"description": "Details about a HCX Cloud Manager appliance.", +"id": "Hcx", +"properties": { +"fqdn": { +"description": "Fully qualified domain name of the appliance.", +"type": "string" +}, +"internalIp": { +"description": "Internal IP address of the appliance.", +"type": "string" +}, +"state": { +"description": "Output only. The state of the appliance.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"ACTIVATING" +], +"enumDescriptions": [ +"Unspecified appliance state. This is the default value.", +"The appliance is operational and can be used.", +"The appliance is being deployed.", +"The appliance is being activated." +], +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Version of the appliance.", +"type": "string" +} +}, +"type": "object" +}, +"HcxActivationKey": { +"description": "HCX activation key. A default key is created during private cloud provisioning, but this behavior is subject to change and you should always verify active keys. Use VmwareEngine.ListHcxActivationKeys to retrieve existing keys and VmwareEngine.CreateHcxActivationKey to create new ones.", +"id": "HcxActivationKey", +"properties": { +"activationKey": { +"description": "Output only. HCX activation key.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Creation time of HCX activation key.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of this HcxActivationKey. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateClouds/my-cloud/hcxActivationKeys/my-key`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of HCX activation key.", +"enum": [ +"STATE_UNSPECIFIED", +"AVAILABLE", +"CONSUMED", +"CREATING" +], +"enumDescriptions": [ +"Unspecified state.", +"State of a newly generated activation key.", +"State of key when it has been used to activate HCX appliance.", +"State of key when it is being created." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"IpRange": { +"description": "An IP range provided in any one of the supported formats.", +"id": "IpRange", +"properties": { +"externalAddress": { +"description": "The name of an `ExternalAddress` resource. The external address must have been reserved in the scope of this external access rule's parent network policy. Provide the external address name in the form of `projects/{project}/locations/{location}/privateClouds/{private_cloud}/externalAddresses/{external_address}`. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-address`.", +"type": "string" +}, +"ipAddress": { +"description": "A single IP address. For example: `10.0.0.5`.", +"type": "string" +}, +"ipAddressRange": { +"description": "An IP address range in the CIDR format. For example: `10.0.0.0/24`.", +"type": "string" +} +}, +"type": "object" +}, +"ListClustersResponse": { +"description": "Response message for VmwareEngine.ListClusters", +"id": "ListClustersResponse", +"properties": { +"clusters": { +"description": "A list of private cloud clusters.", +"items": { +"$ref": "Cluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListExternalAccessRulesResponse": { +"description": "Response message for VmwareEngine.ListExternalAccessRules", +"id": "ListExternalAccessRulesResponse", +"properties": { +"externalAccessRules": { +"description": "A list of external access firewall rules.", +"items": { +"$ref": "ExternalAccessRule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListExternalAddressesResponse": { +"description": "Response message for VmwareEngine.ListExternalAddresses", +"id": "ListExternalAddressesResponse", +"properties": { +"externalAddresses": { +"description": "A list of external IP addresses.", +"items": { +"$ref": "ExternalAddress" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListHcxActivationKeysResponse": { +"description": "Response message for VmwareEngine.ListHcxActivationKeys", +"id": "ListHcxActivationKeysResponse", +"properties": { +"hcxActivationKeys": { +"description": "List of HCX activation keys.", +"items": { +"$ref": "HcxActivationKey" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListLoggingServersResponse": { +"description": "Response message for VmwareEngine.ListLoggingServers", +"id": "ListLoggingServersResponse", +"properties": { +"loggingServers": { +"description": "A list of Logging Servers.", +"items": { +"$ref": "LoggingServer" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be send as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListManagementDnsZoneBindingsResponse": { +"description": "Response message for VmwareEngine.ListManagementDnsZoneBindings", +"id": "ListManagementDnsZoneBindingsResponse", +"properties": { +"managementDnsZoneBindings": { +"description": "A list of management DNS zone bindings.", +"items": { +"$ref": "ManagementDnsZoneBinding" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListNetworkPeeringsResponse": { +"description": "Response message for VmwareEngine.ListNetworkPeerings", +"id": "ListNetworkPeeringsResponse", +"properties": { +"networkPeerings": { +"description": "A list of network peerings.", +"items": { +"$ref": "NetworkPeering" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListNetworkPoliciesResponse": { +"description": "Response message for VmwareEngine.ListNetworkPolicies", +"id": "ListNetworkPoliciesResponse", +"properties": { +"networkPolicies": { +"description": "A list of network policies.", +"items": { +"$ref": "NetworkPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be send as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListNodeTypesResponse": { +"description": "Response message for VmwareEngine.ListNodeTypes", +"id": "ListNodeTypesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"nodeTypes": { +"description": "A list of Node Types.", +"items": { +"$ref": "NodeType" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListNodesResponse": { +"description": "Response message for VmwareEngine.ListNodes", +"id": "ListNodesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"nodes": { +"description": "The nodes.", +"items": { +"$ref": "Node" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPeeringRoutesResponse": { +"description": "Response message for VmwareEngine.ListPeeringRoutes", +"id": "ListPeeringRoutesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"peeringRoutes": { +"description": "A list of peering routes.", +"items": { +"$ref": "PeeringRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPrivateCloudsResponse": { +"description": "Response message for VmwareEngine.ListPrivateClouds", +"id": "ListPrivateCloudsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"privateClouds": { +"description": "A list of private clouds.", +"items": { +"$ref": "PrivateCloud" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPrivateConnectionPeeringRoutesResponse": { +"description": "Response message for VmwareEngine.ListPrivateConnectionPeeringRoutes", +"id": "ListPrivateConnectionPeeringRoutesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"peeringRoutes": { +"description": "A list of peering routes.", +"items": { +"$ref": "PeeringRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPrivateConnectionsResponse": { +"description": "Response message for VmwareEngine.ListPrivateConnections", +"id": "ListPrivateConnectionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"privateConnections": { +"description": "A list of private connections.", +"items": { +"$ref": "PrivateConnection" +}, +"type": "array" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSubnetsResponse": { +"description": "Response message for VmwareEngine.ListSubnets", +"id": "ListSubnetsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"subnets": { +"description": "A list of subnets.", +"items": { +"$ref": "Subnet" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached when making an aggregated query using wildcards.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVmwareEngineNetworksResponse": { +"description": "Response message for VmwareEngine.ListVmwareEngineNetworks", +"id": "ListVmwareEngineNetworksResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"vmwareEngineNetworks": { +"description": "A list of VMware Engine networks.", +"items": { +"$ref": "VmwareEngineNetwork" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "VmwareEngine specific metadata for the given google.cloud.location.Location. It is returned as a content of the `google.cloud.location.Location.metadata` field.", +"id": "LocationMetadata", +"properties": { +"capabilities": { +"description": "Output only. Capabilities of this location.", +"items": { +"enum": [ +"CAPABILITY_UNSPECIFIED", +"STRETCHED_CLUSTERS" +], +"enumDescriptions": [ +"The default value. This value is used if the capability is omitted or unknown.", +"Stretch clusters are supported in this location." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"LoggingServer": { +"description": "Logging server to receive vCenter or ESXi logs.", +"id": "LoggingServer", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"hostname": { +"description": "Required. Fully-qualified domain name (FQDN) or IP Address of the logging server.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of this logging server. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/loggingServers/my-logging-server`", +"readOnly": true, +"type": "string" +}, +"port": { +"description": "Required. Port number at which the logging server receives logs.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "Required. Protocol used by vCenter to send logs to a logging server.", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"UDP", +"TCP", +"TLS", +"SSL", +"RELP" +], +"enumDescriptions": [ +"Unspecified communications protocol. This is the default value.", +"UDP", +"TCP", +"TLS", +"SSL", +"RELP" +], +"type": "string" +}, +"sourceType": { +"description": "Required. The type of component that produces logs that will be forwarded to this logging server.", +"enum": [ +"SOURCE_TYPE_UNSPECIFIED", +"ESXI", +"VCSA" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"Logs produced by ESXI hosts", +"Logs produced by vCenter server" +], +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ManagementCluster": { +"description": "Management cluster configuration.", +"id": "ManagementCluster", +"properties": { +"clusterId": { +"description": "Required. The user-provided identifier of the new `Cluster`. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", +"type": "string" +}, +"nodeTypeConfigs": { +"additionalProperties": { +"$ref": "NodeTypeConfig" +}, +"description": "Required. The map of cluster node types in this cluster, where the key is canonical identifier of the node type (corresponds to the `NodeType`).", +"type": "object" +}, +"stretchedClusterConfig": { +"$ref": "StretchedClusterConfig", +"description": "Optional. Configuration of a stretched cluster. Required for STRETCHED private clouds." +} +}, +"type": "object" +}, +"ManagementDnsZoneBinding": { +"description": "Represents a binding between a network and the management DNS zone. A management DNS zone is the Cloud DNS cross-project binding zone that VMware Engine creates for each private cloud. It contains FQDNs and corresponding IP addresses for the private cloud's ESXi hosts and management VM appliances like vCenter and NSX Manager.", +"id": "ManagementDnsZoneBinding", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description for this resource.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of this binding. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/managementDnsZoneBindings/my-management-dns-zone-binding`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the resource.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"UPDATING", +"DELETING", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"The binding is ready.", +"The binding is being created.", +"The binding is being updated.", +"The binding is being deleted.", +"The binding has failed." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vmwareEngineNetwork": { +"description": "Network to bind is a VMware Engine network. Specify the name in the following form for VMware engine network: `projects/{project}/locations/global/vmwareEngineNetworks/{vmware_engine_network_id}`. `{project}` can either be a project number or a project ID.", +"type": "string" +}, +"vpcNetwork": { +"description": "Network to bind is a standard consumer VPC. Specify the name in the following form for consumer VPC network: `projects/{project}/global/networks/{network_id}`. `{project}` can either be a project number or a project ID.", +"type": "string" +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Network configuration in the consumer project with which the peering has to be done.", +"id": "NetworkConfig", +"properties": { +"dnsServerIp": { +"description": "Output only. DNS Server IP of the Private Cloud. All DNS queries can be forwarded to this address for name resolution of Private Cloud's management entities like vCenter, NSX-T Manager and ESXi hosts.", +"readOnly": true, +"type": "string" +}, +"managementCidr": { +"description": "Required. Management CIDR used by VMware management appliances.", +"type": "string" +}, +"managementIpAddressLayoutVersion": { +"description": "Output only. The IP address layout version of the management IP address range. Possible versions include: * `managementIpAddressLayoutVersion=1`: Indicates the legacy IP address layout used by some existing private clouds. This is no longer supported for new private clouds as it does not support all features. * `managementIpAddressLayoutVersion=2`: Indicates the latest IP address layout used by all newly created private clouds. This version supports all current features.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"vmwareEngineNetwork": { +"description": "Optional. The relative resource name of the VMware Engine network attached to the private cloud. Specify the name in the following form: `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` where `{project}` can either be a project number or a project ID.", +"type": "string" +}, +"vmwareEngineNetworkCanonical": { +"description": "Output only. The canonical name of the VMware Engine network in the form: `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NetworkPeering": { +"description": "Details of a network peering.", +"id": "NetworkPeering", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-provided description for this network peering.", +"type": "string" +}, +"exchangeSubnetRoutes": { +"description": "Optional. True if full mesh connectivity is created and managed automatically between peered networks; false otherwise. Currently this field is always true because Google Compute Engine automatically creates and manages subnetwork routes between two VPC networks when peering state is 'ACTIVE'.", +"type": "boolean" +}, +"exportCustomRoutes": { +"description": "Optional. True if custom routes are exported to the peered network; false otherwise. The default value is true.", +"type": "boolean" +}, +"exportCustomRoutesWithPublicIp": { +"description": "Optional. True if all subnet routes with a public IP address range are exported; false otherwise. The default value is true. IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always exported to peers and are not controlled by this field.", +"type": "boolean" +}, +"importCustomRoutes": { +"description": "Optional. True if custom routes are imported from the peered network; false otherwise. The default value is true.", +"type": "boolean" +}, +"importCustomRoutesWithPublicIp": { +"description": "Optional. True if all subnet routes with public IP address range are imported; false otherwise. The default value is true. IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always imported to peers and are not controlled by this field.", +"type": "boolean" +}, +"name": { +"description": "Output only. Identifier. The resource name of the network peering. NetworkPeering is a global resource and location can only be global. Resource names are scheme-less URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", +"readOnly": true, +"type": "string" +}, +"peerMtu": { +"description": "Optional. Maximum transmission unit (MTU) in bytes. The default value is `1500`. If a value of `0` is provided for this field, VMware Engine uses the default value instead.", +"format": "int32", +"type": "integer" +}, +"peerNetwork": { +"description": "Required. The relative resource name of the network to peer with a standard VMware Engine network. The provided network can be a consumer VPC network or another standard VMware Engine network. If the `peer_network_type` is VMWARE_ENGINE_NETWORK, specify the name in the form: `projects/{project}/locations/global/vmwareEngineNetworks/{vmware_engine_network_id}`. Otherwise specify the name in the form: `projects/{project}/global/networks/{network_id}`, where `{project}` can either be a project number or a project ID.", +"type": "string" +}, +"peerNetworkType": { +"description": "Required. The type of the network to peer with the VMware Engine network.", +"enum": [ +"PEER_NETWORK_TYPE_UNSPECIFIED", +"STANDARD", +"VMWARE_ENGINE_NETWORK", +"PRIVATE_SERVICES_ACCESS", +"NETAPP_CLOUD_VOLUMES", +"THIRD_PARTY_SERVICE", +"DELL_POWERSCALE", +"GOOGLE_CLOUD_NETAPP_VOLUMES" +], +"enumDescriptions": [ +"Unspecified", +"Peering connection used for connecting to another VPC network established by the same user. For example, a peering connection to another VPC network in the same project or to an on-premises network.", +"Peering connection used for connecting to another VMware Engine network.", +"Peering connection used for establishing [private services access](https://cloud.google.com/vpc/docs/private-services-access).", +"Peering connection used for connecting to NetApp Cloud Volumes.", +"Peering connection used for connecting to third-party services. Most third-party services require manual setup of reverse peering on the VPC network associated with the third-party service.", +"Peering connection used for connecting to Dell PowerScale Filers", +"Peering connection used for connecting to Google Cloud NetApp Volumes." +], +"type": "string" +}, +"state": { +"description": "Output only. State of the network peering. This field has a value of 'ACTIVE' when there's a matching configuration in the peer network. New values may be added to this enum when appropriate.", +"enum": [ +"STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"CREATING", +"DELETING" +], +"enumDescriptions": [ +"Unspecified network peering state. This is the default value.", +"The peering is not active.", +"The peering is active.", +"The peering is being created.", +"The peering is being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. Output Only. Details about the current state of the network peering.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vmwareEngineNetwork": { +"description": "Required. The relative resource name of the VMware Engine network. Specify the name in the following form: `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` where `{project}` can either be a project number or a project ID.", +"type": "string" +} +}, +"type": "object" +}, +"NetworkPolicy": { +"description": "Represents a network policy resource. Network policies are regional resources. You can use a network policy to enable or disable internet access and external IP access. Network policies are associated with a VMware Engine network, which might span across regions. For a given region, a network policy applies to all private clouds in the VMware Engine network associated with the policy.", +"id": "NetworkPolicy", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-provided description for this network policy.", +"type": "string" +}, +"edgeServicesCidr": { +"description": "Required. IP address range in CIDR notation used to create internet access and external IP access. An RFC 1918 CIDR block, with a \"/26\" prefix, is required. The range cannot overlap with any prefixes either in the consumer VPC network or in use by the private clouds attached to that VPC network.", +"type": "string" +}, +"externalIp": { +"$ref": "NetworkService", +"description": "Network service that allows External IP addresses to be assigned to VMware workloads. This service can only be enabled when `internet_access` is also enabled." +}, +"internetAccess": { +"$ref": "NetworkService", +"description": "Network service that allows VMware workloads to access the internet." +}, +"name": { +"description": "Output only. Identifier. The resource name of this network policy. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vmwareEngineNetwork": { +"description": "Optional. The relative resource name of the VMware Engine network. Specify the name in the following form: `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` where `{project}` can either be a project number or a project ID.", +"type": "string" +}, +"vmwareEngineNetworkCanonical": { +"description": "Output only. The canonical name of the VMware Engine network in the form: `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NetworkService": { +"description": "Represents a network service that is managed by a `NetworkPolicy` resource. A network service provides a way to control an aspect of external access to VMware workloads. For example, whether the VMware workloads in the private clouds governed by a network policy can access or be accessed from the internet.", +"id": "NetworkService", +"properties": { +"enabled": { +"description": "True if the service is enabled; false otherwise.", +"type": "boolean" +}, +"state": { +"description": "Output only. State of the service. New values may be added to this enum when appropriate.", +"enum": [ +"STATE_UNSPECIFIED", +"UNPROVISIONED", +"RECONCILING", +"ACTIVE" +], +"enumDescriptions": [ +"Unspecified service state. This is the default value.", +"Service is not provisioned.", +"Service is in the process of being provisioned/deprovisioned.", +"Service is active." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Node": { +"description": "Node in a cluster.", +"id": "Node", +"properties": { +"customCoreCount": { +"description": "Output only. Customized number of cores", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"fqdn": { +"description": "Output only. Fully qualified domain name of the node.", +"readOnly": true, +"type": "string" +}, +"internalIp": { +"description": "Output only. Internal IP address of the node.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of this node. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: projects/my-project/locations/us-central1-a/privateClouds/my-cloud/clusters/my-cluster/nodes/my-node", +"readOnly": true, +"type": "string" +}, +"nodeTypeId": { +"description": "Output only. The canonical identifier of the node type (corresponds to the `NodeType`). For example: standard-72.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the appliance.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"FAILED", +"UPGRADING" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"Node is operational and can be used by the user.", +"Node is being provisioned.", +"Node is in a failed state.", +"Node is undergoing maintenance, e.g.: during private cloud upgrade." +], +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Output only. The version number of the VMware ESXi management component in this cluster.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NodeType": { +"description": "Describes node type.", +"id": "NodeType", +"properties": { +"availableCustomCoreCounts": { +"description": "Output only. List of possible values of custom core count.", +"items": { +"format": "int32", +"type": "integer" +}, +"readOnly": true, +"type": "array" +}, +"capabilities": { +"description": "Output only. Capabilities of this node type.", +"items": { +"enum": [ +"CAPABILITY_UNSPECIFIED", +"STRETCHED_CLUSTERS" +], +"enumDescriptions": [ +"The default value. This value is used if the capability is omitted or unknown.", +"This node type supports stretch clusters." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"diskSizeGb": { +"description": "Output only. The amount of storage available, defined in GB.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"displayName": { +"description": "Output only. The friendly name for this node type. For example: ve1-standard-72", +"readOnly": true, +"type": "string" +}, +"families": { +"description": "Output only. Families of the node type. For node types to be in the same cluster they must share at least one element in the `families`.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"kind": { +"description": "Output only. The type of the resource.", +"enum": [ +"KIND_UNSPECIFIED", +"STANDARD", +"STORAGE_ONLY" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"Standard HCI node.", +"Storage only Node." +], +"readOnly": true, +"type": "string" +}, +"memoryGb": { +"description": "Output only. The amount of physical memory available, defined in GB.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"name": { +"description": "Output only. The resource name of this node type. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-proj/locations/us-central1-a/nodeTypes/standard-72`", +"readOnly": true, +"type": "string" +}, +"nodeTypeId": { +"description": "Output only. The canonical identifier of the node type (corresponds to the `NodeType`). For example: standard-72.", +"readOnly": true, +"type": "string" +}, +"totalCoreCount": { +"description": "Output only. The total number of CPU cores in a single node.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"virtualCpuCount": { +"description": "Output only. The total number of virtual CPUs in a single node.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"NodeTypeConfig": { +"description": "Information about the type and number of nodes associated with the cluster.", +"id": "NodeTypeConfig", +"properties": { +"customCoreCount": { +"description": "Optional. Customized number of cores available to each node of the type. This number must always be one of `nodeType.availableCustomCoreCounts`. If zero is provided max value from `nodeType.availableCustomCoreCounts` will be used.", +"format": "int32", +"type": "integer" +}, +"nodeCount": { +"description": "Required. The number of nodes of this type in the cluster", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Nsx": { +"description": "Details about a NSX Manager appliance.", +"id": "Nsx", +"properties": { +"fqdn": { +"description": "Fully qualified domain name of the appliance.", +"type": "string" +}, +"internalIp": { +"description": "Internal IP address of the appliance.", +"type": "string" +}, +"state": { +"description": "Output only. The state of the appliance.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING" +], +"enumDescriptions": [ +"Unspecified appliance state. This is the default value.", +"The appliance is operational and can be used.", +"The appliance is being deployed." +], +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Version of the appliance.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. True if the user has requested cancellation of the operation; false otherwise. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PeeringRoute": { +"description": "Exchanged network peering route.", +"id": "PeeringRoute", +"properties": { +"destRange": { +"description": "Output only. Destination range of the peering route in CIDR notation.", +"readOnly": true, +"type": "string" +}, +"direction": { +"description": "Output only. Direction of the routes exchanged with the peer network, from the VMware Engine network perspective: * Routes of direction `INCOMING` are imported from the peer network. * Routes of direction `OUTGOING` are exported from the intranet VPC network of the VMware Engine network.", +"enum": [ +"DIRECTION_UNSPECIFIED", +"INCOMING", +"OUTGOING" +], +"enumDescriptions": [ +"Unspecified exchanged routes direction. This is default.", +"Routes imported from the peer network.", +"Routes exported to the peer network." +], +"readOnly": true, +"type": "string" +}, +"imported": { +"description": "Output only. True if the peering route has been imported from a peered VPC network; false otherwise. The import happens if the field `NetworkPeering.importCustomRoutes` is true for this network, `NetworkPeering.exportCustomRoutes` is true for the peer VPC network, and the import does not result in a route conflict.", +"readOnly": true, +"type": "boolean" +}, +"nextHopRegion": { +"description": "Output only. Region containing the next hop of the peering route. This field only applies to dynamic routes in the peer VPC network.", +"readOnly": true, +"type": "string" +}, +"priority": { +"description": "Output only. The priority of the peering route.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type of the route in the peer VPC network.", +"enum": [ +"TYPE_UNSPECIFIED", +"DYNAMIC_PEERING_ROUTE", +"STATIC_PEERING_ROUTE", +"SUBNET_PEERING_ROUTE" +], +"enumDescriptions": [ +"Unspecified peering route type. This is the default value.", +"Dynamic routes in the peer network.", +"Static routes in the peer network.", +"Created, updated, and removed automatically by Google Cloud when subnets are created, modified, or deleted in the peer network." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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`, or principals, to a single `role`. Principals 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:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < 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/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with 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 principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"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", +"type": "string" +}, +"version": { +"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).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Principal": { +"description": "Users/Service accounts which have access for DNS binding on the intranet VPC corresponding to the consumer project.", +"id": "Principal", +"properties": { +"serviceAccount": { +"description": "The service account which needs to be granted the permission.", +"type": "string" +}, +"user": { +"description": "The user who needs to be granted permission.", +"type": "string" +} +}, +"type": "object" +}, +"PrivateCloud": { +"description": "Represents a private cloud resource. Private clouds of type `STANDARD` and `TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are regional.", +"id": "PrivateCloud", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Time when the resource was scheduled for deletion.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description for this private cloud.", +"type": "string" +}, +"expireTime": { +"description": "Output only. Time when the resource will be irreversibly deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"hcx": { +"$ref": "Hcx", +"description": "Output only. HCX appliance.", +"readOnly": true +}, +"managementCluster": { +"$ref": "ManagementCluster", +"description": "Required. Input only. The management cluster for this private cloud. This field is required during creation of the private cloud to provide details for the default cluster. The following fields can't be changed after private cloud creation: `ManagementCluster.clusterId`, `ManagementCluster.nodeTypeId`." +}, +"name": { +"description": "Output only. Identifier. The resource name of this private cloud. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud`", +"readOnly": true, +"type": "string" +}, +"networkConfig": { +"$ref": "NetworkConfig", +"description": "Required. Network configuration of the private cloud." +}, +"nsx": { +"$ref": "Nsx", +"description": "Output only. NSX appliance.", +"readOnly": true +}, +"state": { +"description": "Output only. State of the resource. New values may be added to this enum when appropriate.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"UPDATING", +"FAILED", +"DELETED", +"PURGING" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"The private cloud is ready.", +"The private cloud is being created.", +"The private cloud is being updated.", +"The private cloud is in failed state.", +"The private cloud is scheduled for deletion. The deletion process can be cancelled by using the corresponding undelete method.", +"The private cloud is irreversibly deleted and is being removed from the system." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Optional. Type of the private cloud. Defaults to STANDARD.", +"enum": [ +"STANDARD", +"TIME_LIMITED", +"STRETCHED" +], +"enumDescriptions": [ +"Standard private is a zonal resource, with 3+ nodes. Default type.", +"Time limited private cloud is a zonal resource, can have only 1 node and has limited life span. Will be deleted after defined period of time, can be converted into standard private cloud by expanding it up to 3 or more nodes.", +"Stretched private cloud is a regional resource with redundancy, with a minimum of 6 nodes, nodes count has to be even." +], +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vcenter": { +"$ref": "Vcenter", +"description": "Output only. Vcenter appliance.", +"readOnly": true +} +}, +"type": "object" +}, +"PrivateConnection": { +"description": "Private connection resource that provides connectivity for VMware Engine private clouds.", +"id": "PrivateConnection", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-provided description for this private connection.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the private connection. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1/privateConnections/my-connection`", +"readOnly": true, +"type": "string" +}, +"peeringId": { +"description": "Output only. VPC network peering id between given network VPC and VMwareEngineNetwork.", +"readOnly": true, +"type": "string" +}, +"peeringState": { +"description": "Output only. Peering state between service network and VMware Engine network.", +"enum": [ +"PEERING_STATE_UNSPECIFIED", +"PEERING_ACTIVE", +"PEERING_INACTIVE" +], +"enumDescriptions": [ +"The default value. This value is used if the peering state is omitted or unknown.", +"The peering is in active state.", +"The peering is in inactive state." +], +"readOnly": true, +"type": "string" +}, +"routingMode": { +"description": "Optional. Routing Mode. Default value is set to GLOBAL. For type = PRIVATE_SERVICE_ACCESS, this field can be set to GLOBAL or REGIONAL, for other types only GLOBAL is supported.", +"enum": [ +"ROUTING_MODE_UNSPECIFIED", +"GLOBAL", +"REGIONAL" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"Global Routing Mode", +"Regional Routing Mode" +], +"type": "string" +}, +"serviceNetwork": { +"description": "Required. Service network to create private connection. Specify the name in the following form: `projects/{project}/global/networks/{network_id}` For type = PRIVATE_SERVICE_ACCESS, this field represents servicenetworking VPC, e.g. projects/project-tp/global/networks/servicenetworking. For type = NETAPP_CLOUD_VOLUME, this field represents NetApp service VPC, e.g. projects/project-tp/global/networks/netapp-tenant-vpc. For type = DELL_POWERSCALE, this field represent Dell service VPC, e.g. projects/project-tp/global/networks/dell-tenant-vpc. For type= THIRD_PARTY_SERVICE, this field could represent a consumer VPC or any other producer VPC to which the VMware Engine Network needs to be connected, e.g. projects/project/global/networks/vpc.", +"type": "string" +}, +"state": { +"description": "Output only. State of the private connection.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"UPDATING", +"DELETING", +"UNPROVISIONED", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The private connection is being created.", +"The private connection is ready.", +"The private connection is being updated.", +"The private connection is being deleted.", +"The private connection is not provisioned, since no private cloud is present for which this private connection is needed.", +"The private connection is in failed state." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. Private connection type.", +"enum": [ +"TYPE_UNSPECIFIED", +"PRIVATE_SERVICE_ACCESS", +"NETAPP_CLOUD_VOLUMES", +"DELL_POWERSCALE", +"THIRD_PARTY_SERVICE" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"Connection used for establishing [private services access](https://cloud.google.com/vpc/docs/private-services-access).", +"Connection used for connecting to NetApp Cloud Volumes.", +"Connection used for connecting to Dell PowerScale.", +"Connection used for connecting to third-party services." +], +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vmwareEngineNetwork": { +"description": "Required. The relative resource name of Legacy VMware Engine network. Specify the name in the following form: `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` where `{project}`, `{location}` will be same as specified in private connection resource name and `{vmware_engine_network_id}` will be in the form of `{location}`-default e.g. projects/project/locations/us-central1/vmwareEngineNetworks/us-central1-default.", +"type": "string" +}, +"vmwareEngineNetworkCanonical": { +"description": "Output only. The canonical name of the VMware Engine network in the form: `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RepairManagementDnsZoneBindingRequest": { +"description": "Request message for VmwareEngine.RepairManagementDnsZoneBindings", +"id": "RepairManagementDnsZoneBindingRequest", +"properties": { +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"ResetNsxCredentialsRequest": { +"description": "Request message for VmwareEngine.ResetNsxCredentials", +"id": "ResetNsxCredentialsRequest", +"properties": { +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"ResetVcenterCredentialsRequest": { +"description": "Request message for VmwareEngine.ResetVcenterCredentials", +"id": "ResetVcenterCredentialsRequest", +"properties": { +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +}, +"username": { +"description": "Optional. The username of the user to be to reset the credentials. The default value of this field is CloudOwner@gve.local. The provided value should be one of the following: solution-user-01@gve.local, solution-user-02@gve.local, solution-user-03@gve.local, solution-user-04@gve.local, solution-user-05@gve.local, zertoadmin@gve.local.", +"type": "string" +} +}, +"type": "object" +}, +"RevokeDnsBindPermissionRequest": { +"description": "Request message for VmwareEngine.RevokeDnsBindPermission", +"id": "RevokeDnsBindPermissionRequest", +"properties": { +"principal": { +"$ref": "Principal", +"description": "Required. The consumer provided user/service account which needs to be granted permission to bind with the intranet VPC corresponding to the consumer project." +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "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 Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StretchedClusterConfig": { +"description": "Configuration of a stretched cluster.", +"id": "StretchedClusterConfig", +"properties": { +"preferredLocation": { +"description": "Required. Zone that will remain operational when connection between the two zones is lost. Specify the resource name of a zone that belongs to the region of the private cloud. For example: `projects/{project}/locations/europe-west3-a` where `{project}` can either be a project number or a project ID.", +"type": "string" +}, +"secondaryLocation": { +"description": "Required. Additional zone for a higher level of availability and load balancing. Specify the resource name of a zone that belongs to the region of the private cloud. For example: `projects/{project}/locations/europe-west3-b` where `{project}` can either be a project number or a project ID.", +"type": "string" +} +}, +"type": "object" +}, +"Subnet": { +"description": "Subnet in a private cloud. Either `management` subnets (such as vMotion) that are read-only, or `userDefined`, which can also be updated.", +"id": "Subnet", +"properties": { +"gatewayIp": { +"description": "The IP address of the gateway of this subnet. Must fall within the IP prefix defined above.", +"type": "string" +}, +"ipCidrRange": { +"description": "The IP address range of the subnet in CIDR format '10.0.0.0/24'.", +"type": "string" +}, +"name": { +"description": "Output only. Identifier. The resource name of this subnet. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/subnets/my-subnet`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the resource.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"UPDATING", +"DELETING", +"RECONCILING", +"FAILED" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"The subnet is ready.", +"The subnet is being created.", +"The subnet is being updated.", +"The subnet is being deleted.", +"Changes requested in the last operation are being propagated.", +"Last operation on the subnet did not succeed. Subnet's payload is reverted back to its most recent working state." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of the subnet. For example \"management\" or \"userDefined\".", +"readOnly": true, +"type": "string" +}, +"vlanId": { +"description": "Output only. VLAN ID of the VLAN on which the subnet is configured", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "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](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Thresholds": { +"description": "Thresholds define the utilization of resources triggering scale-out and scale-in operations.", +"id": "Thresholds", +"properties": { +"scaleIn": { +"description": "Required. The utilization triggering the scale-in operation in percent.", +"format": "int32", +"type": "integer" +}, +"scaleOut": { +"description": "Required. The utilization triggering the scale-out operation in percent.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UndeletePrivateCloudRequest": { +"description": "Request message for VmwareEngine.UndeletePrivateCloud", +"id": "UndeletePrivateCloudRequest", +"properties": { +"requestId": { +"description": "Optional. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"Vcenter": { +"description": "Details about a vCenter Server management appliance.", +"id": "Vcenter", +"properties": { +"fqdn": { +"description": "Fully qualified domain name of the appliance.", +"type": "string" +}, +"internalIp": { +"description": "Internal IP address of the appliance.", +"type": "string" +}, +"state": { +"description": "Output only. The state of the appliance.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING" +], +"enumDescriptions": [ +"Unspecified appliance state. This is the default value.", +"The appliance is operational and can be used.", +"The appliance is being deployed." +], +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Version of the appliance.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareEngineNetwork": { +"description": "VMware Engine network resource that provides connectivity for VMware Engine private clouds.", +"id": "VmwareEngineNetwork", +"properties": { +"createTime": { +"description": "Output only. Creation time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description for this VMware Engine network.", +"type": "string" +}, +"etag": { +"description": "Checksum that may be sent on update and delete requests to ensure that the user-provided value is up to date before the server processes a request. The server computes checksums based on the value of other fields in the request.", +"type": "string" +}, +"name": { +"description": "Output only. Identifier. The resource name of the VMware Engine network. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/vmwareEngineNetworks/my-network`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the VMware Engine network.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"UPDATING", +"DELETING" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"The VMware Engine network is being created.", +"The VMware Engine network is ready.", +"The VMware Engine network is being updated.", +"The VMware Engine network is being deleted." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. VMware Engine network type.", +"enum": [ +"TYPE_UNSPECIFIED", +"LEGACY", +"STANDARD" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"Network type used by private clouds created in projects without a network of type `STANDARD`. This network type is no longer used for new VMware Engine private cloud deployments.", +"Standard network type used for private cloud connectivity." +], +"type": "string" +}, +"uid": { +"description": "Output only. System-generated unique identifier for the resource.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time of this resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vpcNetworks": { +"description": "Output only. VMware Engine service VPC networks that provide connectivity from a private cloud to customer projects, the internet, and other Google Cloud services.", +"items": { +"$ref": "VpcNetwork" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"VpcNetwork": { +"description": "Represents a VMware Engine VPC network that is managed by a VMware Engine network resource.", +"id": "VpcNetwork", +"properties": { +"network": { +"description": "Output only. The relative resource name of the service VPC network this VMware Engine network is attached to. For example: `projects/123123/global/networks/my-network`", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type of VPC network (INTRANET, INTERNET, or GOOGLE_CLOUD)", +"enum": [ +"TYPE_UNSPECIFIED", +"INTRANET", +"INTERNET", +"GOOGLE_CLOUD" +], +"enumDescriptions": [ +"The default value. This value should never be used.", +"VPC network that will be peered with a consumer VPC network or the intranet VPC of another VMware Engine network. Access a private cloud through Compute Engine VMs on a peered VPC network or an on-premises resource connected to a peered consumer VPC network.", +"VPC network used for internet access to and from a private cloud.", +"VPC network used for access to Google Cloud services like Cloud Storage." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "VMware Engine API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workflows.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workflows.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..27ee0bb274dcf9b27ae417899d943a5a8d525060 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workflows.v1beta.json @@ -0,0 +1,713 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://workflows.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Workflows", +"description": "Manage workflow definitions. To execute workflows and manage executions, see the Workflows Executions API.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/workflows", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "workflows:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://workflows.mtls.googleapis.com/", +"name": "workflows", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "workflows.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "workflows.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "workflows.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "workflows.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "workflows.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workflows": { +"methods": { +"create": { +"description": "Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation will return ALREADY_EXISTS error.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workflows", +"httpMethod": "POST", +"id": "workflows.projects.locations.workflows.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project and location in which the workflow should be created. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"workflowId": { +"description": "Required. The ID of the workflow to be created. It has to fulfill the following requirements: * Must contain only letters, numbers, underscores and hyphens. * Must start with a letter. * Must be between 1-64 characters. * Must end with a number or a letter. * Must be unique within the customer project and location.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/workflows", +"request": { +"$ref": "Workflow" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a workflow with the specified name. This method also cancels and deletes all running executions of the workflow.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", +"httpMethod": "DELETE", +"id": "workflows.projects.locations.workflows.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the workflow to be deleted. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Workflow.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", +"httpMethod": "GET", +"id": "workflows.projects.locations.workflows.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the workflow which information should be retrieved. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Workflow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Workflows in a given project and location. The default order is not specified.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workflows", +"httpMethod": "GET", +"id": "workflows.projects.locations.workflows.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter to restrict results to specific workflows.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields that that specify the order of the results. Default sorting order for a field is ascending. To specify descending order for a field, append a \" desc\" suffix. If not specified, the results will be returned in an unspecified order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of workflows to return per call. The service may return fewer than this value. If the value is not specified, a default value of 500 will be used. The maximum permitted value is 1000 and values greater than 1000 will be coerced down to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkflows` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkflows` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location from which the workflows should be listed. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/workflows", +"response": { +"$ref": "ListWorkflowsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing workflow. Running this method has no impact on already running executions of the workflow. A new revision of the workflow may be created as a result of a successful update operation. In that case, such revision will be used in new workflow executions.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", +"httpMethod": "PATCH", +"id": "workflows.projects.locations.workflows.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. If not present, the entire workflow will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Workflow" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20240619", +"rootUrl": "https://workflows.googleapis.com/", +"schemas": { +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkflowsResponse": { +"description": "Response for the ListWorkflows method.", +"id": "ListWorkflowsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workflows": { +"description": "The workflows which match the request.", +"items": { +"$ref": "Workflow" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "API version used to start the operation.", +"type": "string" +}, +"createTime": { +"description": "The time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time the operation finished running.", +"format": "google-datetime", +"type": "string" +}, +"target": { +"description": "Server-defined resource path for the target of the operation.", +"type": "string" +}, +"verb": { +"description": "Name of the verb executed by the operation.", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Workflow": { +"description": "Workflow program to be executed by Workflows.", +"id": "Workflow", +"properties": { +"createTime": { +"description": "Output only. The timestamp of when the workflow was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the workflow provided by the user. Must be at most 1000 unicode characters long.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores and dashes. Label keys must start with a letter. International characters are allowed.", +"type": "object" +}, +"name": { +"description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"type": "string" +}, +"revisionCreateTime": { +"description": "Output only. The timestamp that the latest revision of the workflow was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is \"000001-a4d\", where the first 6 characters define the zero-padded revision ordinal number. They are followed by a hyphen and 3 hexadecimal random characters.", +"readOnly": true, +"type": "string" +}, +"serviceAccount": { +"description": "The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.", +"type": "string" +}, +"sourceContents": { +"description": "Workflow code to be executed. The size limit is 128KB.", +"type": "string" +}, +"state": { +"description": "Output only. State of the workflow deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE" +], +"enumDescriptions": [ +"Invalid state.", +"The workflow has been deployed successfully and is serving." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update timestamp of the workflow.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Workflows API", +"version": "v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workloadmanager.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workloadmanager.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..93442d0339e5f9530e80270057ff2887643d2318 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workloadmanager.v1.json @@ -0,0 +1,2408 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://workloadmanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Workload Manager", +"description": "Workload Manager is a service that provides tooling for enterprise workloads to automate the deployment and validation of your workloads against best practices and recommendations.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/workload-manager/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "workloadmanager:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://workloadmanager.mtls.googleapis.com/", +"name": "workloadmanager", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"evaluations": { +"methods": { +"create": { +"description": "Creates a new Evaluation in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations", +"httpMethod": "POST", +"id": "workloadmanager.projects.locations.evaluations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"evaluationId": { +"description": "Required. Id of the requesting object", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource prefix of the evaluation location using the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/evaluations", +"request": { +"$ref": "Evaluation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Evaluation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}", +"httpMethod": "DELETE", +"id": "workloadmanager.projects.locations.evaluations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. Followed the best practice from https://aip.dev/135#cascading-delete", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Evaluation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.evaluations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Evaluation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Evaluations in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.evaluations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter to be applied when listing the evaluation results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListEvaluationsRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/evaluations", +"response": { +"$ref": "ListEvaluationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"executions": { +"methods": { +"delete": { +"description": "Deletes a single Execution.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions/{executionsId}", +"httpMethod": "DELETE", +"id": "workloadmanager.projects.locations.evaluations.executions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Execution.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions/{executionsId}", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.evaluations.executions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Execution" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Executions in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.evaluations.executions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource prefix of the Execution using the form: 'projects/{project}/locations/{location}/evaluations/{evaluation}'", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/executions", +"response": { +"$ref": "ListExecutionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Creates a new Execution in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions:run", +"httpMethod": "POST", +"id": "workloadmanager.projects.locations.evaluations.executions.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Execution using the form: 'projects/{project}/locations/{location}/evaluations/{evaluation}/executions/{execution}'", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/executions:run", +"request": { +"$ref": "RunEvaluationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"results": { +"methods": { +"list": { +"description": "Lists the result of a single evaluation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions/{executionsId}/results", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.evaluations.executions.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The execution results. Format: {parent}/evaluations/*/executions/*/results", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/results", +"response": { +"$ref": "ListExecutionResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"scannedResources": { +"methods": { +"list": { +"description": "List all scanned resources for a single Execution.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions/{executionsId}/scannedResources", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.evaluations.executions.scannedResources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. parent for ListScannedResourcesRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +}, +"rule": { +"description": "rule name", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/scannedResources", +"response": { +"$ref": "ListScannedResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"insights": { +"methods": { +"writeInsight": { +"description": "Write the data insights to workload manager data warehouse.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insights:writeInsight", +"httpMethod": "POST", +"id": "workloadmanager.projects.locations.insights.writeInsight", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Required. The GCP location. The format is: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+location}/insights:writeInsight", +"request": { +"$ref": "WriteInsightRequest" +}, +"response": { +"$ref": "WriteInsightResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "workloadmanager.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "workloadmanager.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rules": { +"methods": { +"list": { +"description": "Lists rules in a given project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/rules", +"httpMethod": "GET", +"id": "workloadmanager.projects.locations.rules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"customRulesBucket": { +"description": "The Cloud Storage bucket name for custom rules.", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Filter based on primary_category, secondary_category", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The [project] on which to execute the request. The format is: projects/{project_id}/locations/{location} Currently, the pre-defined rules are global available to all projects and all regions", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/rules", +"response": { +"$ref": "ListRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250101", +"rootUrl": "https://workloadmanager.googleapis.com/", +"schemas": { +"AgentCommand": { +"description": "* An AgentCommand specifies a one-time executable program for the agent to run.", +"id": "AgentCommand", +"properties": { +"command": { +"description": "command is the name of the agent one-time executable that will be invoked.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "parameters is a map of key/value pairs that can be used to specify additional one-time executable settings.", +"type": "object" +} +}, +"type": "object" +}, +"BigQueryDestination": { +"description": "Message describing big query destination", +"id": "BigQueryDestination", +"properties": { +"createNewResultsTable": { +"description": "Optional. determine if results will be saved in a new table", +"type": "boolean" +}, +"destinationDataset": { +"description": "Optional. destination dataset to save evaluation results", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Command": { +"description": "* Command specifies the type of command to execute.", +"id": "Command", +"properties": { +"agentCommand": { +"$ref": "AgentCommand", +"description": "AgentCommand specifies a one-time executable program for the agent to run." +}, +"shellCommand": { +"$ref": "ShellCommand", +"description": "ShellCommand is invoked via the agent's command line executor." +} +}, +"type": "object" +}, +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Evaluation": { +"description": "LINT.IfChange Message describing Evaluation object", +"id": "Evaluation", +"properties": { +"bigQueryDestination": { +"$ref": "BigQueryDestination", +"description": "Optional. BigQuery destination" +}, +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customRulesBucket": { +"description": "The Cloud Storage bucket name for custom rules.", +"type": "string" +}, +"description": { +"description": "Description of the Evaluation", +"type": "string" +}, +"evaluationType": { +"description": "Evaluation type", +"enum": [ +"EVALUATION_TYPE_UNSPECIFIED", +"SAP", +"SQL_SERVER", +"OTHER", +"SCC_IAC" +], +"enumDescriptions": [ +"Not specified", +"SAP best practices", +"SQL best practices", +"Customized best practices", +"SCC IaC (Infra as Code) best practices" +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "name of resource names have the form 'projects/{project_id}/locations/{location_id}/evaluations/{evaluation_id}'", +"type": "string" +}, +"resourceFilter": { +"$ref": "ResourceFilter", +"description": "annotations as key value pairs" +}, +"resourceStatus": { +"$ref": "ResourceStatus", +"description": "Output only. [Output only] The updated rule ids if exist.", +"readOnly": true +}, +"ruleNames": { +"description": "the name of the rule", +"items": { +"type": "string" +}, +"type": "array" +}, +"ruleVersions": { +"description": "Output only. [Output only] The updated rule ids if exist.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"schedule": { +"description": "crontab format schedule for scheduled evaluation, currently only support the following schedule: \"0 */1 * * *\", \"0 */6 * * *\", \"0 */12 * * *\", \"0 0 */1 * *\", \"0 0 */7 * *\",", +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Execution": { +"description": "Message describing Execution object", +"id": "Execution", +"properties": { +"endTime": { +"description": "Output only. [Output only] End time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"evaluationId": { +"description": "Output only. [Output only] Evaluation ID", +"readOnly": true, +"type": "string" +}, +"externalDataSources": { +"description": "Optional. External data sources", +"items": { +"$ref": "ExternalDataSources" +}, +"type": "array" +}, +"inventoryTime": { +"description": "Output only. [Output only] Inventory time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "The name of execution resource. The format is projects/{project}/locations/{location}/evaluations/{evaluation}/executions/{execution}", +"type": "string" +}, +"notices": { +"description": "Output only. Additional information generated by the execution", +"items": { +"$ref": "Notice" +}, +"readOnly": true, +"type": "array" +}, +"resultSummary": { +"$ref": "Summary", +"description": "Output only. [Output only] Result summary for the execution", +"readOnly": true +}, +"ruleResults": { +"description": "Output only. execution result summary per rule", +"items": { +"$ref": "RuleExecutionResult" +}, +"readOnly": true, +"type": "array" +}, +"runType": { +"description": "type represent whether the execution executed directly by user or scheduled according evaluation.schedule field.", +"enum": [ +"TYPE_UNSPECIFIED", +"ONE_TIME", +"SCHEDULED" +], +"enumDescriptions": [ +"type of execution is unspecified", +"type of execution is one time", +"type of execution is scheduled" +], +"type": "string" +}, +"startTime": { +"description": "Output only. [Output only] Start time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. [Output only] State", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"state of execution is unspecified", +"the execution is running in backend service", +"the execution run success", +"the execution run failed" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExecutionResult": { +"description": "Message describing the result of an execution", +"id": "ExecutionResult", +"properties": { +"commands": { +"description": "The commands to remediate the violation.", +"items": { +"$ref": "Command" +}, +"type": "array" +}, +"documentationUrl": { +"description": "The URL for the documentation of the rule.", +"type": "string" +}, +"resource": { +"$ref": "Resource", +"description": "The resource that violates the rule." +}, +"rule": { +"description": "The rule that is violated in an evaluation.", +"type": "string" +}, +"severity": { +"description": "The severity of violation.", +"type": "string" +}, +"type": { +"description": "Execution result type of the scanned resource", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_PASSED", +"TYPE_VIOLATED" +], +"enumDescriptions": [ +"Unknown state", +"resource successfully passed the rule", +"resource violated the rule" +], +"type": "string" +}, +"violationDetails": { +"$ref": "ViolationDetails", +"description": "The details of violation in an evaluation result." +}, +"violationMessage": { +"description": "The violation message of an execution.", +"type": "string" +} +}, +"type": "object" +}, +"ExternalDataSources": { +"description": "Message for external data sources", +"id": "ExternalDataSources", +"properties": { +"assetType": { +"description": "Required. The asset type of the external data source this can be one of go/cai-asset-types to override the default asset type or it can be a custom type defined by the user custom type must match the asset type in the rule", +"type": "string" +}, +"name": { +"description": "Optional. Name of external data source. The name will be used inside the rego/sql to refer the external data", +"type": "string" +}, +"type": { +"description": "Required. Type of external data source", +"enum": [ +"TYPE_UNSPECIFIED", +"BIG_QUERY_TABLE" +], +"enumDescriptions": [ +"Unknown type", +"BigQuery table" +], +"type": "string" +}, +"uri": { +"description": "Required. URI of external data source. example of bq table {project_ID}.{dataset_ID}.{table_ID}", +"type": "string" +} +}, +"type": "object" +}, +"GceInstanceFilter": { +"description": "Message describing compute engine instance filter", +"id": "GceInstanceFilter", +"properties": { +"serviceAccounts": { +"description": "Service account of compute engine", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Insight": { +"description": "A presentation of host resource usage where the workload runs.", +"id": "Insight", +"properties": { +"instanceId": { +"description": "Required. The instance id where the insight is generated from", +"type": "string" +}, +"sapDiscovery": { +"$ref": "SapDiscovery", +"description": "The insights data for SAP system discovery. This is a copy of SAP System proto and should get updated whenever that one changes." +}, +"sapValidation": { +"$ref": "SapValidation", +"description": "The insights data for the SAP workload validation." +}, +"sentTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"sqlserverValidation": { +"$ref": "SqlserverValidation", +"description": "The insights data for the sqlserver workload validation." +}, +"torsoValidation": { +"$ref": "TorsoValidation", +"description": "The insights data for workload validation of torso workloads." +} +}, +"type": "object" +}, +"ListEvaluationsResponse": { +"description": "Message for response to listing Evaluations", +"id": "ListEvaluationsResponse", +"properties": { +"evaluations": { +"description": "The list of Evaluation", +"items": { +"$ref": "Evaluation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListExecutionResultsResponse": { +"description": "Message for response of list execution results", +"id": "ListExecutionResultsResponse", +"properties": { +"executionResults": { +"description": "The versions from the specified publisher.", +"items": { +"$ref": "ExecutionResult" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListExecutionsResponse": { +"description": "Message for response to listing Executions", +"id": "ListExecutionsResponse", +"properties": { +"executions": { +"description": "The list of Execution", +"items": { +"$ref": "Execution" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRulesResponse": { +"description": "Mesesage of response of list rules", +"id": "ListRulesResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"rules": { +"description": "all rules in response", +"items": { +"$ref": "Rule" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListScannedResourcesResponse": { +"description": "Message for response to list scanned resources", +"id": "ListScannedResourcesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"scannedResources": { +"description": "All scanned resources in response", +"items": { +"$ref": "ScannedResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Notice": { +"description": "Message for additional information generated by the execution", +"id": "Notice", +"properties": { +"message": { +"description": "Output only. Message of the notice", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Resource": { +"description": "Message represent resource in execution result", +"id": "Resource", +"properties": { +"name": { +"description": "The name of the resource.", +"type": "string" +}, +"serviceAccount": { +"description": "The service account associated with the resource.", +"type": "string" +}, +"type": { +"description": "The type of resource.", +"type": "string" +} +}, +"type": "object" +}, +"ResourceFilter": { +"description": "Message describing resource filters", +"id": "ResourceFilter", +"properties": { +"gceInstanceFilter": { +"$ref": "GceInstanceFilter", +"description": "Filter compute engine resource" +}, +"inclusionLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The label used for filter resource", +"type": "object" +}, +"resourceIdPatterns": { +"description": "The id pattern for filter resource", +"items": { +"type": "string" +}, +"type": "array" +}, +"scopes": { +"description": "The scopes of evaluation resource", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceStatus": { +"description": "Message describing resource status", +"id": "ResourceStatus", +"properties": { +"rulesNewerVersions": { +"deprecated": true, +"description": "Historical: Used before 2023-05-22 the new version of rule id if exists", +"items": { +"type": "string" +}, +"type": "array" +}, +"state": { +"description": "State of the resource", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING" +], +"enumDescriptions": [ +"The state has not been populated in this message.", +"Resource has an active Create operation.", +"Resource has no outstanding operations on it or has active Update operations.", +"Resource has an active Delete operation." +], +"type": "string" +} +}, +"type": "object" +}, +"Rule": { +"description": "Message represent a rule", +"id": "Rule", +"properties": { +"description": { +"description": "descrite rule in plain language", +"type": "string" +}, +"displayName": { +"description": "the name display in UI", +"type": "string" +}, +"errorMessage": { +"description": "the message template for rule", +"type": "string" +}, +"name": { +"description": "rule name", +"type": "string" +}, +"primaryCategory": { +"description": "the primary category", +"type": "string" +}, +"remediation": { +"description": "the remediation for the rule", +"type": "string" +}, +"revisionId": { +"description": "Output only. the version of the rule", +"readOnly": true, +"type": "string" +}, +"secondaryCategory": { +"description": "the secondary category", +"type": "string" +}, +"severity": { +"description": "the severity of the rule", +"type": "string" +}, +"tags": { +"description": "List of user-defined tags", +"items": { +"type": "string" +}, +"type": "array" +}, +"uri": { +"description": "the docuement url for the rule", +"type": "string" +} +}, +"type": "object" +}, +"RuleExecutionResult": { +"description": "Message for execution result summary per rule", +"id": "RuleExecutionResult", +"properties": { +"message": { +"description": "Execution message, if any", +"type": "string" +}, +"resultCount": { +"description": "Number of violations", +"format": "int64", +"type": "string" +}, +"rule": { +"description": "rule name", +"type": "string" +}, +"scannedResourceCount": { +"description": "Number of total scanned resources", +"format": "int64", +"type": "string" +}, +"state": { +"description": "Output only. The execution status", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_SUCCESS", +"STATE_FAILURE", +"STATE_SKIPPED" +], +"enumDescriptions": [ +"Unknown state", +"execution completed successfully", +"execution completed with failures", +"execution was not executed" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RunEvaluationRequest": { +"description": "Message for creating a Execution", +"id": "RunEvaluationRequest", +"properties": { +"execution": { +"$ref": "Execution", +"description": "Required. The resource being created" +}, +"executionId": { +"description": "Required. Id of the requesting object If auto-generating Id server-side, remove this field and execution_id from the method_signature of Create RPC", +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscovery": { +"description": "The schema of SAP system discovery data.", +"id": "SapDiscovery", +"properties": { +"applicationLayer": { +"$ref": "SapDiscoveryComponent", +"description": "Optional. An SAP system may run without an application layer." +}, +"databaseLayer": { +"$ref": "SapDiscoveryComponent", +"description": "Required. An SAP System must have a database." +}, +"metadata": { +"$ref": "SapDiscoveryMetadata", +"description": "Optional. The metadata for SAP system discovery data." +}, +"projectNumber": { +"description": "Optional. The GCP project number that this SapSystem belongs to.", +"type": "string" +}, +"systemId": { +"description": "Output only. A combination of database SID, database instance URI and tenant DB name to make a unique identifier per-system.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Required. Unix timestamp this system has been updated last.", +"format": "google-datetime", +"type": "string" +}, +"workloadProperties": { +"$ref": "SapDiscoveryWorkloadProperties", +"description": "Optional. The properties of the workload." +} +}, +"type": "object" +}, +"SapDiscoveryComponent": { +"description": "Message describing the system component.", +"id": "SapDiscoveryComponent", +"properties": { +"applicationProperties": { +"$ref": "SapDiscoveryComponentApplicationProperties", +"description": "Optional. The component is a SAP application." +}, +"databaseProperties": { +"$ref": "SapDiscoveryComponentDatabaseProperties", +"description": "Optional. The component is a SAP database." +}, +"haHosts": { +"description": "Optional. A list of host URIs that are part of the HA configuration if present. An empty list indicates the component is not configured for HA.", +"items": { +"type": "string" +}, +"type": "array" +}, +"hostProject": { +"description": "Required. Pantheon Project in which the resources reside.", +"type": "string" +}, +"region": { +"description": "Optional. The region this component's resources are primarily located in.", +"type": "string" +}, +"replicationSites": { +"description": "Optional. A list of replication sites used in Disaster Recovery (DR) configurations.", +"items": { +"$ref": "SapDiscoveryComponentReplicationSite" +}, +"type": "array" +}, +"resources": { +"description": "Optional. The resources in a component.", +"items": { +"$ref": "SapDiscoveryResource" +}, +"type": "array" +}, +"sid": { +"description": "Optional. The SAP identifier, used by the SAP software and helps differentiate systems for customers.", +"type": "string" +}, +"topologyType": { +"description": "Optional. The detected topology of the component.", +"enum": [ +"TOPOLOGY_TYPE_UNSPECIFIED", +"TOPOLOGY_SCALE_UP", +"TOPOLOGY_SCALE_OUT" +], +"enumDescriptions": [ +"Unspecified topology.", +"A scale-up single node system.", +"A scale-out multi-node system." +], +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryComponentApplicationProperties": { +"description": "A set of properties describing an SAP Application layer.", +"id": "SapDiscoveryComponentApplicationProperties", +"properties": { +"abap": { +"deprecated": true, +"description": "Optional. Deprecated: ApplicationType now tells you whether this is ABAP or Java.", +"type": "boolean" +}, +"appInstanceNumber": { +"description": "Optional. Instance number of the SAP application instance.", +"type": "string" +}, +"applicationType": { +"description": "Required. Type of the application. Netweaver, etc.", +"enum": [ +"APPLICATION_TYPE_UNSPECIFIED", +"NETWEAVER", +"NETWEAVER_ABAP", +"NETWEAVER_JAVA" +], +"enumDescriptions": [ +"Unspecified application type", +"SAP Netweaver", +"SAP Netweaver ABAP", +"SAP Netweaver Java" +], +"type": "string" +}, +"ascsInstanceNumber": { +"description": "Optional. Instance number of the ASCS instance.", +"type": "string" +}, +"ascsUri": { +"description": "Optional. Resource URI of the recognized ASCS host of the application.", +"type": "string" +}, +"ersInstanceNumber": { +"description": "Optional. Instance number of the ERS instance.", +"type": "string" +}, +"kernelVersion": { +"description": "Optional. Kernel version for Netweaver running in the system.", +"type": "string" +}, +"nfsUri": { +"description": "Optional. Resource URI of the recognized shared NFS of the application. May be empty if the application server has only a single node.", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryComponentDatabaseProperties": { +"description": "A set of properties describing an SAP Database layer.", +"id": "SapDiscoveryComponentDatabaseProperties", +"properties": { +"databaseSid": { +"description": "Optional. SID of the system database.", +"type": "string" +}, +"databaseType": { +"description": "Required. Type of the database. HANA, DB2, etc.", +"enum": [ +"DATABASE_TYPE_UNSPECIFIED", +"HANA", +"MAX_DB", +"DB2" +], +"enumDescriptions": [ +"Unspecified database type.", +"SAP HANA", +"SAP MAX_DB", +"IBM DB2" +], +"type": "string" +}, +"databaseVersion": { +"description": "Optional. The version of the database software running in the system.", +"type": "string" +}, +"instanceNumber": { +"description": "Optional. Instance number of the SAP instance.", +"type": "string" +}, +"primaryInstanceUri": { +"description": "Required. URI of the recognized primary instance of the database.", +"type": "string" +}, +"sharedNfsUri": { +"description": "Optional. URI of the recognized shared NFS of the database. May be empty if the database has only a single node.", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryComponentReplicationSite": { +"description": "A replication site used in Disaster Recovery (DR) configurations.", +"id": "SapDiscoveryComponentReplicationSite", +"properties": { +"component": { +"$ref": "SapDiscoveryComponent", +"description": "Optional. The system component for the site." +}, +"sourceSite": { +"description": "Optional. The name of the source site from which this one replicates.", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryMetadata": { +"description": "Message describing SAP discovery system metadata", +"id": "SapDiscoveryMetadata", +"properties": { +"customerRegion": { +"description": "Optional. Customer region string for customer's use. Does not represent GCP region.", +"type": "string" +}, +"definedSystem": { +"description": "Optional. Customer defined, something like \"E-commerce pre prod\"", +"type": "string" +}, +"environmentType": { +"description": "Optional. Should be \"prod\", \"QA\", \"dev\", \"staging\", etc.", +"type": "string" +}, +"sapProduct": { +"description": "Optional. This SAP product name", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryResource": { +"description": "Message describing a resource.", +"id": "SapDiscoveryResource", +"properties": { +"instanceProperties": { +"$ref": "SapDiscoveryResourceInstanceProperties", +"description": "Optional. A set of properties only applying to instance type resources." +}, +"relatedResources": { +"description": "Optional. A list of resource URIs related to this resource.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceKind": { +"description": "Required. ComputeInstance, ComputeDisk, VPC, Bare Metal server, etc.", +"enum": [ +"RESOURCE_KIND_UNSPECIFIED", +"RESOURCE_KIND_INSTANCE", +"RESOURCE_KIND_DISK", +"RESOURCE_KIND_ADDRESS", +"RESOURCE_KIND_FILESTORE", +"RESOURCE_KIND_HEALTH_CHECK", +"RESOURCE_KIND_FORWARDING_RULE", +"RESOURCE_KIND_BACKEND_SERVICE", +"RESOURCE_KIND_SUBNETWORK", +"RESOURCE_KIND_NETWORK", +"RESOURCE_KIND_PUBLIC_ADDRESS", +"RESOURCE_KIND_INSTANCE_GROUP" +], +"enumDescriptions": [ +"Unspecified resource kind.", +"This is a compute instance.", +"This is a compute disk.", +"This is a compute address.", +"This is a filestore instance.", +"This is a compute health check.", +"This is a compute forwarding rule.", +"This is a compute backend service.", +"This is a compute subnetwork.", +"This is a compute network.", +"This is a public accessible IP Address.", +"This is a compute instance group." +], +"type": "string" +}, +"resourceType": { +"description": "Required. The type of this resource.", +"enum": [ +"RESOURCE_TYPE_UNSPECIFIED", +"RESOURCE_TYPE_COMPUTE", +"RESOURCE_TYPE_STORAGE", +"RESOURCE_TYPE_NETWORK" +], +"enumDescriptions": [ +"Undefined resource type.", +"This is a compute resource.", +"This a storage resource.", +"This is a network resource." +], +"type": "string" +}, +"resourceUri": { +"description": "Required. URI of the resource, includes project, location, and name.", +"type": "string" +}, +"updateTime": { +"description": "Required. Unix timestamp of when this resource last had its discovery data updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryResourceInstanceProperties": { +"description": "A set of properties only present for an instance type resource", +"id": "SapDiscoveryResourceInstanceProperties", +"properties": { +"appInstances": { +"description": "Optional. App server instances on the host", +"items": { +"$ref": "SapDiscoveryResourceInstancePropertiesAppInstance" +}, +"type": "array" +}, +"clusterInstances": { +"description": "Optional. A list of instance URIs that are part of a cluster with this one.", +"items": { +"type": "string" +}, +"type": "array" +}, +"instanceNumber": { +"deprecated": true, +"description": "Optional. The VM's instance number.", +"format": "int64", +"type": "string" +}, +"instanceRole": { +"description": "Optional. Bitmask of instance role, a resource may have multiple roles at once.", +"enum": [ +"INSTANCE_ROLE_UNSPECIFIED", +"INSTANCE_ROLE_ASCS", +"INSTANCE_ROLE_ERS", +"INSTANCE_ROLE_APP_SERVER", +"INSTANCE_ROLE_DATABASE", +"INSTANCE_ROLE_ASCS_ERS", +"INSTANCE_ROLE_ASCS_APP_SERVER", +"INSTANCE_ROLE_ASCS_DATABASE", +"INSTANCE_ROLE_ERS_APP_SERVER", +"INSTANCE_ROLE_ERS_DATABASE", +"INSTANCE_ROLE_APP_SERVER_DATABASE", +"INSTANCE_ROLE_ASCS_ERS_APP_SERVER", +"INSTANCE_ROLE_ASCS_ERS_DATABASE", +"INSTANCE_ROLE_ASCS_APP_SERVER_DATABASE", +"INSTANCE_ROLE_ERS_APP_SERVER_DATABASE", +"INSTANCE_ROLE_ASCS_ERS_APP_SERVER_DATABASE" +], +"enumDescriptions": [ +"Unspecified instance role.", +"Application central services.", +"Enqueue replication server.", +"Application server.", +"Database node.", +"Combinations of roles. Application central services and enqueue replication server.", +"Application central services and application server.", +"Application central services and database.", +"Enqueue replication server and application server.", +"Enqueue replication server and database.", +"Application server and database.", +"Application central services, enqueue replication server and application server.", +"Application central services, enqueue replication server and database.", +"Application central services, application server and database.", +"Enqueue replication server, application server and database.", +"Application central services, enqueue replication server, application server and database." +], +"type": "string" +}, +"isDrSite": { +"description": "Optional. Instance is part of a DR site.", +"type": "boolean" +}, +"virtualHostname": { +"description": "Optional. A virtual hostname of the instance if it has one.", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryResourceInstancePropertiesAppInstance": { +"description": "Fields to describe an SAP application server instance.", +"id": "SapDiscoveryResourceInstancePropertiesAppInstance", +"properties": { +"name": { +"description": "Optional. Instance name of the SAP application instance.", +"type": "string" +}, +"number": { +"description": "Optional. Instance number of the SAP application instance.", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryWorkloadProperties": { +"description": "A set of properties describing an SAP workload.", +"id": "SapDiscoveryWorkloadProperties", +"properties": { +"productVersions": { +"description": "Optional. List of SAP Products and their versions running on the system.", +"items": { +"$ref": "SapDiscoveryWorkloadPropertiesProductVersion" +}, +"type": "array" +}, +"softwareComponentVersions": { +"description": "Optional. A list of SAP software components and their versions running on the system.", +"items": { +"$ref": "SapDiscoveryWorkloadPropertiesSoftwareComponentProperties" +}, +"type": "array" +} +}, +"type": "object" +}, +"SapDiscoveryWorkloadPropertiesProductVersion": { +"description": "A product name and version.", +"id": "SapDiscoveryWorkloadPropertiesProductVersion", +"properties": { +"name": { +"description": "Optional. Name of the product.", +"type": "string" +}, +"version": { +"description": "Optional. Version of the product.", +"type": "string" +} +}, +"type": "object" +}, +"SapDiscoveryWorkloadPropertiesSoftwareComponentProperties": { +"description": "A SAP software component name, version, and type.", +"id": "SapDiscoveryWorkloadPropertiesSoftwareComponentProperties", +"properties": { +"extVersion": { +"description": "Optional. The component's minor version.", +"type": "string" +}, +"name": { +"description": "Optional. Name of the component.", +"type": "string" +}, +"type": { +"description": "Optional. The component's type.", +"type": "string" +}, +"version": { +"description": "Optional. The component's major version.", +"type": "string" +} +}, +"type": "object" +}, +"SapValidation": { +"description": "A presentation of SAP workload insight. The schema of SAP workloads validation related data.", +"id": "SapValidation", +"properties": { +"projectId": { +"description": "Required. The project_id of the cloud project that the Insight data comes from.", +"type": "string" +}, +"validationDetails": { +"description": "Optional. A list of SAP validation metrics data.", +"items": { +"$ref": "SapValidationValidationDetail" +}, +"type": "array" +}, +"zone": { +"description": "Optional. The zone of the instance that the Insight data comes from.", +"type": "string" +} +}, +"type": "object" +}, +"SapValidationValidationDetail": { +"description": "Message describing the SAP validation metrics.", +"id": "SapValidationValidationDetail", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The pairs of metrics data: field name & field value.", +"type": "object" +}, +"isPresent": { +"description": "Optional. Was there a SAP system detected for this validation type.", +"type": "boolean" +}, +"sapValidationType": { +"description": "Optional. The SAP system that the validation data is from.", +"enum": [ +"SAP_VALIDATION_TYPE_UNSPECIFIED", +"SYSTEM", +"COROSYNC", +"PACEMAKER", +"HANA", +"NETWEAVER", +"HANA_SECURITY", +"CUSTOM" +], +"enumDescriptions": [ +"Unspecified type.", +"The SYSTEM validation type collects underlying system data from the VM.", +"The COROSYNC validation type collects Corosync configuration and runtime data. Corosync enables servers to interact as a HA cluster.", +"The PACEMAKER validation type collects Pacemaker configuration data. Pacemaker is a high-availability cluster resource manager.", +"The HANA validation type collects HANA configuration data. SAP HANA is an in-memory, column-oriented, relational database management system.", +"The NETWEAVER validation type collects NetWeaver configuration data. SAP NetWeaver is a software stack for many of SAP SE's applications.", +"The HANA_SECURITY validation type collects HANA configuration data as it relates to SAP security best practices.", +"The CUSTOM validation type collects any customer-defined data that does not fall into any of the other categories of validations." +], +"type": "string" +} +}, +"type": "object" +}, +"ScannedResource": { +"description": "Message of scanned resource", +"id": "ScannedResource", +"properties": { +"resource": { +"description": "resource name", +"type": "string" +}, +"type": { +"description": "resource type", +"type": "string" +} +}, +"type": "object" +}, +"ShellCommand": { +"description": "* A ShellCommand is invoked via the agent's command line executor", +"id": "ShellCommand", +"properties": { +"args": { +"description": "args is a string of arguments to be passed to the command.", +"type": "string" +}, +"command": { +"description": "command is the name of the command to be executed.", +"type": "string" +}, +"timeoutSeconds": { +"description": "Optional. If not specified, the default timeout is 60 seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SqlserverValidation": { +"description": "A presentation of SQLServer workload insight. The schema of SqlServer workloads validation related data.", +"id": "SqlserverValidation", +"properties": { +"agentVersion": { +"description": "Optional. The agent version collected this data point", +"type": "string" +}, +"instance": { +"description": "Required. The instance_name of the instance that the Insight data comes from. According to https://linter.aip.dev/122/name-suffix: field names should not use the _name suffix unless the field would be ambiguous without it.", +"type": "string" +}, +"projectId": { +"description": "Required. The project_id of the cloud project that the Insight data comes from.", +"type": "string" +}, +"validationDetails": { +"description": "Optional. A list of SqlServer validation metrics data.", +"items": { +"$ref": "SqlserverValidationValidationDetail" +}, +"type": "array" +} +}, +"type": "object" +}, +"SqlserverValidationDetails": { +"description": "Message containing collected data names and values.", +"id": "SqlserverValidationDetails", +"properties": { +"fields": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. Collected data is in format.", +"type": "object" +} +}, +"type": "object" +}, +"SqlserverValidationValidationDetail": { +"description": "Message describing the Sqlserver validation metrics.", +"id": "SqlserverValidationValidationDetail", +"properties": { +"details": { +"description": "Required. Details wraps map that represents collected data names and values.", +"items": { +"$ref": "SqlserverValidationDetails" +}, +"type": "array" +}, +"type": { +"description": "Optional. The Sqlserver system that the validation data is from.", +"enum": [ +"SQLSERVER_VALIDATION_TYPE_UNSPECIFIED", +"OS", +"DB_LOG_DISK_SEPARATION", +"DB_MAX_PARALLELISM", +"DB_CXPACKET_WAITS", +"DB_TRANSACTION_LOG_HANDLING", +"DB_VIRTUAL_LOG_FILE_COUNT", +"DB_BUFFER_POOL_EXTENSION", +"DB_MAX_SERVER_MEMORY", +"INSTANCE_METRICS", +"DB_INDEX_FRAGMENTATION", +"DB_TABLE_INDEX_COMPRESSION", +"DB_BACKUP_POLICY" +], +"enumDescriptions": [ +"Unspecified type.", +"The Sqlserver system named OS.", +"The LOG_DISK_SEPARATION table.", +"The MAX_PARALLELISM table.", +"The CXPACKET_WAITS table.", +"The TRANSACTION_LOG_HANDLING table.", +"The VIRTUAL_LOG_FILE_COUNT table.", +"The BUFFER_POOL_EXTENSION table.", +"The MAX_SERVER_MEMORY table.", +"The INSTANCE_METRICS table.", +"The DB_INDEX_FRAGMENTATION table.", +"The DB_TABLE_INDEX_COMPRESSION table.", +"The DB_BACKUP_POLICY table." +], +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Summary": { +"description": "Message for execution summary", +"id": "Summary", +"properties": { +"failures": { +"description": "Output only. Number of failures", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"newFailures": { +"description": "Output only. Number of new failures compared to the previous execution", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"newFixes": { +"description": "Output only. Number of new fixes compared to the previous execution", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TorsoValidation": { +"description": "The schema of torso workload validation data.", +"id": "TorsoValidation", +"properties": { +"agentVersion": { +"description": "Required. agent_version lists the version of the agent that collected this data.", +"type": "string" +}, +"instanceName": { +"description": "Required. instance_name lists the human readable name of the instance that the data comes from.", +"type": "string" +}, +"projectId": { +"description": "Required. project_id lists the human readable cloud project that the data comes from.", +"type": "string" +}, +"validationDetails": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. validation_details contains the pairs of validation data: field name & field value.", +"type": "object" +}, +"workloadType": { +"description": "Required. workload_type specifies the type of torso workload.", +"enum": [ +"WORKLOAD_TYPE_UNSPECIFIED", +"MYSQL", +"ORACLE", +"REDIS" +], +"enumDescriptions": [ +"Unspecified workload type.", +"MySQL workload.", +"Oracle workload.", +"Redis workload." +], +"type": "string" +} +}, +"type": "object" +}, +"ViolationDetails": { +"description": "Message describing the violation in an evaluation result.", +"id": "ViolationDetails", +"properties": { +"asset": { +"description": "The name of the asset.", +"type": "string" +}, +"observed": { +"additionalProperties": { +"type": "string" +}, +"description": "Details of the violation.", +"type": "object" +}, +"serviceAccount": { +"description": "The service account associated with the resource.", +"type": "string" +} +}, +"type": "object" +}, +"WriteInsightRequest": { +"description": "Request for sending the data insights.", +"id": "WriteInsightRequest", +"properties": { +"agentVersion": { +"description": "Optional. The agent version collected this data point.", +"type": "string" +}, +"insight": { +"$ref": "Insight", +"description": "Required. The metrics data details." +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"WriteInsightResponse": { +"description": "The response for write insights request.", +"id": "WriteInsightResponse", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Workload Manager API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workspaceevents.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workspaceevents.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..6907ecd2cc53d4d9f7079d1ee43578b190b33edc --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workspaceevents.v1.json @@ -0,0 +1,711 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/chat.bot": { +"description": "Private Service: https://www.googleapis.com/auth/chat.bot" +}, +"https://www.googleapis.com/auth/chat.memberships": { +"description": "See, add, update, and remove members from conversations and spaces in Google Chat" +}, +"https://www.googleapis.com/auth/chat.memberships.readonly": { +"description": "View members in Google Chat conversations." +}, +"https://www.googleapis.com/auth/chat.messages": { +"description": "See, compose, send, update, and delete messages and their associated attachments, and add, see, and delete reactions to messages." +}, +"https://www.googleapis.com/auth/chat.messages.reactions": { +"description": "See, add, and delete reactions to messages in Google Chat" +}, +"https://www.googleapis.com/auth/chat.messages.reactions.readonly": { +"description": "View reactions to messages in Google Chat" +}, +"https://www.googleapis.com/auth/chat.messages.readonly": { +"description": "See messages and their associated reactions and attachments in Google Chat" +}, +"https://www.googleapis.com/auth/chat.spaces": { +"description": "Create conversations and spaces and see or update metadata (including history settings and access settings) in Google Chat" +}, +"https://www.googleapis.com/auth/chat.spaces.readonly": { +"description": "View chat and spaces in Google Chat" +}, +"https://www.googleapis.com/auth/drive": { +"description": "See, edit, create, and delete all of your Google Drive files" +}, +"https://www.googleapis.com/auth/drive.file": { +"description": "See, edit, create, and delete only the specific Google Drive files you use with this app" +}, +"https://www.googleapis.com/auth/drive.metadata": { +"description": "View and manage metadata of files in your Google Drive" +}, +"https://www.googleapis.com/auth/drive.metadata.readonly": { +"description": "See information about your Google Drive files" +}, +"https://www.googleapis.com/auth/drive.readonly": { +"description": "See and download all your Google Drive files" +}, +"https://www.googleapis.com/auth/meetings.space.created": { +"description": "Create, edit, and see information about your Google Meet conferences created by the app." +}, +"https://www.googleapis.com/auth/meetings.space.readonly": { +"description": "Read information about any of your Google Meet conferences" +} +} +} +}, +"basePath": "", +"baseUrl": "https://workspaceevents.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Workspace Events", +"description": "The Google Workspace Events API lets you subscribe to events and manage change notifications across Google Workspace applications.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/workspace/events", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "workspaceevents:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://workspaceevents.mtls.googleapis.com/", +"name": "workspaceevents", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "workspaceevents.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.bot", +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +} +} +}, +"subscriptions": { +"methods": { +"create": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview): Creates a Google Workspace subscription. To learn how to use this method, see [Create a Google Workspace subscription](https://developers.google.com/workspace/events/guides/create-subscription).", +"flatPath": "v1/subscriptions", +"httpMethod": "POST", +"id": "workspaceevents.subscriptions.create", +"parameterOrder": [], +"parameters": { +"validateOnly": { +"description": "Optional. If set to `true`, validates and previews the request, but doesn't create the subscription.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/subscriptions", +"request": { +"$ref": "Subscription" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +}, +"delete": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview): Deletes a Google Workspace subscription. To learn how to use this method, see [Delete a Google Workspace subscription](https://developers.google.com/workspace/events/guides/delete-subscription).", +"flatPath": "v1/subscriptions/{subscriptionsId}", +"httpMethod": "DELETE", +"id": "workspaceevents.subscriptions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to `true` and the subscription isn't found, the request succeeds but doesn't delete the subscription.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "Optional. Etag of the subscription. If present, it must match with the server's etag. Otherwise, request fails with the status `ABORTED`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name of the subscription to delete. Format: `subscriptions/{subscription}`", +"location": "path", +"pattern": "^subscriptions/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set to `true`, validates and previews the request, but doesn't delete the subscription.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.bot", +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +}, +"get": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview): Gets details about a Google Workspace subscription. To learn how to use this method, see [Get details about a Google Workspace subscription](https://developers.google.com/workspace/events/guides/get-subscription).", +"flatPath": "v1/subscriptions/{subscriptionsId}", +"httpMethod": "GET", +"id": "workspaceevents.subscriptions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the subscription. Format: `subscriptions/{subscription}`", +"location": "path", +"pattern": "^subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.bot", +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +}, +"list": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview): Lists Google Workspace subscriptions. To learn how to use this method, see [List Google Workspace subscriptions](https://developers.google.com/workspace/events/guides/list-subscriptions).", +"flatPath": "v1/subscriptions", +"httpMethod": "GET", +"id": "workspaceevents.subscriptions.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Required. A query filter. You can filter subscriptions by event type (`event_types`) and target resource (`target_resource`). You must specify at least one event type in your query. To filter for multiple event types, use the `OR` operator. To filter by both event type and target resource, use the `AND` operator and specify the full resource name, such as `//chat.googleapis.com/spaces/{space}`. For example, the following queries are valid: ``` event_types:\"google.workspace.chat.membership.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\" event_types:\"google.workspace.chat.message.v1.created\" AND target_resource=\"//chat.googleapis.com/spaces/{space}\" ( event_types:\"google.workspace.chat.membership.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\" ) AND target_resource=\"//chat.googleapis.com/spaces/{space}\" ``` The server rejects invalid queries with an `INVALID_ARGUMENT` error.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of subscriptions to return. The service might return fewer than this value. If unspecified or set to `0`, up to 50 subscriptions are returned. The maximum value is 100. If you specify a value more than 100, the system only returns 100 subscriptions.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous list subscriptions call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value might lead to unexpected results.", +"location": "query", +"type": "string" +} +}, +"path": "v1/subscriptions", +"response": { +"$ref": "ListSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.bot", +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +}, +"patch": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview): Updates or renews a Google Workspace subscription. To learn how to use this method, see [Update or renew a Google Workspace subscription](https://developers.google.com/workspace/events/guides/update-subscription).", +"flatPath": "v1/subscriptions/{subscriptionsId}", +"httpMethod": "PATCH", +"id": "workspaceevents.subscriptions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the subscription. Format: `subscriptions/{subscription}`", +"location": "path", +"pattern": "^subscriptions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The field to update. If omitted, updates any fields included in the request. You can update one of the following fields in a subscription: * `expire_time`: The timestamp when the subscription expires. * `ttl`: The time-to-live (TTL) or duration of the subscription. * `event_types`: The list of event types to receive about the target resource. To fully replace the subscription (the equivalent of `PUT`), use `*`. Any omitted fields are updated with empty values.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set to `true`, validates and previews the request, but doesn't update the subscription.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Subscription" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +}, +"reactivate": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview): Reactivates a suspended Google Workspace subscription. This method resets your subscription's `State` field to `ACTIVE`. Before you use this method, you must fix the error that suspended the subscription. This method will ignore or reject any subscription that isn't currently in a suspended state. To learn how to use this method, see [Reactivate a Google Workspace subscription](https://developers.google.com/workspace/events/guides/reactivate-subscription).", +"flatPath": "v1/subscriptions/{subscriptionsId}:reactivate", +"httpMethod": "POST", +"id": "workspaceevents.subscriptions.reactivate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the subscription. Format: `subscriptions/{subscription}`", +"location": "path", +"pattern": "^subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:reactivate", +"request": { +"$ref": "ReactivateSubscriptionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/chat.memberships", +"https://www.googleapis.com/auth/chat.memberships.readonly", +"https://www.googleapis.com/auth/chat.messages", +"https://www.googleapis.com/auth/chat.messages.reactions", +"https://www.googleapis.com/auth/chat.messages.reactions.readonly", +"https://www.googleapis.com/auth/chat.messages.readonly", +"https://www.googleapis.com/auth/chat.spaces", +"https://www.googleapis.com/auth/chat.spaces.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.metadata", +"https://www.googleapis.com/auth/drive.metadata.readonly", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/meetings.space.created", +"https://www.googleapis.com/auth/meetings.space.readonly" +] +} +} +} +}, +"revision": "20241210", +"rootUrl": "https://workspaceevents.googleapis.com/", +"schemas": { +"ListSubscriptionsResponse": { +"description": "The response message for SubscriptionsService.ListSubscriptions.", +"id": "ListSubscriptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"subscriptions": { +"description": "List of subscriptions.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"NotificationEndpoint": { +"description": "The endpoint where the subscription delivers events.", +"id": "NotificationEndpoint", +"properties": { +"pubsubTopic": { +"description": "Immutable. The Cloud Pub/Sub topic that receives events for the subscription. Format: `projects/{project}/topics/{topic}` You must create the topic in the same Google Cloud project where you create this subscription. When the topic receives events, the events are encoded as Cloud Pub/Sub messages. For details, see the [Google Cloud Pub/Sub Protocol Binding for CloudEvents](https://github.com/googleapis/google-cloudevents/blob/main/docs/spec/pubsub.md).", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"done": { +"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"PayloadOptions": { +"description": "Options about what data to include in the event payload. Only supported for Google Chat events.", +"id": "PayloadOptions", +"properties": { +"fieldMask": { +"description": "Optional. If `include_resource` is set to `true`, the list of fields to include in the event payload. Separate fields with a comma. For example, to include a Google Chat message's sender and create time, enter `message.sender,message.createTime`. If omitted, the payload includes all fields for the resource. If you specify a field that doesn't exist for the resource, the system ignores the field.", +"format": "google-fieldmask", +"type": "string" +}, +"includeResource": { +"description": "Optional. Whether the event payload includes data about the resource that changed. For example, for an event where a Google Chat message was created, whether the payload contains data about the [`Message`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages) resource. If false, the event payload only includes the name of the changed resource.", +"type": "boolean" +} +}, +"type": "object" +}, +"ReactivateSubscriptionRequest": { +"description": "The request message for SubscriptionsService.ReactivateSubscription.", +"id": "ReactivateSubscriptionRequest", +"properties": {}, +"type": "object" +}, +"Status": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Subscription": { +"description": "[Developer Preview](https://developers.google.com/workspace/preview). A subscription to receive events about a Google Workspace resource. To learn more about subscriptions, see the [Google Workspace Events API overview](https://developers.google.com/workspace/events).", +"id": "Subscription", +"properties": { +"authority": { +"description": "Output only. The user who authorized the creation of the subscription. Format: `users/{user}` For Google Workspace users, the `{user}` value is the [`user.id`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users#User.FIELDS.ids) field from the Directory API.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the subscription is created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Optional. This checksum is computed by the server based on the value of other fields, and might be sent on update requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"eventTypes": { +"description": "Required. Unordered list. Input for creating a subscription. Otherwise, output only. One or more types of events to receive about the target resource. Formatted according to the CloudEvents specification. The supported event types depend on the target resource of your subscription. For details, see [Supported Google Workspace events](https://developers.google.com/workspace/events/guides#supported-events). By default, you also receive events about the [lifecycle of your subscription](https://developers.google.com/workspace/events/guides/events-lifecycle). You don't need to specify lifecycle events for this field. If you specify an event type that doesn't exist for the target resource, the request returns an HTTP `400 Bad Request` status code.", +"items": { +"type": "string" +}, +"type": "array" +}, +"expireTime": { +"description": "Non-empty default. The timestamp in UTC when the subscription expires. Always displayed on output, regardless of what was used on input.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Identifier. Resource name of the subscription. Format: `subscriptions/{subscription}`", +"type": "string" +}, +"notificationEndpoint": { +"$ref": "NotificationEndpoint", +"description": "Required. Immutable. The endpoint where the subscription delivers events, such as a Pub/Sub topic." +}, +"payloadOptions": { +"$ref": "PayloadOptions", +"description": "Optional. Options about what data to include in the event payload. Only supported for Google Chat events." +}, +"reconciling": { +"description": "Output only. If `true`, the subscription is in the process of being updated.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the subscription. Determines whether the subscription can receive events and deliver them to the notification endpoint.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"SUSPENDED", +"DELETED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The subscription is active and can receive and deliver events to its notification endpoint.", +"The subscription is unable to receive events due to an error. To identify the error, see the `suspension_reason` field.", +"The subscription is deleted." +], +"readOnly": true, +"type": "string" +}, +"suspensionReason": { +"description": "Output only. The error that suspended the subscription. To reactivate the subscription, resolve the error and call the `ReactivateSubscription` method.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"USER_SCOPE_REVOKED", +"RESOURCE_DELETED", +"USER_AUTHORIZATION_FAILURE", +"ENDPOINT_PERMISSION_DENIED", +"ENDPOINT_NOT_FOUND", +"ENDPOINT_RESOURCE_EXHAUSTED", +"OTHER" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The authorizing user has revoked the grant of one or more OAuth scopes. To learn more about authorization for Google Workspace, see [Configure the OAuth consent screen](https://developers.google.com/workspace/guides/configure-oauth-consent#choose-scopes).", +"The target resource for the subscription no longer exists.", +"The user that authorized the creation of the subscription no longer has access to the subscription's target resource.", +"The Google Workspace application doesn't have access to deliver events to your subscription's notification endpoint.", +"The subscription's notification endpoint doesn't exist, or the endpoint can't be found in the Google Cloud project where you created the subscription.", +"The subscription's notification endpoint failed to receive events due to insufficient quota or reaching rate limiting.", +"An unidentified error has occurred." +], +"readOnly": true, +"type": "string" +}, +"targetResource": { +"description": "Required. Immutable. The Google Workspace resource that's monitored for events, formatted as the [full resource name](https://google.aip.dev/122#full-resource-names). To learn about target resources and the events that they support, see [Supported Google Workspace events](https://developers.google.com/workspace/events#supported-events). A user can only authorize your app to create one subscription for a given target resource. If your app tries to create another subscription with the same user credentials, the request returns an `ALREADY_EXISTS` error.", +"type": "string" +}, +"ttl": { +"description": "Input only. The time-to-live (TTL) or duration for the subscription. If unspecified or set to `0`, uses the maximum possible duration.", +"format": "google-duration", +"type": "string" +}, +"uid": { +"description": "Output only. System-assigned unique identifier for the subscription.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last time that the subscription is updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Workspace Events API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/youtubereporting.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/youtubereporting.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..3ab779acc2704af1998c121e999af0ac6651495d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/youtubereporting.v1.json @@ -0,0 +1,1007 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly": { +"description": "View monetary and non-monetary YouTube Analytics reports for your YouTube content" +}, +"https://www.googleapis.com/auth/yt-analytics.readonly": { +"description": "View YouTube Analytics reports for your YouTube content" +} +} +} +}, +"basePath": "", +"baseUrl": "https://youtubereporting.googleapis.com/", +"batchPath": "batch", +"canonicalName": "YouTube Reporting", +"description": "Schedules reporting jobs containing your YouTube Analytics data and downloads the resulting bulk data reports in the form of CSV files.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/youtube/reporting/v1/reports/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "youtubereporting:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://youtubereporting.mtls.googleapis.com/", +"name": "youtubereporting", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"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.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"jobs": { +"methods": { +"create": { +"description": "Creates a job and returns it.", +"flatPath": "v1/jobs", +"httpMethod": "POST", +"id": "youtubereporting.jobs.create", +"parameterOrder": [], +"parameters": { +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +} +}, +"path": "v1/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +}, +"delete": { +"description": "Deletes a job.", +"flatPath": "v1/jobs/{jobId}", +"httpMethod": "DELETE", +"id": "youtubereporting.jobs.delete", +"parameterOrder": [ +"jobId" +], +"parameters": { +"jobId": { +"description": "The ID of the job to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +} +}, +"path": "v1/jobs/{jobId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +}, +"get": { +"description": "Gets a job.", +"flatPath": "v1/jobs/{jobId}", +"httpMethod": "GET", +"id": "youtubereporting.jobs.get", +"parameterOrder": [ +"jobId" +], +"parameters": { +"jobId": { +"description": "The ID of the job to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +} +}, +"path": "v1/jobs/{jobId}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +}, +"list": { +"description": "Lists jobs.", +"flatPath": "v1/jobs", +"httpMethod": "GET", +"id": "youtubereporting.jobs.list", +"parameterOrder": [], +"parameters": { +"includeSystemManaged": { +"description": "If set to true, also system-managed jobs will be returned; otherwise only user-created jobs will be returned. System-managed jobs can neither be modified nor deleted.", +"location": "query", +"type": "boolean" +}, +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer jobs than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListJobs` method.", +"location": "query", +"type": "string" +} +}, +"path": "v1/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +} +}, +"resources": { +"reports": { +"methods": { +"get": { +"description": "Gets the metadata of a specific report.", +"flatPath": "v1/jobs/{jobId}/reports/{reportId}", +"httpMethod": "GET", +"id": "youtubereporting.jobs.reports.get", +"parameterOrder": [ +"jobId", +"reportId" +], +"parameters": { +"jobId": { +"description": "The ID of the job.", +"location": "path", +"required": true, +"type": "string" +}, +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +}, +"reportId": { +"description": "The ID of the report to retrieve.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/jobs/{jobId}/reports/{reportId}", +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +}, +"list": { +"description": "Lists reports created by a specific job. Returns NOT_FOUND if the job does not exist.", +"flatPath": "v1/jobs/{jobId}/reports", +"httpMethod": "GET", +"id": "youtubereporting.jobs.reports.list", +"parameterOrder": [ +"jobId" +], +"parameters": { +"createdAfter": { +"description": "If set, only reports created after the specified date/time are returned.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"jobId": { +"description": "The ID of the job.", +"location": "path", +"required": true, +"type": "string" +}, +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method.", +"location": "query", +"type": "string" +}, +"startTimeAtOrAfter": { +"description": "If set, only reports whose start time is greater than or equal the specified date/time are returned.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"startTimeBefore": { +"description": "If set, only reports whose start time is smaller than the specified date/time are returned.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1/jobs/{jobId}/reports", +"response": { +"$ref": "ListReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +} +} +} +} +}, +"media": { +"methods": { +"download": { +"description": "Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.", +"flatPath": "v1/media/{mediaId}", +"httpMethod": "GET", +"id": "youtubereporting.media.download", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Name of the media that is being downloaded.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/media/{+resourceName}", +"response": { +"$ref": "GdataMedia" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +} +} +}, +"reportTypes": { +"methods": { +"list": { +"description": "Lists report types.", +"flatPath": "v1/reportTypes", +"httpMethod": "GET", +"id": "youtubereporting.reportTypes.list", +"parameterOrder": [], +"parameters": { +"includeSystemManaged": { +"description": "If set to true, also system-managed report types will be returned; otherwise only the report types that can be used to create new reporting jobs will be returned.", +"location": "query", +"type": "boolean" +}, +"onBehalfOfContentOwner": { +"description": "The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListReportTypes` method.", +"location": "query", +"type": "string" +} +}, +"path": "v1/reportTypes", +"response": { +"$ref": "ListReportTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/yt-analytics-monetary.readonly", +"https://www.googleapis.com/auth/yt-analytics.readonly" +] +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://youtubereporting.googleapis.com/", +"schemas": { +"Empty": { +"description": "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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GdataBlobstore2Info": { +"description": "gdata", +"id": "GdataBlobstore2Info", +"properties": { +"blobGeneration": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"blobId": { +"description": "gdata", +"type": "string" +}, +"downloadReadHandle": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"readToken": { +"description": "gdata", +"type": "string" +}, +"uploadMetadataContainer": { +"description": "gdata", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GdataCompositeMedia": { +"description": "gdata", +"id": "GdataCompositeMedia", +"properties": { +"blobRef": { +"deprecated": true, +"description": "gdata", +"format": "byte", +"type": "string" +}, +"blobstore2Info": { +"$ref": "GdataBlobstore2Info", +"description": "gdata" +}, +"cosmoBinaryReference": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"crc32cHash": { +"description": "gdata", +"format": "uint32", +"type": "integer" +}, +"inline": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"length": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"md5Hash": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"objectId": { +"$ref": "GdataObjectId", +"description": "gdata" +}, +"path": { +"description": "gdata", +"type": "string" +}, +"referenceType": { +"description": "gdata", +"enum": [ +"PATH", +"BLOB_REF", +"INLINE", +"BIGSTORE_REF", +"COSMO_BINARY_REFERENCE" +], +"enumDescriptions": [ +"gdata", +"gdata", +"gdata", +"gdata", +"gdata" +], +"type": "string" +}, +"sha1Hash": { +"description": "gdata", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GdataContentTypeInfo": { +"description": "gdata", +"id": "GdataContentTypeInfo", +"properties": { +"bestGuess": { +"description": "gdata", +"type": "string" +}, +"fromBytes": { +"description": "gdata", +"type": "string" +}, +"fromFileName": { +"description": "gdata", +"type": "string" +}, +"fromHeader": { +"description": "gdata", +"type": "string" +}, +"fromUrlPath": { +"description": "gdata", +"type": "string" +} +}, +"type": "object" +}, +"GdataDiffChecksumsResponse": { +"description": "gdata", +"id": "GdataDiffChecksumsResponse", +"properties": { +"checksumsLocation": { +"$ref": "GdataCompositeMedia", +"description": "gdata" +}, +"chunkSizeBytes": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"objectLocation": { +"$ref": "GdataCompositeMedia", +"description": "gdata" +}, +"objectSizeBytes": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"objectVersion": { +"description": "gdata", +"type": "string" +} +}, +"type": "object" +}, +"GdataDiffDownloadResponse": { +"description": "gdata", +"id": "GdataDiffDownloadResponse", +"properties": { +"objectLocation": { +"$ref": "GdataCompositeMedia", +"description": "gdata" +} +}, +"type": "object" +}, +"GdataDiffUploadRequest": { +"description": "gdata", +"id": "GdataDiffUploadRequest", +"properties": { +"checksumsInfo": { +"$ref": "GdataCompositeMedia", +"description": "gdata" +}, +"objectInfo": { +"$ref": "GdataCompositeMedia", +"description": "gdata" +}, +"objectVersion": { +"description": "gdata", +"type": "string" +} +}, +"type": "object" +}, +"GdataDiffUploadResponse": { +"description": "gdata", +"id": "GdataDiffUploadResponse", +"properties": { +"objectVersion": { +"description": "gdata", +"type": "string" +}, +"originalObject": { +"$ref": "GdataCompositeMedia", +"description": "gdata" +} +}, +"type": "object" +}, +"GdataDiffVersionResponse": { +"description": "gdata", +"id": "GdataDiffVersionResponse", +"properties": { +"objectSizeBytes": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"objectVersion": { +"description": "gdata", +"type": "string" +} +}, +"type": "object" +}, +"GdataDownloadParameters": { +"description": "gdata", +"id": "GdataDownloadParameters", +"properties": { +"allowGzipCompression": { +"description": "gdata", +"type": "boolean" +}, +"ignoreRange": { +"description": "gdata", +"type": "boolean" +} +}, +"type": "object" +}, +"GdataMedia": { +"description": "gdata", +"id": "GdataMedia", +"properties": { +"algorithm": { +"deprecated": true, +"description": "gdata", +"type": "string" +}, +"bigstoreObjectRef": { +"deprecated": true, +"description": "gdata", +"format": "byte", +"type": "string" +}, +"blobRef": { +"deprecated": true, +"description": "gdata", +"format": "byte", +"type": "string" +}, +"blobstore2Info": { +"$ref": "GdataBlobstore2Info", +"description": "gdata" +}, +"compositeMedia": { +"description": "gdata", +"items": { +"$ref": "GdataCompositeMedia" +}, +"type": "array" +}, +"contentType": { +"description": "gdata", +"type": "string" +}, +"contentTypeInfo": { +"$ref": "GdataContentTypeInfo", +"description": "gdata" +}, +"cosmoBinaryReference": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"crc32cHash": { +"description": "gdata", +"format": "uint32", +"type": "integer" +}, +"diffChecksumsResponse": { +"$ref": "GdataDiffChecksumsResponse", +"description": "gdata" +}, +"diffDownloadResponse": { +"$ref": "GdataDiffDownloadResponse", +"description": "gdata" +}, +"diffUploadRequest": { +"$ref": "GdataDiffUploadRequest", +"description": "gdata" +}, +"diffUploadResponse": { +"$ref": "GdataDiffUploadResponse", +"description": "gdata" +}, +"diffVersionResponse": { +"$ref": "GdataDiffVersionResponse", +"description": "gdata" +}, +"downloadParameters": { +"$ref": "GdataDownloadParameters", +"description": "gdata" +}, +"filename": { +"description": "gdata", +"type": "string" +}, +"hash": { +"deprecated": true, +"description": "gdata", +"type": "string" +}, +"hashVerified": { +"description": "gdata", +"type": "boolean" +}, +"inline": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"isPotentialRetry": { +"description": "gdata", +"type": "boolean" +}, +"length": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"md5Hash": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"mediaId": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"objectId": { +"$ref": "GdataObjectId", +"description": "gdata" +}, +"path": { +"description": "gdata", +"type": "string" +}, +"referenceType": { +"description": "gdata", +"enum": [ +"PATH", +"BLOB_REF", +"INLINE", +"GET_MEDIA", +"COMPOSITE_MEDIA", +"BIGSTORE_REF", +"DIFF_VERSION_RESPONSE", +"DIFF_CHECKSUMS_RESPONSE", +"DIFF_DOWNLOAD_RESPONSE", +"DIFF_UPLOAD_REQUEST", +"DIFF_UPLOAD_RESPONSE", +"COSMO_BINARY_REFERENCE", +"ARBITRARY_BYTES" +], +"enumDescriptions": [ +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata", +"gdata" +], +"type": "string" +}, +"sha1Hash": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"sha256Hash": { +"description": "gdata", +"format": "byte", +"type": "string" +}, +"timestamp": { +"description": "gdata", +"format": "uint64", +"type": "string" +}, +"token": { +"description": "gdata", +"type": "string" +} +}, +"type": "object" +}, +"GdataObjectId": { +"description": "gdata", +"id": "GdataObjectId", +"properties": { +"bucketName": { +"description": "gdata", +"type": "string" +}, +"generation": { +"description": "gdata", +"format": "int64", +"type": "string" +}, +"objectName": { +"description": "gdata", +"type": "string" +} +}, +"type": "object" +}, +"Job": { +"description": "A job creating reports of a specific type.", +"id": "Job", +"properties": { +"createTime": { +"description": "The creation date/time of the job.", +"format": "google-datetime", +"type": "string" +}, +"expireTime": { +"description": "The date/time when this job will expire/expired. After a job expired, no new reports are generated.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The server-generated ID of the job (max. 40 characters).", +"type": "string" +}, +"name": { +"description": "The name of the job (max. 100 characters).", +"type": "string" +}, +"reportTypeId": { +"description": "The type of reports this job creates. Corresponds to the ID of a ReportType.", +"type": "string" +}, +"systemManaged": { +"description": "True if this a system-managed job that cannot be modified by the user; otherwise false.", +"type": "boolean" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "Response message for ReportingService.ListJobs.", +"id": "ListJobsResponse", +"properties": { +"jobs": { +"description": "The list of jobs.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this value in the ListJobsRequest.page_token field in the subsequent call to `ListJobs` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListReportTypesResponse": { +"description": "Response message for ReportingService.ListReportTypes.", +"id": "ListReportTypesResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this value in the ListReportTypesRequest.page_token field in the subsequent call to `ListReportTypes` method to retrieve the next page of results.", +"type": "string" +}, +"reportTypes": { +"description": "The list of report types.", +"items": { +"$ref": "ReportType" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReportsResponse": { +"description": "Response message for ReportingService.ListReports.", +"id": "ListReportsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this value in the ListReportsRequest.page_token field in the subsequent call to `ListReports` method to retrieve the next page of results.", +"type": "string" +}, +"reports": { +"description": "The list of report types.", +"items": { +"$ref": "Report" +}, +"type": "array" +} +}, +"type": "object" +}, +"Report": { +"description": "A report's metadata including the URL from which the report itself can be downloaded.", +"id": "Report", +"properties": { +"createTime": { +"description": "The date/time when this report was created.", +"format": "google-datetime", +"type": "string" +}, +"downloadUrl": { +"description": "The URL from which the report can be downloaded (max. 1000 characters).", +"type": "string" +}, +"endTime": { +"description": "The end of the time period that the report instance covers. The value is exclusive.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The server-generated ID of the report.", +"type": "string" +}, +"jobExpireTime": { +"description": "The date/time when the job this report belongs to will expire/expired.", +"format": "google-datetime", +"type": "string" +}, +"jobId": { +"description": "The ID of the job that created this report.", +"type": "string" +}, +"startTime": { +"description": "The start of the time period that the report instance covers. The value is inclusive.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ReportType": { +"description": "A report type.", +"id": "ReportType", +"properties": { +"deprecateTime": { +"description": "The date/time when this report type was/will be deprecated.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The ID of the report type (max. 100 characters).", +"type": "string" +}, +"name": { +"description": "The name of the report type (max. 100 characters).", +"type": "string" +}, +"systemManaged": { +"description": "True if this a system-managed report type; otherwise false. Reporting jobs for system-managed report types are created automatically and can thus not be used in the `CreateJob` method.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "YouTube Reporting API", +"version": "v1" +} \ No newline at end of file